Files
it-labs/ТЕМА2/report.md
Пользователь № 7 аудитории Ж-202 9a3f097e24 Починены скриншоты 3.0
2026-02-12 11:22:27 +03:00

15 KiB

Отчет по теме 2

Бакайкин Константин, А-03-24

1 Настройка текущего каталога:

Нажал на окно рядом с Текущая папка: и установил путь к папке ТЕМА2:

Скриншот выбора текущей папки

2 Изучение и работа с файлом dan_vuz.txt

  • Изучили файл и проанализировали его

  • Прочитали данные из файла:


>> XX=load('dan_vuz.txt')



XX =



 Columns 1 through 9:



   1.9700e+02   1.3717e+06   8.0000e+00   4.0000e+00   2.0000e+00   5.3000e+01   7.0000e+00   7.6000e+01   1.3000e+01

   1.9800e+02   7.3820e+05   4.0000e+00   5.0000e+00   6.0000e+00   7.1000e+01   5.0000e+00   3.6000e+01   1.3000e+01

   1.9900e+02   2.4167e+05   1.0000e+00            0   1.0000e+00   5.0000e+00   5.0000e+00   2.0000e+00            0

   2.0000e+02   6.1990e+05   3.0000e+00   1.0000e+00   1.0000e+00   2.8000e+01            0   2.4000e+01            0

   2.0100e+02   1.7553e+06   7.0000e+00   1.0000e+01   6.0000e+00   5.4000e+01   7.0000e+00   4.6000e+01   2.0000e+00

   2.0200e+02   5.7215e+05            0   2.0000e+00   2.0000e+00   2.2000e+01   7.0000e+00   1.7000e+01            0

   2.0300e+02   1.4322e+06            0   6.0000e+00   1.1000e+01   3.0000e+01   8.0000e+00   8.8000e+01            0

   2.0400e+02   1.3277e+06   5.0000e+00   2.0000e+00            0   7.8000e+01   3.0000e+00   4.0000e+01   6.0000e+00

   2.0500e+02   4.9080e+05   7.0000e+00            0            0   2.0000e+01            0   3.0000e+01   1.2000e+01

   ...



Columns 10 through 15:



            0   1.0000e+00   5.0000e+00   5.0000e+00   8.7000e+01   9.6000e+01

            0   4.0000e+00            0            0   4.0000e+01   3.3000e+01

            0   2.0000e+00            0            0   1.1000e+01   6.0000e+00

            0            0   3.0000e+00            0   1.6000e+01   1.4000e+01

            0   3.0000e+00   2.0000e+00            0   1.6800e+02   4.1000e+01

            0            0   2.0000e+00   1.0000e+00   1.8000e+01   1.0000e+01



 	    ...



  • Проверили размерность матрицы XX:
>> size(XX)

ans =



   290    15


Так как строк 290, то данные представлены о 290 вузах

  • Выделили отдельную матрицу под данные о результативности:
>> X=XX(:,3:13)

X =



      8      4      2     53      7     76     13      0      1      5      5

      4      5      6     71      5     36     13      0      4      0      0

      1      0      1      5      5      2      0      0      2      0      0

      3      1      1     28      0     24      0      0      0      3      0

      7     10      6     54      7     46      2      0      3      2      0

      0      2      2     22      7     17      0      0      0      2      1

      0      6     11     30      8     88      0      0     11     14      2

      5      2      0     78      3     40      6      0     10      9      0

      7      0      0     20      0     30     12      0      6      1     15

      1      1      1     12      3     13      3      0      1      2      0

      8      4      3     33      1     37      8      0      3      6      3

      9      5      6     24      8     36      5      0      1      4     14

      5      5      4     57      7     56     25      0      0     12      1

      1      4      0      7      0      1      3      0      0      0      0

      2      8      0     83      6     70      4      0      6      5      0

      1      0      0      0      0      6      0      0      0      2      0

      2     28      8    326     76    213     21      0      1     22      1

      1      1      1     42      2      0      1      0      0      1      5

      1      0      0     13      0      0      0      0      0      0      0

      3      2      2     76      8     92     21      0      0     12      5

      0      1      0      7      1      7      2      0      3      1      0

      7      2      1     70      0     23     27      0      5      9      7

      3      0      0     11      0      3      0      0      0      0      0

     10      9      4     23      0     35      0      0      0     12      3

     22      3      7     46      0      7     11      0      0      2      0

     ...

  • Составили матрицу корреляций между показателями результативности

>> R=corr(X)

R =



 Columns 1 through 9:



   1.0000e+00   4.4320e-01   4.5229e-01   4.4779e-01   3.8123e-01   4.6516e-01   3.1487e-01   6.5579e-02   2.9153e-01

   4.4320e-01   1.0000e+00   8.5319e-01   8.5331e-01   8.6240e-01   8.5436e-01   5.5145e-01   2.5082e-02   4.2348e-01

   4.5229e-01   8.5319e-01   1.0000e+00   8.4660e-01   8.8651e-01   9.0335e-01   5.5091e-01   3.8840e-03   4.4396e-01

   4.4779e-01   8.5331e-01   8.4660e-01   1.0000e+00   8.7038e-01   9.3849e-01   7.0924e-01   4.9500e-02   4.5873e-01

   3.8123e-01   8.6240e-01   8.8651e-01   8.7038e-01   1.0000e+00   9.3605e-01   5.7668e-01   3.7562e-02   3.8322e-01

   4.6516e-01   8.5436e-01   9.0335e-01   9.3849e-01   9.3605e-01   1.0000e+00   6.3033e-01   4.7121e-02   4.7592e-01

   3.1487e-01   5.5145e-01   5.5091e-01   7.0924e-01   5.7668e-01   6.3033e-01   1.0000e+00   7.9448e-02   4.1878e-01

   6.5579e-02   2.5082e-02   3.8840e-03   4.9500e-02   3.7562e-02   4.7121e-02   7.9448e-02   1.0000e+00   4.7985e-02

   2.9153e-01   4.2348e-01   4.4396e-01   4.5873e-01   3.8322e-01   4.7592e-01   4.1878e-01   4.7985e-02   1.0000e+00

   4.8811e-01   8.2170e-01   7.8358e-01   8.5183e-01   7.7266e-01   8.3810e-01   6.2936e-01   5.6462e-02   6.2616e-01

   3.9815e-01   2.6183e-01   2.6408e-01   3.4420e-01   1.8751e-01   3.3118e-01   2.8287e-01   1.3662e-01   4.5537e-01



 Columns 10 and 11:



   4.8811e-01   3.9815e-01

   8.2170e-01   2.6183e-01

   7.8358e-01   2.6408e-01

   8.5183e-01   3.4420e-01

   7.7266e-01   1.8751e-01

   8.3810e-01   3.3118e-01

   6.2936e-01   2.8287e-01

   5.6462e-02   1.3662e-01

   6.2616e-01   4.5537e-01

   1.0000e+00   3.8799e-01

   3.8799e-01   1.0000e+00



Используем метод главных компонентов:

  • получаем собственные значения и собственные векторы от квадратичной фор-мы

>> [vect,lambda]=eig(X'*X)

vect =



 Columns 1 through 9:



   1.3928e-03   3.7187e-02  -6.5276e-02   1.1402e-01  -5.7482e-02  -4.3369e-01  -8.6174e-01   1.8078e-02  -2.0942e-01

  -8.0998e-04   6.0909e-01   3.8181e-01  -5.6588e-01  -2.6231e-01   2.2396e-01  -1.8894e-01  -2.6535e-02   7.3599e-02

  -7.5396e-03  -4.5900e-01  -5.2153e-01  -6.7233e-01  -1.9752e-01   9.4377e-02  -1.1098e-01  -3.7697e-03   2.9602e-02

  -1.5197e-04  -2.3868e-03  -3.9384e-02   2.0471e-02   2.9085e-02  -4.2879e-02   3.9810e-02  -2.5705e-01   1.7315e-01

   1.0985e-03  -2.1296e-02  -1.7772e-02   1.0189e-01   1.5147e-01   2.9246e-02  -2.2268e-01   9.3732e-02   8.4203e-01

   4.6341e-05   2.4446e-02   3.4514e-02   6.8266e-03  -2.8773e-02  -3.6347e-02   1.2360e-01   5.5571e-02  -4.0806e-01

   1.1860e-03   4.2558e-03   2.3496e-02  -4.8185e-02  -1.5673e-02  -5.8142e-02   5.8108e-02   9.5701e-01   5.2365e-03

  -9.9994e-01   5.6340e-04   6.5198e-03   4.0470e-03   7.5475e-03   1.2608e-03  -2.3724e-03   1.4645e-03  -1.0271e-03

  -1.6282e-03   4.6826e-01  -6.5978e-01   2.6872e-01   2.8869e-02   4.9535e-01  -1.2025e-01   5.8771e-02  -9.1452e-02

   1.7002e-03  -4.2581e-01   3.3001e-01   2.8074e-01  -3.9004e-01   6.2610e-01  -2.7487e-01   3.6416e-02  -5.9676e-02

   7.7010e-03  -1.2368e-01   1.7350e-01  -2.2481e-01   8.4320e-01   3.2876e-01  -2.2260e-01   1.8627e-02  -1.7997e-01



 Columns 10 and 11:



   4.4068e-02   3.5306e-02

   6.2111e-03   4.6772e-02

  -4.1502e-02   4.8953e-02

   7.2027e-01   6.1556e-01

  -3.7246e-01   2.4277e-01

  -5.1787e-01   7.3685e-01

   2.5496e-01   9.5893e-02

   5.5851e-04   1.6945e-04

   2.0459e-02   1.7911e-02

   5.3342e-02   5.9523e-02

   4.8313e-02   1.7425e-02



lambda =



Diagonal Matrix



 Columns 1 through 9:



   2.2947e+01            0            0            0            0            0            0            0            0

            0   1.9317e+03            0            0            0            0            0            0            0

            0            0   2.5940e+03            0            0            0            0            0            0

            0            0            0   3.4573e+03            0            0            0            0            0

            0            0            0            0   5.6252e+03            0            0            0            0

            0            0            0            0            0   8.6721e+03            0            0            0

            0            0            0            0            0            0   1.8915e+04            0            0

            0            0            0            0            0            0            0   4.7523e+04            0

            0            0            0            0            0            0            0            0   5.7484e+04

            0            0            0            0            0            0            0            0            0

            0            0            0            0            0            0            0            0            0



 Columns 10 and 11:



            0            0

            0            0

            0            0

            0            0

            0            0

            0            0

            0            0

            0            0

            0            0

   2.2565e+05            0

            0   7.4946e+06


  • Выделяем данные из гл. диагонали матрицы lambda в отдельный вектор и представляем их на экране с заголовком

>> Sobst=diag(lambda);

>> fprintf('Eigenvalues:\n %f \n',Sobst)

Eigenvalues:

 22.946585

Eigenvalues:

 1931.665464

Eigenvalues:

 2593.979592

Eigenvalues:

 3457.339562

Eigenvalues:

 5625.151474

Eigenvalues:

 8672.065947

Eigenvalues:

 18914.627989

Eigenvalues:

 47522.678185

Eigenvalues:

 57483.681267

Eigenvalues:

 225653.068540

Eigenvalues:

 7494628.795394

>> fprintf('\n')



  • Выделяем наиб. собственное знач. и соответствующий ему собственный вектор

SobMax=Sobst(end)

SobMax = 7.4946e+06

>> GlComp=vect(:,end)

GlComp =



   3.5306e-02

   4.6772e-02

   4.8953e-02

   6.1556e-01

   2.4277e-01

   7.3685e-01

   9.5893e-02

   1.6945e-04

   1.7911e-02

   5.9523e-02

   1.7425e-02



  • Рассчитали долю информации о результативности НИР

>> Delt=100*SobMax/sum(Sobst)

Delt = 95.273

>> fprintf('Delta= %d \n ',round(Delt))

Delta= 95



  • Рассчитали оценки обобщенной результативности и отобразили с кодом Вуза

>> Res=X*GlComp

Res =



   9.2542e+01

   7.3433e+01

   5.8855e+00

   3.5300e+01

   7.0208e+01

   2.8096e+01

   8.7136e+01

   7.9776e+01

   3.6243e+01

   1.8250e+01

   4.9667e+01

   4.5067e+01

   8.1785e+01

   5.5559e+00

   1.0536e+02

   4.5755e+00

   3.8120e+02

   2.6713e+01

   8.0376e+00

   1.1963e+02

   1.0061e+01

   6.3763e+01

   9.0877e+00

   4.1684e+01

   3.5907e+01

   7.6140e+01

   2.3753e+01

   1.4222e+02

   6.7756e+01

   2.0598e+01

   7.6819e+01

   1.0428e+02

   1.8542e+01

   4.4740e+00

   3.5809e+00

   2.2476e+02

   2.6864e+01

   2.1291e+02

   5.0922e+01

   3.3628e+01

   4.2168e+01

   1.0370e+02

   1.3606e+02

      ...

fprintf(' Results \n ')

 Results

 >> fprintf('%d  %f \n ',[XX(:,1),Res] ')

197  92.541636

 198  73.432513

 199  5.885468

 200  35.300393

 201  70.208100

 202  28.096191

 203  87.136298

 204  79.776499

 205  36.243011

 206  18.249808

 207  49.666520

 208  45.067095

 209  81.785392

 210  5.555862

 211  105.361366

 212  4.575460

 213  381.204021

 214  26.712747

 216  8.037618

 217  119.627795

 218  10.061485

 219  63.762947

 220  9.087658

 221  41.684105

 222  35.907417

 223  76.139589

 224  23.752550

 225  142.216169

 226  67.755801

 227  20.597788

 228  76.818771

 229  104.284923

 230  18.541601

 231  4.473983

 232  3.580878

 233  224.758597

 234  26.863645

 235  212.911324

 236  50.921549

 237  33.628254

 238  42.168327

 239  103.701129

 240  136.060809

 241  713.711764

 242  34.027235

 245  4.102289

 246  27.086730

 247  2.667541

 248  2.497556

 252  103.829221

 253  7.460715

      ...

  • Сохраняем вектор оценок результативности в бинарном файле

>> save res.mat Res -mat



  • Создаем гистограмму

>> hist(Res,20)

>> xlabel('Results ')

>> ylabel('Number of Unis ')



  • Сохраняем гистограмму
 saveas(gcf, 'Hist.jpg', 'jpg ')

  • Рассчитали и отобразили оценку корелляции обобщенной результативности с финансированием

>> CorFin=corr(Res,XX(:,2))

CorFin = 0.8437

>> fprintf('Correlation of Results and Money = %f \\n',CorFin)

Correlation of Results and Money = 0.843710

3 Создание файла программы (сценария). Проверка выполнения программы. Файл Hist.jpg

  • Создал файл программы Prog1.m:

Скриншот программы

  • Проверил вывод сценария, выводится лишнее:

Скриншот вывода

  • Гистограмма:

Скриншот гистограммы

4 Изменения файла с командами:

  • Изменил сценарий (добавил ;), чтобы избавиться от эхо-вывода. Сценарий стал выполняться быстрее, и убрался лишний вывод

Скриншот с выводом, сценарием

5 Создаем файл с выводом

  • изменил код:

добавил fp=fopen('prtcl.txt ','w'); и в каждом выводе добавли fp и добавил закрытие файла fclose(fp);

Скриншот с измененным кодом

Скриншот с выводом в файл

6 Вывод в файл мин. , макс. , среднего, стандартного отклонения.

>>MinRes = min(Res);
>>MaxRes = max(Res);
>>MeanRes = mean(Res);
>>stdRes = std(Res);
>>fprintf(fp, 'Min   %f \n ',MinRes );
>>fprintf(fp,'Max   %f \n ',MaxRes );
>>fprintf(fp,'Mean = %f \n ', MeanRes);
>>fprintf(fp,'Std = %f \n ', stdRes);