ответвлено от main/it-labs
548 строки
13 KiB
Plaintext
548 строки
13 KiB
Plaintext
#Вторая лаба отчет
|
|
|
|
###Читаю файл и проверяю размер матрицы
|
|
|
|
XX=load('dan_vuz.txt')
|
|
size(XX)
|
|
|
|
ans =
|
|
|
|
290 15
|
|
|
|
>>
|
|
|
|
###Данные о скольких вузах России представлены в этой матрице?
|
|
|
|
290
|
|
|
|
###Выделите в отдельную матрицу данные о показателях результативности:
|
|
|
|
X=XX(:,3:13)
|
|
|
|
###Рассчитайте матрицу корреляций между показателями результативности:
|
|
|
|
R=corr(X)
|
|
|
|
R =
|
|
|
|
Columns 1 through 10:
|
|
|
|
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.8811e-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 8.2170e-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 7.8358e-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 8.5183e-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 7.7266e-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 8.3810e-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.2936e-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 5.6462e-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 6.2616e-01
|
|
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 1.0000e+00
|
|
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 3.8799e-01
|
|
|
|
Column 11:
|
|
|
|
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
|
|
3.8799e-01
|
|
1.0000e+00
|
|
|
|
>>
|
|
|
|
###Пусть для исследования результативности применяется метод главных компонент, основу которого составляет получение собственных значений и собственных векторов от квадратичной формы:
|
|
|
|
[vect,lambda]=eig(X'*X)
|
|
|
|
lambda =
|
|
|
|
Diagonal Matrix
|
|
|
|
Columns 1 through 10:
|
|
|
|
2.2947e+01 0 0 0 0 0 0 0 0 0
|
|
0 1.9317e+03 0 0 0 0 0 0 0 0
|
|
0 0 2.5940e+03 0 0 0 0 0 0 0
|
|
0 0 0 3.4573e+03 0 0 0 0 0 0
|
|
0 0 0 0 5.6252e+03 0 0 0 0 0
|
|
0 0 0 0 0 8.6721e+03 0 0 0 0
|
|
0 0 0 0 0 0 1.8915e+04 0 0 0
|
|
0 0 0 0 0 0 0 4.7523e+04 0 0
|
|
0 0 0 0 0 0 0 0 5.7484e+04 0
|
|
0 0 0 0 0 0 0 0 0 2.2565e+05
|
|
0 0 0 0 0 0 0 0 0 0
|
|
|
|
Column 11:
|
|
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
7.4946e+06
|
|
|
|
>>
|
|
|
|
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
|
|
>>
|
|
|
|
###Выделите наибольшее собственное значение и соответствующий ему собственный вектор:
|
|
|
|
>> 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
|
|
fprintf(' Results \n ')
|
|
fprintf('%d %f \n ',[XX(:,1),Res] ')
|
|
|
|
получаю вывод формата Results \n {results}
|
|
|
|
###Сохраните вектор оценок результативности в отдельном бинарном (mat) файле:
|
|
|
|
save res.mat Res -mat
|
|
|
|
в рабочей папке появляется файл res.mat
|
|
|
|
###Представьте распределение оценок результативности в виде гистограммы с 20 интервалами и с обозначением осей:
|
|
|
|
xlabel('Results ')
|
|
ylabel('Number of Unis ')
|
|
hist(Res,20)
|
|
|
|
вставить фото photos/plot1.png
|
|
|
|
saveas(gcf, 'Hist.jpg ', 'jpg ')
|
|
|
|
в папке появлися новый файл Hist
|
|
|
|
###Наконец, рассчитайте и отобразите оценку корреляции обобщенной результативности с финансированием, выделенным на проведение НИР:
|
|
|
|
CorFin=corr(Res,XX(:,2))
|
|
fprintf('Correlation of Results and Money = %f \n',CorFin)
|
|
|
|
Вывод:
|
|
|
|
Correlation of Results and Money = 0.843710
|
|
>>
|
|
|
|
##Пункт 3
|
|
|
|
Создаю файл, содержащий такие строки:
|
|
|
|
warning('off', 'all')
|
|
graphics_toolkit('gnuplot')
|
|
XX=load('dan_vuz.txt')
|
|
X=XX(:,3:13)
|
|
R=corr(X)
|
|
[vect,lambda]=eig(X'*X)
|
|
Sobst=diag(lambda);
|
|
SobMax=Sobst(end)
|
|
GlComp=vect(:,end)
|
|
Delt=100*SobMax/sum(Sobst)
|
|
Res=X*GlComp
|
|
xlabel('Results ')
|
|
ylabel('Number of Unis '))
|
|
hist(Res,20)
|
|
saveas(gcf, 'Hist.jpg ', 'jpg ')
|
|
|
|
выводы в консили совпадают с теми, что были ранее, рисунок так же совпадает
|
|
|
|
вставить Hist.jpeg
|
|
|
|
##4 Пункт
|
|
|
|
Я поставил ; в конце каждой строки скрипта и добавил отладочный принт, чтобы точно видеть завершение работы программы и отсутствие других выводов fprintf('Выполнение завершено')
|
|
|
|
>> tri --> мой файл
|
|
|
|
DEBUG: FC_WEIGHT didn't match --> такая ошибка уже была, ниче страшного
|
|
Выполнение завершено>>
|
|
|
|
##5 пункт
|
|
|
|
сделал все выводы в файл
|
|
|
|
warning('off', 'all');
|
|
graphics_toolkit('gnuplot');
|
|
fp=fopen('prtcl.txt ','w')
|
|
XX=load('dan_vuz.txt');
|
|
X=XX(:,3:13);
|
|
R=corr(X);
|
|
[vect,lambda]=eig(X'*X);
|
|
Sobst=diag(lambda);
|
|
fprintf(fp,'Eigenvalues:\n %f \n',Sobst)
|
|
fprintf(fp, '\n')
|
|
SobMax=Sobst(end);
|
|
GlComp=vect(:,end);
|
|
Delt=100*SobMax/sum(Sobst);
|
|
fprintf(fp, 'Delta= %d \n ',round(Delt))
|
|
Res=X*GlComp;
|
|
fprintf(fp, ' Results \n ')
|
|
fprintf(fp, '%d %f \n ',[XX(:,1),Res] ')
|
|
hist(Res,20);
|
|
xlabel('Results ');
|
|
ylabel('Number of Unis ');
|
|
saveas(gcf, 'Hist.jpg ', 'jpg ');
|
|
fclose(fp)
|
|
|
|
файл:
|
|
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.684
|
|
|
|
##6 пункт
|
|
|
|
код с выводом в файл:
|
|
|
|
warning('off', 'all');
|
|
graphics_toolkit('gnuplot');
|
|
fp=fopen('prtcl.txt ','w')
|
|
XX=load('dan_vuz.txt');
|
|
X=XX(:,3:13);
|
|
R=corr(X);
|
|
[vect,lambda]=eig(X'*X);
|
|
Sobst=diag(lambda);
|
|
fprintf(fp,'Eigenvalues:\n %f \n',Sobst)
|
|
fprintf(fp, '\n')
|
|
SobMax=Sobst(end);
|
|
GlComp=vect(:,end);
|
|
Delt=100*SobMax/sum(Sobst);
|
|
fprintf(fp, 'Delta= %d \n ',round(Delt))
|
|
Res=X*GlComp;
|
|
|
|
# 6 пункт
|
|
|
|
minres = min(Res)
|
|
maxres = max(Res)
|
|
meanres = mean(Res)
|
|
stdres = std(Res)
|
|
|
|
fprintf(fp, ' Results \n ')
|
|
fprintf(fp, '%d %f \n ',[XX(:,1),Res] )
|
|
# fprintf(fp, 'min: %f', minres, '\n', 'max: %f', maxres, '\n', 'mean: %f', meanres, '\n', 'std: %f', stdres)
|
|
fprintf(fp, 'min: %f\n max: %f\n mean: %f \n std: %f', [minres, maxres, meanres, stdres])
|
|
hist(Res,20);
|
|
xlabel('Results ');
|
|
ylabel('Number of Unis ');
|
|
saveas(gcf, 'Hist.jpg ', 'jpg ');
|
|
fclose(fp)
|
|
|
|
вывод метрик в конце:
|
|
|
|
min: 0.000000
|
|
max: 1898.884523
|
|
mean: 67.928804
|
|
std: 145.954386 |