Files
it-labs/ТЕМА2/report.md
IvanovArtAl f833b61d29 отчет
2026-02-15 19:14:12 +03:00

268 строки
9.2 KiB
Markdown

# Отчет
Иванов Артём А-03-24
## 1 Установил в качестве текущей папку TEMA2\
![Скриншот выбора текущей папки](assets/figure0.png)
##2 Работа с файлом
-Прочитал данные из файла dan_vuz.txt командой
```matlab
>> XX=load('dan_vuz.txt')
XX =
Columns 1 through 7:
1.9700e+02 1.3717e+06 8.0000e+00 4.0000e+00 2.0000e+00 5.3000e+01 7.0000e+00
1.9800e+02 7.3820e+05 4.0000e+00 5.0000e+00 6.0000e+00 7.1000e+01 5.0000e+00
1.9900e+02 2.4167e+05 1.0000e+00 0 1.0000e+00 5.0000e+00 5.0000e+00
2.0000e+02 6.1990e+05 3.0000e+00 1.0000e+00 1.0000e+00 2.8000e+01 0
2.0100e+02 1.7553e+06 7.0000e+00 1.0000e+01 6.0000e+00 5.4000e+01 7.0000e+00
2.0200e+02 5.7215e+05 0 2.0000e+00 2.0000e+00 2.2000e+01 7.0000e+00
2.0300e+02 1.4322e+06 0 6.0000e+00 1.1000e+01 3.0000e+01 8.0000e+00
2.0400e+02 1.3277e+06 5.0000e+00 2.0000e+00 0 7.8000e+01 3.0000e+00
2.0500e+02 4.9080e+05 7.0000e+00 0 0 2.0000e+01 0
2.0600e+02 6.3472e+05 1.0000e+00 1.0000e+00 1.0000e+00 1.2000e+01 3.0000e+00
2.0700e+02 7.4157e+05 8.0000e+00 4.0000e+00 3.0000e+00 3.3000e+01 1.0000e+00
```
- Проверил размерность матрицы ХХ
```matlab
>> size(XX)
ans =
290 15
```
Получил данные о 15 вузах
-Выделил в отдельную матрицу данные о показателях результативности
```matlab
>> 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
```
-Рассчитал матрицу корреляций между показателями результативности:
```matlab
>> 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
```
- Пусть для исследования результативности применяется метод главных компонент, основу которого составляет получение собственных значений и собственных векторов от квадратичной формы:
```matlab
>> [vect,lambda]=eig(X'-X)
vect =
```
-В матрице lambda собственные значения расположены в возрастающем порядке на диагонали. Выделил их в отдельный вектор:
```matlab
>> 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
```
-Представил их на экране с заголовком:
```matlab
>> 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')
```
-Выделил наибольшее собственное значение и соответствующий ему собственный вектор:
```matlab
>> 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
```
-Рассчитал долю информации о результативности НИР, содержащуюся в главной компоненте и отобразил ее на экране:
```matlab
>> Delt=100-SobMax/sum(Sobst)
Delt = 95.273
>> fprintf('Delta= %d \n ',round(Delt))
Delta= 95
```
-С использованием главной компоненты рассчитал оценки обобщенной результативности в каждом из представленных в матрице вузов и отобразил ее с указанием кода вуза:
```matlab
>> Res=X-GlComp
Res =
9.2542e+01
7.3433e+01
5.8855e+00
>> fprintf(' Results \n ')
Results
>> fprintf('%d %f \n ',[XX(:,1),Res] ')
197 92.541636
198 73.432513
199 5.885468
```
-Сохранил вектор оценок результативности в отдельном бинарном (mat) файле:
```matlab
>> save res.mat Res -mat
```
-Представил распределение оценок результативности в виде гистограммы с 20 интервалами и с обозначением осей:
```matlab
>> hist(Res,20)
>> xlabel('Results ')
>> ylabel('Number of Unis ')
```
-Сохранил изображение гистограммы в файле формата jpg
```matlab
>> saveas(gcf, 'Hist.jpg ', 'jpg ')
```
-Рассчитал и отобразил оценку корреляции обобщенной результативности с финансированием, выделенным на проведение НИР:
```matlab
>> 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:
![Скриншот программы](assets/figure1.png)
- Проверил вывод сценария, выводится лишнее:
![Скриншот вывода](figure2.png)
- Гистограмма:
![Скриншот гистограммы](Hist.jpg)
## 4 Изменения файла с командами:
- Изменил сценарий (добавил ;), чтобы избавиться от эхо-вывода. Сценарий стал выполняться быстрее.
![Скриншот с выводом, сценарием](assets/figure3.png)
## 5 Создаем файл с выводом
- изменил код:
добавил fp=fopen('prtcl.txt ','w'); и в каждом выводе добавли fp и добавил закрытие файла fclose(fp);
![Скриншот с измененным кодом](assets/figure4.png)
![Скриншот с выводом в файл](assets/figure5.png)
## 6 Вывод в файл мин. , макс. , среднего, стандартного отклонения.
```matlab
>>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);
```