Files
it-labs/ТЕМА2/report.md

12 KiB

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

Зенина Варвара А-03-24

1 Установлена в качестве текущей папа ТЕМА2.

Путь к папке

2 Выполнение задач в среде с помощью команд.

Читаем данные из файла командой:

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

 Columns 1 through 8:

   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.9800e+02   7.3820e+05   4.0000e+00   5.0000e+00   6.0000e+00   7.1000e+01   5.0000e+00   3.6000e+01 ...

Проверяем размерность матрицы ХХ:

   >> size(XX)
ans =

   290    15

>>

Данные о 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
	  ...

Рассчитываем матрицу корреляций между показателями результативности:

>> R=corr(X)
R =

 Columns 1 through 8:

   1.0000e+00   4.4320e-01   4.5229e-01   4.4779e-01   3.8123e-01   4.6516e-01   3.1487e-01   6.5579e-02
   4.4320e-01   1.0000e+00   8.5319e-01   8.5331e-01   8.6240e-01   8.5436e-01   5.5145e-01   2.5082e-02

Пусть для исследования результативности применяется метод главных компо-нент, основу которого составляет получение собственных значений и собственных векторов от квадратичной формы:

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

 Columns 1 through 8:

   1.3928e-03   3.7187e-02  -6.5276e-02   1.1402e-01  -5.7482e-02  -4.3369e-01  -8.6174e-01   1.8078e-02
  -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.5396e-03  -4.5900e-01  -5.2153e-01  -6.7233e-01  -1.9752e-01   9.4377e-02  -1.1098e-01  -3.7697e-03
  ...
 lambda =

Diagonal Matrix

 Columns 1 through 8:

   2.2947e+01            0            0            0            0            0            0            0
            0   1.9317e+03            0            0            0            0            0            0
            0            0   2.5940e+03            0            0            0            0            0
            0            0            0   3.4573e+03            0            0            0            0
            ...

В матрице lambda собственные значения расположены в возрастающем поряд-ке на диагонали. Выделяем их в отдельный вектор:

Sobst=diag(lambda)
Sobst =

   2.2947e+01
   1.9317e+03
   2.5940e+03
   3.4573e+03
   5.6252e+03
   8.6721e+03
   1.8915e+04
   4.7523e+04
   5.7484e+04
   2.2565e+05
   7.4946e+06

Представляем их на экране с заголовком:

>> 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)
fprintf('Delta= %d \n ',round(Delt))

С использованием главной компоненты рассчитываем оценки обобщенной ре-зультативности в каждом из представленных в матрице вузов и отобразите ее с ука-занием кода вуза:

>> 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
   ...
   
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
...

Сохраняем вектор оценок результативности в отдельном бинарном (mat) файле:

 >> save res.mat Res -mat

Представляем распределение оценок результативности в виде гистограммы с 20 интервалами и с обозначением осей и сохраняем изображение гистограммы в файле формата jpg:

>> 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 Сценарий программы

>> Program
Eigenvalues:
 22.946585
Eigenvalues:
 1931.665464
 ....

Результат

![Изображение гистограммы] (hist.jpg)

4 Предотвращение эхо-вывода.

Измененный сценарий

5 Возможность создания текстового файла с результатами расчетов .

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 

Delta= 95 
 Results 
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 
256  34.755449 
257  4.359736 
258  5.741187 
259  15.989432 
261  45.399798 
264  2.462250 
267  6.424390 
268  66.503024 
273  73.935542 
275  11.130530 
296  3.684256 
304  9.970486 
305  28.031419 
311  1.352414 
318  40.905330 
322  11.722703 
325  30.793455 
326  42.716264 
329  10.023429 
330  32.260491 
334  25.495269 
335  36.870098 
336  42.948416 
339  87.963238 
340  228.668981 
341  99.146097 
342  28.749899 
343  9.622160 
346  1.359974 
347  54.213640 
348  107.547742 
349  116.106427 
352  299.102890 
356  14.333164 
357  20.479493 
362  144.908794 
365  14.952535 
366  25.976099 
371  268.149429 
372  12.353605 
373  4.526119 
376  104.664655 
377  91.264814 
379  209.329940 
381  196.452926 
383  4.812125 
387  1.387719 
388  50.732954 
389  118.633179 
391  212.528679 
392  37.744725 
393  30.102473 
394  320.669960 
395  0.000000 
399  41.450044 
410  141.123026 
412  405.347359 
413  12.875247 
414  117.612150 
441  8.989886 
446  74.655250 
448  89.566395 
451  37.992598 
456  40.599701 
465  37.339465 
466  142.928780 
467  9.122607 
472  53.463843 
476  93.289532 
477  57.155319 
484  19.139209 
1001  5.491474 
1002  85.213352 
1004  170.642969 
1017  90.453986 
1030  57.810669 
1034  7.372961 
1035  9.614944 
1037  1.846687 
1038  17.646937 
1039  153.910670 
1041  119.835954 
1044  5.010210 
1  2.691959 
2  379.300890 
3  13.497203 
4  2.462250 
6  19.718182 
7  200.667783 
8  93.618235 
9  25.650544 
10  26.344823 
11  65.285854 
12  21.514761 
13  176.510003 
14  1898.884523 
15  91.241365 
16  304.552394 
17  6.355976 
18  3.439437 
19  158.859588 
20  187.802059 
21  26.561371 
22  8.657907 
23  110.316703 
26  21.286647 
28  8.028500 
29  76.976887 
33  148.320170 
34  97.178361 
35  6.713123 
36  88.631285 
37  333.404629 
38  27.838269 
40  11.662869 
41  0.000000 
42  71.250154 
43  0.369757 
44  10.360736 
45  3.855089 
51  81.568715 
52  54.636552 
53  23.501931 
54  90.446620 
55  57.162095 
56  162.850196 
57  305.874565 
58  6.323299 
59  59.415851 
60  46.966205 
62  56.660855 
63  815.675312 
64  47.723188 
65  277.021471 
66  328.086215 
67  113.590454 
68  11.709047 
69  33.969900 
71  0.913379 
72  122.671912 
73  59.978744 
74  7.491057 
75  12.504248 
76  24.208529 
77  400.110964 
78  263.576362 
79  25.930889 
80  36.895259 
81  254.783774 
82  6.870138 
84  12.625935 
85  23.783568 
86  3.159890 
87  5.151827 
88  0.000000 
89  106.765711 
90  15.783445 
91  30.701284 
92  64.989933 
93  43.087958 
94  31.124285 
95  5.171761 
96  48.085148 
97  5.347890 
99  2.124571 
100  0.082078 
101  21.635603 
102  52.057076 
103  25.625192 
104  9.750228 
105  36.202865 
107  4.626653 
108  3.190574 
109  9.578291 
110  6.374896 
111  3.684453 
112  5.784829 
113  8.236760 
114  6.872598 
115  41.304826 
116  1.988474 
118  7.571316 
119  1.231125 
120  5.081094 
121  21.547440 
122  30.299927 
123  45.503740 
124  9.093912 
132  10.369658 
133  7.125935 
134  14.133228 
135  26.102416 
136  5.071976 
137  12.085286 
138  0.713469 
139  0.675086 
140  4.092547 
141  7.454102 
142  184.663991 
143  10.455368 
144  7.448129 
146  6.242521 
147  8.860180 
148  39.991951 
149  6.891026 
150  5.160709 
151  15.489599 
152  5.590467 
153  27.378151 
154  10.801195 
162  23.750968 
166  11.426264 
167  8.473236 
168  6.898371 
170  3.416283 
171  208.746883 
172  12.158394 
173  3.563165 
174  4.158866 
175  0.000000 
176  1.847873 
177  8.478820 
178  1.277897 
179  0.035306 
180  0.070611 
181  0.035306 
182  3.039279 
183  0.000000 
184  4.205715 
185  30.094936 
186  20.128055 
187  5.773718 
188  31.539990 
189  147.387148 
190  18.314164 
191  32.846011 
192  14.511067 
193  19.235467 
194  0.000000 
Correlation of Results and Money = 0.843710 

 Измененный сценарий

6 Вывод некоторых значений

fprintf(fp,'Min=%f\n', MinRes);
fprintf(fp,'Max=%f\n', MaxRes);
fprintf(fp,'Mean=%f\n', MeanRes);
fprintf(fp,'Std=%f\n', stdRes);