ответвлено от main/it-labs
15 KiB
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);






