12 KiB
2
Проверьте размерность матрицы ХХ:
>> size(XX)
ans =
290 15
Данные о скольких вузах России представлены в этой матрице?
Выделите в отдельную матрицу данные о показателях результативности:
2 10 7 26 2 11 2 0 0 7 1
1 0 0 1 0 6 0 0 0 0 0
0 0 0 10 0 8 0 0 0 0 2
0 0 2 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1 0
1 0 0 3 0 3 0 0 0 0 0
1 4 0 11 0 0 4 0 0 1 1
21 9 12 189 6 84 28 0 0 9 0
2 0 0 8 1 7 0 0 0 1 0
0 0 0 7 0 4 2 0 0 0 0
0 3 0 9 0 0 4 0 0 3 0
2 0 0 7 0 6 0 0 0 1 0
0 4 1 47 29 4 5 0 0 6 0
1 0 0 6 0 4 1 0 0 2 0
0 3 0 8 0 0 1 0 0 0 0
2 0 0 8 0 14 0 0 0 3 0
0 0 0 3 0 5 0 0 0 1 0
0 1 5 39 2 3 4 0 0 0 0
0 0 1 17 0 0 3 0 0 0 0
3 1 0 19 0 15 7 0 0 3 0
1 0 0 18 0 0 2 0 0 2 0
0 1 0 13 0 0 3 0 0 2 1
1 5 4 9 0 0 6 0 0 3 8
0 0 0 3 0 2 1 0 0 0 0
9 11 2 161 9 139 34 0 0 13 4
0 2 3 8 3 8 2 0 0 3 0
0 0 0 3 1 2 0 0 0 0 0
5 1 0 0 0 5 2 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0
1 0 0 2 2 0 1 0 0 0 0
2 4 2 8 0 4 2 0 0 1 0
0 1 0 2 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0
0 1 0 2 0 2 3 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
1 0 0 5 1 0 7 0 0 3 0
0 6 7 45 0 2 0 0 0 5 0
0 2 0 11 0 18 0 0 0 0 0
0 0 0 3 1 5 0 0 0 0 0
8 4 0 24 5 20 0 0 1 2 12
1 13 7 134 23 76 15 0 0 15 0
2 2 1 14 2 12 1 0 0 1 0
1 7 2 26 3 21 0 0 0 3 0
1 1 1 10 0 11 0 0 0 2 0
1 2 6 19 2 9 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
Рассчитайте матрицу корреляций между показателями результативности:
>> R = corr(X)
R =
Columns 1 through 7:
1.0000e+00 4.4320e-01 4.5229e-01 4.4779e-01 3.8123e-01 4.6516e-01 3.1487e-01
4.4320e-01 1.0000e+00 8.5319e-01 8.5331e-01 8.6240e-01 8.5436e-01 5.5145e-01
4.5229e-01 8.5319e-01 1.0000e+00 8.4660e-01 8.8651e-01 9.0335e-01 5.5091e-01
4.4779e-01 8.5331e-01 8.4660e-01 1.0000e+00 8.7038e-01 9.3849e-01 7.0924e-01
3.8123e-01 8.6240e-01 8.8651e-01 8.7038e-01 1.0000e+00 9.3605e-01 5.7668e-01
4.6516e-01 8.5436e-01 9.0335e-01 9.3849e-01 9.3605e-01 1.0000e+00 6.3033e-01
3.1487e-01 5.5145e-01 5.5091e-01 7.0924e-01 5.7668e-01 6.3033e-01 1.0000e+00
6.5579e-02 2.5082e-02 3.8840e-03 4.9500e-02 3.7562e-02 4.7121e-02 7.9448e-02
2.9153e-01 4.2348e-01 4.4396e-01 4.5873e-01 3.8322e-01 4.7592e-01 4.1878e-01
4.8811e-01 8.2170e-01 7.8358e-01 8.5183e-01 7.7266e-01 8.3810e-01 6.2936e-01
3.9815e-01 2.6183e-01 2.6408e-01 3.4420e-01 1.8751e-01 3.3118e-01 2.8287e-01
Columns 8 through 11:
6.5579e-02 2.9153e-01 4.8811e-01 3.9815e-01
2.5082e-02 4.2348e-01 8.2170e-01 2.6183e-01
3.8840e-03 4.4396e-01 7.8358e-01 2.6408e-01
4.9500e-02 4.5873e-01 8.5183e-01 3.4420e-01
3.7562e-02 3.8322e-01 7.7266e-01 1.8751e-01
4.7121e-02 4.7592e-01 8.3810e-01 3.3118e-01
7.9448e-02 4.1878e-01 6.2936e-01 2.8287e-01
1.0000e+00 4.7985e-02 5.6462e-02 1.3662e-01
4.7985e-02 1.0000e+00 6.2616e-01 4.5537e-01
5.6462e-02 6.2616e-01 1.0000e+00 3.8799e-01
1.3662e-01 4.5537e-01 3.8799e-01 1.0000e+00
получение собственных значений и собственных векторов от квадратичной формы:
>> [vect,lambda]=eig(X'*X)
vect =
1.7002e-03 -4.2581e-01 3.3001e-01 2.8074e-01 -3.9004e-01 6.2610e-01 -2.7487e-01
7.7010e-03 -1.2368e-01 1.7350e-01 -2.2481e-01 8.4320e-01 3.2876e-01 -2.2260e-01
Columns 8 through 11:
1.8078e-02 -2.0942e-01 4.4068e-02 3.5306e-02
-2.6535e-02 7.3599e-02 6.2111e-03 4.6772e-02
-3.7697e-03 2.9602e-02 -4.1502e-02 4.8953e-02
-2.5705e-01 1.7315e-01 7.2027e-01 6.1556e-01
9.3732e-02 8.4203e-01 -3.7246e-01 2.4277e-01
5.5571e-02 -4.0806e-01 -5.1787e-01 7.3685e-01
9.5701e-01 5.2365e-03 2.5496e-01 9.5893e-02
1.4645e-03 -1.0271e-03 5.5851e-04 1.6945e-04
5.8771e-02 -9.1452e-02 2.0459e-02 1.7911e-02
3.6416e-02 -5.9676e-02 5.3342e-02 5.9523e-02
1.8627e-02 -1.7997e-01 4.8313e-02 1.7425e-02
lambda =
Diagonal Matrix
Columns 1 through 7:
2.2947e+01 0 0 0 0 0 0
0 1.9317e+03 0 0 0 0 0
0 0 2.5940e+03 0 0 0 0
0 0 0 3.4573e+03 0 0 0
0 0 0 0 5.6252e+03 0 0
0 0 0 0 0 8.6721e+03 0
0 0 0 0 0 0 1.8915e+04
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Columns 8 through 11:
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
4.7523e+04 0 0 0
0 5.7484e+04 0 0
0 0 2.2565e+05 0
0 0 0 7.4946e+06
Выделите их в отдельный вектор:
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)
Delt = 95.273
>> fprintf('Delta=%d\n', round(Delt))
Delta=95
рассчитайте оценки обобщенной результативности в каждом из представленных в матрице вузов и отобразите ее с указанием кода вуза:
>> Res = X * GlComp
Res =
2.6102e+01
5.0720e+00
1.2085e+01
7.1347e-01
6.7509e-01
4.0925e+00
7.4541e+00
1.8466e+02
1.0455e+01
7.4481e+00
6.2425e+00
8.8602e+00
3.9992e+01
6.8910e+00
5.1607e+00
1.5490e+01
5.5905e+00
2.7378e+01
1.0801e+01
2.3751e+01
1.1426e+01
8.4732e+00
6.8984e+00
3.4163e+00
2.0875e+02
1.2158e+01
3.5632e+00
4.1589e+00
0
1.8479e+00
8.4788e+00
1.2779e+00
3.5306e-02
7.0611e-02
3.5306e-02
3.0393e+00
0
4.2057e+00
3.0095e+01
2.0128e+01
5.7737e+00
3.1540e+01
1.4739e+02
1.8314e+01
3.2846e+01
1.4511e+01
1.9235e+01
0
>> fprintf('Results\n')
Results
>> fprintf('%d %f \n', [XX(:, 1), Res]')
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
Сохраните вектор оценок результативности в отдельном бинарном (mat) файле:
>> save res.mat Res -mat
Представьте распределение оценок результативности в виде гистограммы с 20 интервалами и с обозначением осей:
>> hist(Res, 20)
>> xlabel('Results')
>> ylabel('Number of Unis')
Сохраните изображение гистограммы в файле формата jpg
>> 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
>>