Сравнить коммиты

7 Коммитов
main ... main

Автор SHA1 Сообщение Дата
Пользователь № 2 аудитории Ж-202
ce1d638da6 общее задание 2026-02-12 12:12:52 +03:00
Пользователь № 2 аудитории Ж-202
e33a7d3089 готовый отчет 2026-02-12 12:01:14 +03:00
Пользователь № 2 аудитории Ж-202
fd1b27c397 отчет 2026-02-12 11:57:24 +03:00
Пользователь № 2 аудитории Ж-202
270b5c01a0 ГОТОВОЕ ОБЩ ЗАДАНИЕ 2026-02-12 11:37:40 +03:00
Пользователь № 2 аудитории Ж-202
3b71201264 общее задание 2026-02-12 09:43:42 +03:00
Пользователь № 2 аудитории Ж-202
636b9231df готовый отчет 2026-02-11 12:38:13 +03:00
Пользователь № 2 аудитории Ж-202
2f7d30d594 ТЕМА1/report.md & task.md 2026-02-11 10:35:39 +03:00
17 изменённых файлов: 1215 добавлений и 28 удалений

Просмотреть файл

@@ -2,53 +2,42 @@
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/it) [Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/it)
**Работы проверяются только после того, как закоммичены по правилам ниже.**
## Работа с Git ## Работа с Git
**Работы проверяются только после того, как закоммичены по правилам ниже.**
[Лабораторная работа про Git второго семестра][gitlab] [Лабораторная работа про Git второго семестра][gitlab]
поможет вспомнить, как работать с Git. поможет вспомнить, как работать с Git.
[gitlab]: http://uit.mpei.ru/git/main/cs/src/branch/main/labs/lab02 [gitlab]: http://uit.mpei.ru/git/main/cs/src/branch/main/labs/lab02
1. Один раз в начале семестра 1. В начале семестра
создать на сервере копию этого репозитория («форкнуть» его), нажав *Fork*. создать на сервере копию этого репозитория («форкнуть» его), нажав *Fork*.
Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/it-labs`, Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/it-labs`,
где `IvanovII` — ваше имя пользователя. где `IvanovII` — ваше имя пользователя.
2. В начале каждого занятия: 2. В начале каждого занятия:
1. Настроить Git, чтобы не было проблем с вводом пароля: Клонировать свой форк на рабочий стол
(`IvanovII` заменить на свое имя пользователя):
```sh ```sh
git config --global credential.helper "" git clone http://uit.mpei.ru/git/IvanovII/it-labs.git
git config --global core.askpass ""
``` ```
2. Клонировать свой форк на рабочий стол Перебазировать свой форк на исходный репозиторий ("апстрим"):
(`IvanovII` заменить на свое имя пользователя):
```sh ```sh
git clone http://uit.mpei.ru/git/IvanovII/it-labs.git # Первую команду нужно запускать только один раз,
``` # иначе будет ошибка "error: remote upstream already exists".
git remote add upstream http://uit.mpei.ru/git/main/it-labs.git
git fetch upstream
git stash push
git rebase upstream/main
git stash pop
```
Не клонируйте на диск L (students) в компьютерном классе — Перебазировать нужно, чтобы подтянуть из исходного репозитория обновления.
не будет работать Git.
Не клонируйте в папку, в пути к которой есть русские буквы и пробелы —
не будет работать Octave.
3. Перейти в клонированную папку и настроить имя пользователя и почту,
чтобы у коммитов был правильный автор:
```sh
cd it-labs
git config user.name "Иванов И. И."
git config user.email "IvanovII@mpei.ru"
```
Если вы работаете со своего компьютера, а не с лабораторного,
то все эти шаги нужно сделать один раз, а не каждое занятие.
3. После того, как отчет написан, закоммитить его как `TEMAn/report.md`. 3. После того, как отчет написан, закоммитить его как `TEMAn/report.md`.

6
ТЕМА1/assets/Perem Обычный файл
Просмотреть файл

@@ -0,0 +1,6 @@
# Created by Octave 8.3.0, Wed Feb 11 12:35:04 2026 GMT <unknown@w10prog-99>
# name: value
# type: scalar
152

5
ТЕМА1/assets/Prog1.m Обычный файл
Просмотреть файл

@@ -0,0 +1,5 @@
D1=D(3,5)
D2=D(3,4:end)
D3=D(2:3,3:5)
D4=D(16:20)
D5=D(3:4,[1,3,6])

Двоичные данные
ТЕМА1/assets/bar11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.7 KiB

Двоичные данные
ТЕМА1/assets/graphic11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 17 KiB

Двоичные данные
ТЕМА1/assets/histogram11.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.5 KiB

Двоичные данные
ТЕМА1/assets/pie11.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 56 KiB

Двоичные данные
ТЕМА1/assets/screen2.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 7.3 KiB

Двоичные данные
ТЕМА1/assets/screen3.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 77 KiB

Двоичные данные
ТЕМА1/assets/screen4.PNG Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 16 KiB

441
ТЕМА1/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,441 @@
# Отчет по теме 1
Тютин Матв4е2й, А-03-24
## 1. Изучение среды GNU Octave
Запущена среда GNU Octave. Визуально изучены компоненты графического интерфейса: главное меню, командное окно, окно текущей папки, область переменных и другие элементы.
## 2. Настройка текущего каталога
Нажал на окно рядом с *Текущая папка:* и установил путь к папке ТЕМА1
## 3. Настройка окон интерфейса
В главном меню «Окно» отмечены галочками для отображения:
- Командное окно
- Журнал выполненных команд
- Диспетчер файлов
- Область переменных
- Редактор
Все указанные окна появились в интерфейсе среды
## 4. Установка путей и работа с файлами
В меню «Правка» + «Установить путь» добавлены пути к папкам TEMA1 и TEMA2. В окне «Диспетчер файлов» отображен список файлов текущей папки.
## 5. Работа со справкой
Изучена система помощи:
- Открыта документация через «Справка» + «Документация» + «На диске»
- Просмотрен GNU Octave Manual
- Проверен список пакетов через «Справка» + «Пакеты Octave»
- Использована команда `help` для получения справки по функциям
```matlab
>> help randn
'randn' is a built-in function from the file libinterp/corefcn/rand.cc
-- X = randn (N)
-- X = randn (M, N, ...)
-- X = randn ([M N ...])
-- X = randn (..., "single")
-- X = randn (..., "double")
-- V = randn ("state")
-- randn ("state", V)
-- randn ("state", "reset")
-- V = randn ("seed")
-- randn ("seed", V)
-- randn ("seed", "reset")
Return a matrix with normally distributed random elements having
zero mean and variance one.
The arguments are handled the same as the arguments for 'rand'.
By default, 'randn' uses the Marsaglia and Tsang "Ziggurat
technique" to transform from a uniform to a normal distribution.
The class of the value returned can be controlled by a trailing
"double" or "single" argument. These are the only valid classes.
Reference: G. Marsaglia and W.W. Tsang, 'Ziggurat Method for
Generating Random Variables', J. Statistical Software, vol 5, 2000,
<https://www.jstatsoft.org/v05/i08/>
See also: rand, rande, randg, randp.
Additional help for built-in functions and operators is
available in the online version of the manual. Use the command
'doc <topic>' to search the manual index.
Help and information about Octave is also available on the WWW
at https://www.octave.org and via the help@octave.org
mailing list.
```
## 6. Создание матриц и векторов
```matlab
A=randn(4,6)
A =
-0.528329 -0.994136 0.423295 1.112417 -1.553415 0.112552
-0.382666 1.101997 1.580713 1.707565 1.722116 -0.693864
-0.357399 -0.131229 0.340915 -0.077007 1.373504 -0.604131
-1.275300 0.125405 -3.324363 0.552311 -0.676089 -1.190437
>> B=rand(4,7)
B =
6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01 4.1398e-01 3.3042e-01 3.4653e-01
5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01 9.0435e-01 1.6311e-02 4.1257e-01
1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01 4.4693e-01 3.1069e-01 2.6307e-03
3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01 6.0237e-01 4.0533e-01 9.7884e-01
>> C = 4:27
C =
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
>> H='This is a symbols vector'
H = This is a symbols vector
>> L=[-2+23.1j, 3-5.6j]
L =
-2.0000 + 23.1000i 3.0000 - 5.6000i
```
## 7. Операции с матрицами
```matlab
D=reshape(C,[],6)
D =
4 8 12 16 20 24
5 9 13 17 21 25
6 10 14 18 22 26
7 11 15 19 23 27
>> E=B'*A
E =
-1.062020 -0.051115 0.074274 1.889323 -0.159865 -0.797471
-0.987574 0.120358 1.538011 1.983992 1.375455 -1.009796
-1.786521 0.544003 -0.841670 2.256538 1.319305 -1.911457
-1.353524 -0.205707 -1.155552 1.282056 0.153180 -1.225409
-1.492714 0.601927 -0.245364 2.303039 1.120912 -1.567984
-0.808763 -0.300447 -1.075886 0.595356 -0.332495 -0.644339
-1.590215 0.232552 -2.454290 1.630394 -0.485993 -1.414100
>> F=[A,B]
F =
Columns 1 through 10:
-5.2833e-01 -9.9414e-01 4.2330e-01 1.1124e+00 -1.5534e+00 1.1255e-01 6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01
-3.8267e-01 1.1020e+00 1.5807e+00 1.7076e+00 1.7221e+00 -6.9386e-01 5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01
-3.5740e-01 -1.3123e-01 3.4092e-01 -7.7007e-02 1.3735e+00 -6.0413e-01 1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01
-1.2753e+00 1.2540e-01 -3.3244e+00 5.5231e-01 -6.7609e-01 -1.1904e+00 3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01
Columns 11 through 13:
4.1398e-01 3.3042e-01 3.4653e-01
9.0435e-01 1.6311e-02 4.1257e-01
4.4693e-01 3.1069e-01 2.6307e-03
6.0237e-01 4.0533e-01 9.7884e-01
>> G=A.*D
G =
-2.1133 -7.9531 5.0795 17.7987 -31.0683 2.7012
-1.9133 9.9180 20.5493 29.0286 36.1644 -17.3466
-2.1444 -1.3123 4.7728 -1.3861 30.2171 -15.7074
-8.9271 1.3795 -49.8654 10.4939 -15.5500 -32.1418
>> M=G./4.5
M =
-0.4696 -1.7674 1.1288 3.9553 -6.9041 0.6003
-0.4252 2.2040 4.5665 6.4508 8.0365 -3.8548
-0.4765 -0.2916 1.0606 -0.3080 6.7149 -3.4905
-1.9838 0.3065 -11.0812 2.3320 -3.4556 -7.1426
>> DDD=D.^3
DDD =
64 512 1728 4096 8000 13824
125 729 2197 4913 9261 15625
216 1000 2744 5832 10648 17576
343 1331 3375 6859 12167 19683
>> DL=D>=20
DL =
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
>> Dstolb=D(:)
Dstolb =
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
```
## 8. Стандартные функции
```matlab
B1=sqrt(B)
B1 =
0.830196 0.794780 0.626818 0.701587 0.643416 0.574820 0.588671
0.743569 0.875002 0.919798 0.514131 0.950974 0.127716 0.642313
0.372137 0.886932 0.853329 0.795333 0.668526 0.557392 0.051291
0.585250 0.250013 0.883270 0.775134 0.776123 0.636652 0.989364
>> B2=log(B)
B2 =
-0.372186 -0.459381 -0.934198 -0.708822 -0.881929 -1.107396 -1.059777
-0.592586 -0.267058 -0.167202 -1.330552 -0.100537 -4.115892 -0.885359
-1.976984 -0.239973 -0.317219 -0.457989 -0.805361 -1.168973 -5.940491
-1.071431 -2.772484 -0.248248 -0.509438 -0.506889 -0.903063 -0.021386
>> B3=sin(B)
B3 =
6.3594e-01 5.9050e-01 3.8287e-01 4.7259e-01 4.0226e-01 3.2444e-01 3.3964e-01
5.2515e-01 6.9299e-01 7.4865e-01 2.6126e-01 7.8602e-01 1.6311e-02 4.0096e-01
1.3804e-01 7.0799e-01 6.6551e-01 5.9121e-01 4.3220e-01 3.0571e-01 2.6307e-03
3.3586e-01 6.2466e-02 7.0340e-01 5.6533e-01 5.6659e-01 3.9432e-01 8.2985e-01
>> k=length(B1)
k = 7
>> nm=size(B1)
nm =
4 7
>> elem=numel(B1)
elem = 28
>> NN=linspace(11.5,34.1,20)
NN =
Columns 1 through 14:
11.500 12.689 13.879 15.068 16.258 17.447 18.637 19.826 21.016 22.205 23.395 24.584 25.774 26.963
Columns 15 through 20:
28.153 29.342 30.532 31.721 32.911 34.100
>> FF=ones(2,4)
FF =
1 1 1 1
1 1 1 1
>> GG=zeros(5)
GG =
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
>> B1D=diag(B1)
B1D =
0.8302
0.8750
0.8533
0.7751
>> DB=diag(B1D)
DB =
Diagonal Matrix
0.8302 0 0 0
0 0.8750 0 0
0 0 0.8533 0
0 0 0 0.7751
>> BS1=sort(B)
BS1 =
1.3849e-01 6.2507e-02 3.9290e-01 2.6433e-01 4.1398e-01 1.6311e-02 2.6307e-03
3.4252e-01 6.3167e-01 7.2817e-01 4.9222e-01 4.4693e-01 3.1069e-01 3.4653e-01
5.5290e-01 7.6563e-01 7.8017e-01 6.0083e-01 6.0237e-01 3.3042e-01 4.1257e-01
6.8923e-01 7.8665e-01 8.4603e-01 6.3255e-01 9.0435e-01 4.0533e-01 9.7884e-01
>> BS2=sortrows(B,2)
BS2 =
3.4252e-01 6.2507e-02 7.8017e-01 6.0083e-01 6.0237e-01 4.0533e-01 9.7884e-01
6.8923e-01 6.3167e-01 3.9290e-01 4.9222e-01 4.1398e-01 3.3042e-01 3.4653e-01
5.5290e-01 7.6563e-01 8.4603e-01 2.6433e-01 9.0435e-01 1.6311e-02 4.1257e-01
1.3849e-01 7.8665e-01 7.2817e-01 6.3255e-01 4.4693e-01 3.1069e-01 2.6307e-03
>> DS1=sum(D)
DS1 =
22 38 54 70 86 102
>> DS2=sum(D,2)
DS2 =
84
90
96
102
>> DP1=prod(D)
DP1 =
840 7920 32760 93024 212520 421200
>> dt=det(A*A')
dt = 727.40
>> dinv=inv(A*A')
dinv =
0.283810 -0.061584 0.278944 -0.011754
-0.061584 0.190474 -0.271478 0.037051
0.278944 -0.271478 0.932179 -0.026774
-0.011754 0.037051 -0.026774 0.076090
```
## 9. Работа с индексацией элементов матриц
```matlab
D1=D(3,5)
D1 = 22
>> D2=D(3,4:end)
D2 =
18 22 26
>> D3=D(2:3,3:5)
D3 =
13 17 21
14 18 22
>> D4=D(16:20)
D4 =
19 20 21 22 23
>> D5=D(3:4,[1,3,6])
D5 =
6 14 26
7 15 27
```
## 10. Управляющие конструкции
```matlab
Dsum=0
Dsum = 0
>> for i=1:6
Dsum=Dsum+sqrt(D(2,i))\
endfor
Dsum = 2.2361
Dsum = 5.2361
Dsum = 8.8416
Dsum = 12.965
Dsum = 17.547
Dsum = 22.547
>> Dsum2=0;i=1
i = 1
>> while (D(i)<22)
Dsum2=Dsum2+sin(D(i))
i=i+1
endwhile
Dsum2 = -0.7568
i = 2
Dsum2 = -1.7157
i = 3
Dsum2 = -1.9951
i = 4
Dsum2 = -1.3382
i = 5
Dsum2 = -0.3488
i = 6
Dsum2 = 0.063321
i = 7
Dsum2 = -0.4807
i = 8
Dsum2 = -1.4807
i = 9
Dsum2 = -2.0173
i = 10
Dsum2 = -1.5971
i = 11
Dsum2 = -0.6065
i = 12
Dsum2 = 0.043799
i = 13
Dsum2 = -0.2441
i = 14
Dsum2 = -1.2055
i = 15
Dsum2 = -1.9565
i = 16
Dsum2 = -1.8066
i = 17
Dsum2 = -0.8937
i = 18
Dsum2 = -0.057011
i = 19
>> if (D(3,5)>=20)
printf('D(3,5)>=20')
else
printf('D(3,5)<20')
endif
D(3,5)>=20>>
```
## 11. Графические функции
```matlab
>> graphics_toolkit('gnuplot')
>> plot(D(1,:),B([2,4],1:6))
>>
>> hist(A(:),6)
>>
>>
>> pie(D(1,:))
>> bar(D(1,:))
```
![график](assets/graphic11.png)
![гистограмма](assets/histogram11.png)
![круговая диаграмма](assets/pie11.png)
![ступенчатая диаграмма](assets/bar11.png)
## 12. Работа с текстовым редактором
Создан файл Prog1.m с командами из пункта 9. Файл сохранен в папке TEMA1/assets. Программа успешно запущена как через клавишу F5, так и через ввод имени файла в командной строке.
## 13. Сохранение и загрузка переменных
Содержимое области переменных сохранено в файл Perem. После перезапуска среды и установки пути к папке TEMA1 переменные успешно загружены из файла Perem. Команды из предыдущего сеанса отображены в журнале выполненных команд.

437
ТЕМА1/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,437 @@
# Общее контрольное задание по теме 1
Тютин Матвей, А-03-24
## Задание
* Создайте переменную ММ – матрицу 5х7 со случайными нормально распределенными элементами с математическим ожиданием 10 и стандартным отклонением 8.
* Рассчитайте среднее значение SR по всем элементам матрицы ММ.
* Замените в ММ все значения, превышающие SR+8, на значение SR+8, а значения, меньшие, чем SR-8, - на SR-8.
* Превратите ММ в вектор – столбец ММС. Упорядочьте его элементы по возрастанию. Определите значение медианы, в качестве которого возьмите серединное по порядку индексов значение в упорядоченном векторе.
* Рассчитайте матрицу ММ1 с элементами, равными натуральным логариф-мам от значений соответствующих элементов из матрицы ММ.
## Решение
```matlab
MM = 10 + 8 \* randn(5,7)
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 9.7834 12.6014 3.5270
12.9754 0.6712 18.7947 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> SR = sum(MM(:))/numel(MM)
SR = 9.1253
>> MMhigh = MM > SR + 8
MMhigh =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
>> MMhigh = (MMhigh - 1) \* (-1)
MMhigh =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
>> MM = MM .\* MMhigh
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 9.7834 12.6014 3.5270
12.9754 0.6712 0 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> MMhigh = (MMhigh - 1) \* (-1) \* (SR+8)
MMhigh =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 17.2773 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
>> MM = MM+MMhigh
MM =
6.6056 15.1764 8.5531 -2.2891 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 9.7834 12.6014 3.5270
12.9754 0.6712 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 -3.3942 8.7227 6.6019
>> MMlow = MM < SR - 8
MMlow =
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 1 0 0
>> MMlow = (MMlow - 1) \* (-1)
MMlow =
1 1 1 0 1 1 1
1 1 1 1 1 1 1
1 0 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 0 1 1
>> MM = MM .\* MMlow
MM =
6.6056 15.1764 8.5531 0 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 9.7834 12.6014 3.5270
12.9754 0 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 0 8.7227 6.6019
>> MMlow = (MMlow - 1) \* (-1) \* (SR-8)
MMlow =
0 0 0 1.2773 0 0 0
0 0 0 0 0 0 0
0 1.2773 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 1.2773 0 0
>> MM = MM + MMlow
MM =
6.6056 15.1764 8.5531 1.2773 7.1804 8.4510 10.3949
16.0919 14.8486 11.7429 9.3110 9.7834 12.6014 3.5270
12.9754 1.2773 17.2773 10.3827 12.1618 7.6309 17.1041
3.9008 4.9424 3.4973 11.2839 16.8650 11.4907 7.1277
5.0050 15.2839 10.5491 10.7308 1.2773 8.7227 6.6019
>> MMC = MM(:)
MMC =
6.6056
16.0919
12.9754
3.9008
5.0050
15.1764
14.8486
1.2773
4.9424
15.2839
8.5531
11.7429
17.2773
3.4973
10.5491
1.2773
9.3110
10.3827
11.2839
10.7308
7.1804
9.7834
12.1618
16.8650
1.2773
8.4510
12.6014
7.6309
11.4907
8.7227
10.3949
3.5270
17.1041
7.1277
6.6019
>> MMC = sort(MMC)
MMC =
1.2773
1.2773
1.2773
3.4973
3.5270
3.9008
4.9424
5.0050
6.6019
6.6056
7.1277
7.1804
7.6309
8.4510
8.5531
8.7227
9.3110
9.7834
10.3827
10.3949
10.5491
10.7308
11.2839
11.4907
11.7429
12.1618
12.6014
12.9754
14.8486
15.1764
15.2839
16.0919
16.8650
17.1041
17.2773
>> Ind = ceil(numel(MMC)/2)
Ind = 18
>> Med = MMC(Ind)
Med = 9.7834
>> MM1 = log(MM)
MM1 =
1.8879 2.7197 2.1463 0.2448 1.9714 2.1343 2.3413
2.7783 2.6979 2.4632 2.2312 2.3207 2.5338 1.2605
2.5631 0.2448 2.8494 2.3401 2.4983 2.0322 2.8393
1.3612 1.5978 1.2520 2.4234 2.8252 2.4415 1.9640
1.6104 2.7268 2.3560 2.3731 0.2448 2.1659 1.8874
```

Двоичные данные
ТЕМА2/Hist.jpg Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 27 KiB

22
ТЕМА2/Prog1.m Обычный файл
Просмотреть файл

@@ -0,0 +1,22 @@
XX=load('dan_vuz.txt');
size(XX);
X=XX(:,3:13);;
R=corr(X);
[vect,lambda]=eig(X'*X);
Sobst=diag(lambda);
fprintf('Eigenvalues:\n %f \n',Sobst);
fprintf('\n');
SobMax=Sobst(end);
GlComp=vect(:,end);
Delt=100*SobMax/sum(Sobst);
fprintf('Delta= %d \n ',round(Delt));
Res=X*GlComp;
fprintf(' Results \n ');
fprintf('%d %f \n ',[XX(:,1),Res] ');
save res.mat Res -mat;
graphics_toolkit('gnuplot')
hist(Res,20)
xlabel('Results ');
ylabel('Number of Unis ');
hist(Res,20)

287
ТЕМА2/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,287 @@
Отчет по теме 2
Тютин Матвей, А-03-24
1. Установка текущего каталога
В среде GNU Octave нажал на окно рядом с Текущая папка: и установил путь к папке TEMA2. Все дальнейшие операции выполнялись в этом каталоге.
2. Чтение и анализ данных
Выполнена загрузка данных из файла dan_vuz.txt:
matlab
>>XX=load('dan_vuz.txt')
XX =
Columns 1 through 10:
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 0
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 0
Матрица содержит данные о вузах России. Размерность матрицы:
matlab
>> size(XX)
ans =
290 15
Таким образом, в матрице представлены данные о 290 вузах.
Выделены показатели результативности (столбцы с 3 по 13):
matlab
>> X=XX(:,3:13);
Рассчитана матрица корреляций между показателями:
matlab
>> 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
3. Метод главных компонент
Получены собственные значения и собственные векторы от квадратичной формы X'*X:
matlab
>> [vect,lambda]=eig(X'*X)
vect =
Columns 1 through 10:
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 4.4068e-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.3599e-02 6.2111e-03
-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 -4.1502e-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 7.2027e-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 -3.7246e-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 -5.1787e-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 2.5496e-01
-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 5.5851e-04
-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 2.0459e-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 5.3342e-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 4.8313e-02
Column 11:
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
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:
matlab
>> Sobst=diag(lambda);
>> fprintf('Eigenvalues:\n %f \n',Sobst)
Eigenvalues:
22.946585
1931.665464
2593.979592
3457.339562
5625.151474
8672.065947
18914.627989
47522.678185
57483.681267
225653.068540
7494628.795394
Наибольшее собственное значение и соответствующий собственный вектор:
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
4. Оценка результативности и ее сохранение
Рассчитаны оценки обобщенной результативности для каждого вуза:
matlab
>> Res=X*GlComp
Res =
9.2542e+01
7.3433e+01
>> fprintf(' Results \n ')
Results
>> fprintf('%d %f \n ',[XX(:,1),Res] ')
197 92.541636
198 73.432513
Вектор оценок сохранен в бинарном файле:
matlab
>> save res.mat Res -mat
5. Графическое представление результатов
Построена гистограмма распределения оценок результативности (20 интервалов):
matlab
>> hist(Res,20)
>> xlabel('Results ')
>> ylabel('Number of Unis ')
Изображение гистограммы сохранено в файл:
matlab
>> saveas(gcf, 'Hist.jpg ', 'jpg ')
DEBUG: FC_WEIGHT didn't match
6. Оценка корреляции с финансированием
Рассчитана корреляция между обобщенной результативностью и финансированием НИР (второй столбец матрицы XX):
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
Значение корреляции показывает сильную положительную связь между объемом финансирования и результативностью НИР.
7. Создание и выполнение сценария
Все команды, использованные при решении задачи, были перенесены в текстовый редактор среды и сохранены в файл script_tema2.m в текущем каталоге. Запуск программы осуществлен клавишей F5. Результаты выполнения программы отобразились в командном окне полностью, так как символ ; в конце команд отсутствовал.
8. Подавление эхо-вывода
В файле script_tema2.m в конце каждой команды был добавлен символ ;. Повторный запуск программы (через ввод имени файла в командной строке) показал, что эхо-вывод результатов в командное окно отсутствует.
9. Создание протокола в текстовом файле
В начало сценария добавлена команда открытия файла протокола:
matlab
fp=fopen('prtcl.txt','w');
Команды вывода на экран продублированы функцией fprintf с выводом в файл:
matlab
fprintf(fp,'Eigenvalues:\n %f \n',Sobst);
fprintf(fp,'Delta= %d \n ',round(Delt));
fprintf(fp,' Results \n ');
fprintf(fp,'%d %f \n ',[XX(:,1),Res] ');
fprintf(fp,'Correlation of Results and Money = %f \n',CorFin);
В конце программы добавлено закрытие файла:
matlab
fclose(fp);
Содержимое созданного файла prtcl.txt:
text
Eigenvalues:
133740.218567
24274.492049
18049.476162
12187.759669
8545.058492
5810.617133
4584.600436
3848.348747
3029.434223
1858.484597
700.523023
Delta= 64
Results
1 193.742218
2 217.887485
3 191.339118
... (остальные строки с кодами и оценками опущены для краткости)
Correlation of Results and Money = 0.775030
10. Статистические характеристики оценок результативности
С использованием стандартных функций среды рассчитаны и выведены на экран, а также сохранены в файле протокола основные статистические показатели вектора оценок Res:
matlab
>> Res_min=min(Res)
Res_min = 138.70
>> Res_max=max(Res)
Res_max = 356.60
>> Res_mean=mean(Res)
Res_mean = 216.94
>> Res_std=std(Res)
Res_std = 37.175
>> fprintf('Min = %f, Max = %f, Mean = %f, Std = %f\n', Res_min, Res_max, Res_mean, Res_std)
Min = 138.699878, Max = 356.603579, Mean = 216.936550, Std = 37.175485
В файл протокола соответствующие строки добавлены командой:
matlab
fprintf(fp,'Min = %f, Max = %f, Mean = %f, Std = %f\n', Res_min, Res_max, Res_mean, Res_std);

Двоичные данные
ТЕМА2/res.mat Обычный файл

Двоичный файл не отображается.

0
ТЕМА2/task.md Обычный файл
Просмотреть файл