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

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

Автор SHA1 Сообщение Дата
63f3cd347d 3 2026-02-12 12:10:59 +03:00
2a4d01db3c исправлено окз 2026-02-12 09:11:27 +03:00
1854f43e2c исправлено задание 2026-02-12 00:07:18 +03:00
e6dcb5f560 добавлено общее контрольное задание 2026-02-11 23:36:18 +03:00
1737e4932a исправлен отчёт 2026-02-11 22:28:13 +03:00
1f591c2ca7 готовый отчёт 2026-02-11 21:54:20 +03:00
98d88fae26 исправлен отчёт 2026-02-11 21:49:19 +03:00
f8c3b4131b исправлены отчёт и скриншоты 2026-02-11 21:38:37 +03:00
aab2be853c исправлен отчёт 2026-02-11 19:12:17 +03:00
4be8fe7d2a исправлены отчёт и скриншоты 2026-02-11 18:08:56 +03:00
Пользователь № 3 аудитории Ж-202
1dbca3232d отчет 2026-02-11 12:28:24 +03:00
Пользователь № 3 аудитории Ж-202
06fa2f7a29 ТЕМА1/task.md 2026-02-11 10:33:40 +03:00
Пользователь № 3 аудитории Ж-202
c95c7a9d27 ТЕМА1/report.md 2026-02-11 10:28:47 +03:00
24 изменённых файлов: 1277 добавлений и 28 удалений

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

@@ -2,53 +2,42 @@
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/it)
**Работы проверяются только после того, как закоммичены по правилам ниже.**
## Работа с Git
**Работы проверяются только после того, как закоммичены по правилам ниже.**
[Лабораторная работа про Git второго семестра][gitlab]
поможет вспомнить, как работать с Git.
[gitlab]: http://uit.mpei.ru/git/main/cs/src/branch/main/labs/lab02
1. Один раз в начале семестра
1. В начале семестра
создать на сервере копию этого репозитория («форкнуть» его), нажав *Fork*.
Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/it-labs`,
где `IvanovII` — ваше имя пользователя.
2. В начале каждого занятия:
1. Настроить Git, чтобы не было проблем с вводом пароля:
Клонировать свой форк на рабочий стол
(`IvanovII` заменить на свое имя пользователя):
```sh
git config --global credential.helper ""
git config --global core.askpass ""
git clone http://uit.mpei.ru/git/IvanovII/it-labs.git
```
2. Клонировать свой форк на рабочий стол
(`IvanovII` заменить на свое имя пользователя):
Перебазировать свой форк на исходный репозиторий ("апстрим"):
```sh
git clone http://uit.mpei.ru/git/IvanovII/it-labs.git
```
```sh
# Первую команду нужно запускать только один раз,
# иначе будет ошибка "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`.

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

@@ -0,0 +1,52 @@
# Created by Octave 8.3.0, Wed Feb 11 12:24:54 2026 GMT <unknown@w10prog-66>
# name: C
# type: double_range
# base, limit, increment
4 27 1
# name: D
# type: matrix
# rows: 4
# columns: 6
4 8 12 16 20 24
5 9 13 17 21 25
6 10 14 18 22 26
7 11 15 19 23 27
# name: D1
# type: scalar
22
# name: D2
# type: matrix
# rows: 1
# columns: 3
18 22 26
# name: D3
# type: matrix
# rows: 2
# columns: 3
13 17 21
14 18 22
# name: D4
# type: matrix
# rows: 1
# columns: 5
19 20 21 22 23
# name: D5
# type: matrix
# rows: 2
# columns: 3
6 14 26
7 15 27

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

@@ -0,0 +1,8 @@
warning('off','all')
C=4:27
D=reshape(C,[],6)
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/figure0.png Обычный файл

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

@@ -0,0 +1,568 @@
# Отчет по теме 1
Мокеев Никита, А-03-24
## 1 Изучение размещения компонентов графического интерфейса и главного меню среды GNU Octave
## 2 Настройка текущего каталога
Нажал на окно рядом с *Текущая папка:* и установил путь к папке ТЕМА1:
![Скриншот выбора текущей папки](assets/figure0.png)
## 3 Настройка командного окна
Нажал на "Окно" и отметил галочками нужные закладки:
![Скриншот выбора](assets/figure1.png)
## 4 Установка путей
В главном меню нажал "Правка"+"Установить путь" и добавил пути к папкам ТЕМА1 и ТЕМА2:
![Скриншот путей](assets/figure2.png)
## 5 Изучение работы со справкой
- "Справка"+"Документация"+"На диске" -> GNU Octave Manual -> Function Index
- Команда 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 https://octave.discourse.group/c/help/
```
- Для дополнительно подгружанемых пакетов "Справка"+"Пакеты Octave"
## 6 Создание матриц и векторов
- Создал матрицу A со случайными, нормально распределенными элементами, с 4 строками и 6 столбцами:
```matlab
>> A=randn(4,6)
A =
-8.8652e-04 -1.0071e+00 2.6421e+00 3.8636e-01 -7.3431e-01 -1.5501e+00
-4.9683e-01 1.0487e+00 1.1767e+00 1.4078e+00 5.8390e-01 -6.8323e-01
-1.3548e+00 6.6523e-01 -1.3285e-01 6.6288e-01 4.4201e-01 -1.9994e-01
-8.7788e-01 7.6938e-01 -5.0126e-01 5.2538e-01 -2.4666e-01 2.1566e-01
```
- Создал матрицу B 4 на 7 со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:
```matlab
>> B=rand(4,7)
B =
0.7970 0.1010 0.7218 0.3126 0.4221 0.6251 0.7380
0.7449 0.2626 0.9508 0.9491 0.7637 0.5634 0.2042
0.1526 0.4856 0.1360 0.3862 0.6602 0.1868 0.8259
0.3730 0.9549 0.7369 0.6055 0.6335 0.9687 0.4128
```
- Создал вектор C с целыми числами от 4 до 27:
```matlab
>> 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:
```matlab
>> H='This is a symbols vector'
H = This is a symbols vector
```
- Создал вектор-строку L с 2 комплексными элемантами:
```matlab
>> L=[-2+23.1j,3-5.6j]
L =
-2.0000 + 23.1000i 3.0000 - 5.6000i
```
## 7 Выполнение операций
- Преобразование матрицы C в матрицу с 6 столбцами:
```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
```
- Матричное перемножение B и A с транспонированием матрицы B:
```matlab
>> E=B'*A
E =
-0.905003 0.366963 2.775023 1.653730 -0.174901 -1.694415
-1.626754 1.231418 0.032795 1.232379 0.058296 -0.227191
-1.304200 0.927556 2.638398 2.094717 -0.096503 -1.636723
-1.526554 1.403175 1.587962 2.031026 0.345964 -1.079674
-1.830334 1.302351 1.608475 2.008629 0.271495 -1.171358
-1.383938 0.830841 1.804013 1.667391 -0.286397 -1.182251
-1.583318 0.337804 1.873541 1.336895 -0.159519 -1.359576
```
- Создание матрицы путём "горизонтального" соединения матриц A и B:
```matlab
>> F=[A,B]
F =
Columns 1 through 10:
-8.8652e-04 -1.0071e+00 2.6421e+00 3.8636e-01 -7.3431e-01 -1.5501e+00 7.9703e-01 1.0102e-01 7.2181e-01 3.1263e-01
-4.9683e-01 1.0487e+00 1.1767e+00 1.4078e+00 5.8390e-01 -6.8323e-01 7.4488e-01 2.6265e-01 9.5078e-01 9.4908e-01
-1.3548e+00 6.6523e-01 -1.3285e-01 6.6288e-01 4.4201e-01 -1.9994e-01 1.5260e-01 4.8561e-01 1.3603e-01 3.8621e-01
-8.7788e-01 7.6938e-01 -5.0126e-01 5.2538e-01 -2.4666e-01 2.1566e-01 3.7305e-01 9.5489e-01 7.3688e-01 6.0547e-01
Columns 11 through 13:
4.2208e-01 6.2507e-01 7.3803e-01
7.6366e-01 5.6337e-01 2.0416e-01
6.6017e-01 1.8683e-01 8.2585e-01
6.3355e-01 9.6867e-01 4.1280e-01
```
- Поэлементное перемножение матриц А и D:
```matlab
>> G=A.*D
G =
-3.5461e-03 -8.0569e+00 3.1705e+01 6.1818e+00 -1.4686e+01 -3.7201e+01
-2.4841e+00 9.4381e+00 1.5297e+01 2.3933e+01 1.2262e+01 -1.7081e+01
-8.1286e+00 6.6523e+00 -1.8598e+00 1.1932e+01 9.7243e+00 -5.1984e+00
-6.1452e+00 8.4632e+00 -7.5188e+00 9.9823e+00 -5.6732e+00 5.8229e+00
```
- Поэлементное деление элементов матриц G на 4.5:
```matlab
>> M=G./4.5
M =
-7.8802e-04 -1.7904e+00 7.0455e+00 1.3737e+00 -3.2636e+00 -8.2670e+00
-5.5203e-01 2.0973e+00 3.3993e+00 5.3184e+00 2.7249e+00 -3.7957e+00
-1.8064e+00 1.4783e+00 -4.1330e-01 2.6515e+00 2.1610e+00 -1.1552e+00
-1.3656e+00 1.8807e+00 -1.6709e+00 2.2183e+00 -1.2607e+00 1.2940e+00
```
- Поэлементное возведение в степень элементов матрицы D:
```matlab
>> 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
```
- Cоздание логической матрицы, совпадающей по размерам с D и с элементами по заданному условию:
```matlab
>> 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
```
- Превращение матрицы в вектор-столбец:
```matlab
>> 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.8928 0.3178 0.8496 0.5591 0.6497 0.7906 0.8591
0.8631 0.5125 0.9751 0.9742 0.8739 0.7506 0.4518
0.3906 0.6969 0.3688 0.6215 0.8125 0.4322 0.9088
0.6108 0.9772 0.8584 0.7781 0.7960 0.9842 0.6425
```
- Натуральный логарифм:
```matlab
>> B2=log(B)
B2 =
-0.226865 -2.292455 -0.325995 -1.162730 -0.862562 -0.469892 -0.303766
-0.294538 -1.336935 -0.050472 -0.052261 -0.269637 -0.573819 -1.588831
-1.879965 -0.722345 -1.994860 -0.951385 -0.415259 -1.677569 -0.191340
-0.986048 -0.046156 -0.305325 -0.501751 -0.456419 -0.031827 -0.884786
```
- Синус:
```matlab
>> B3=sin(B)
B3 =
0.7153 0.1008 0.6607 0.3076 0.4097 0.5852 0.6728
0.6779 0.2596 0.8139 0.8129 0.6916 0.5340 0.2027
0.1520 0.4667 0.1356 0.3767 0.6133 0.1857 0.7351
0.3645 0.8163 0.6720 0.5691 0.5920 0.8241 0.4012
```
**Операции с матрицами:**
- Длина матрицы(количество столбцов):
```matlab
>> k=length(B1)
k = 7
```
- Размер матрицы:
```matlab
>> nm=size(B1)
nm =
4 7
```
- Количество элементов в матрице:
```matlab
>> elem=numel(B1)
elem = 28
```
- Вектор линейного интервала:
```matlab
>> NN=linspace(11.5,34.1,20)
NN =
Columns 1 through 15:
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 28.153
Columns 16 through 20:
29.342 30.532 31.721 32.911 34.100
```
- Матрица из единиц:
```matlab
>> FF=ones(2,4)
FF =
1 1 1 1
1 1 1 1
```
- Матрица из нулей:
```matlab
>> 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
```
- Диагональ матрицы:
```matlab
>> B1D=diag(B1)
B1D =
0.8928
0.5125
0.3688
0.7781
```
- Диагональная матрица из вектора:
```matlab
>> DB=diag(B1D)
DB =
Diagonal Matrix
0.8928 0 0 0
0 0.5125 0 0
0 0 0.3688 0
0 0 0 0.7781
```
- Сортировка в столбцах:
```matlab
>> BS1=sort(B)
BS1 =
0.1526 0.1010 0.1360 0.3126 0.4221 0.1868 0.2042
0.3730 0.2626 0.7218 0.3862 0.6335 0.5634 0.4128
0.7449 0.4856 0.7369 0.6055 0.6602 0.6251 0.7380
0.7970 0.9549 0.9508 0.9491 0.7637 0.9687 0.8259
```
- Сортировка по 2 стобцу:
```matlab
>> BS2=sortrows(B,2)
BS2 =
0.7970 0.1010 0.7218 0.3126 0.4221 0.6251 0.7380
0.7449 0.2626 0.9508 0.9491 0.7637 0.5634 0.2042
0.1526 0.4856 0.1360 0.3862 0.6602 0.1868 0.8259
0.3730 0.9549 0.7369 0.6055 0.6335 0.9687 0.4128
```
- Сумма каждого столбца:
```matlab
>> DS1=sum(D)
DS1 =
22 38 54 70 86 102
```
- Сумма каждой строки:
```matlab
>> DS2=sum(D,2)
DS2 =
84
90
96
102
```
- Произведение по столбцам:
```matlab
>> DP1=prod(D)
DP1 =
840 7920 32760 93024 212520 421200
```
- Определитель:
```matlab
>> dt=det(A*A')
dt = 30.417
```
- Обратная матрица:
```matlab
>> dinv=inv(A*A')
dinv =
0.195493 -0.178920 0.018720 0.280781
-0.178920 0.512852 -0.507281 0.032452
0.018720 -0.507281 1.652127 -1.325540
0.280781 0.032452 -1.325540 2.074159
```
## 9 Работа с индексацией элементов матриц
- Элемент 3 строки 5 столбца:
```matlab
>> D1=D(3,5)
D1 = 22
```
- Часть строки 3 строки с 4 по последний столбцы:
```matlab
>> D2=D(3,4:end)
D2 =
18 22 26
```
- Кусок матрицы:
```matlab
>> D3=D(2:3,3:5)
D3 =
13 17 21
14 18 22
```
- Элементы с 16 по 20 место(по столбцам сверху вниз):
```matlab
>> D4=D(16:20)
D4 =
19 20 21 22 23
```
- Смешанная матрица( 3,4 строки; 1,3,6 столбцы):
```matlab
>> 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
```
- Цикл пока выполняется условие:
```matlab
>> 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:
```matlab
>> 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))
```
![Скриншот графиков](assets/figure3.png)
- Функция расчета и построения гистограммы:
```matlab
>> graphics_toolkit('gnuplot')
>> hist(A(:),6)
```
![Скриншот гистограммы](assets/figure4.png)
- Функция pie():
```matlab
>> graphics_toolkit('gnuplot')
>> pie(C)
```
![Скриншот функции](assets/figure5.png)
- Функция bar():
```matlab
>> graphics_toolkit('gnuplot')
>> bar(C)
```
![Скриншот функции](assets/figure6.png)
## 12 Работа с текстовым редактором
Нажал «Файл»+ «Создать»+«Создать сценарий», в окно редактора перенёс команды из пункта 9, сохранил в файле Prog1.m.
![Скриншот окна редактора](assets/figure7.png)
Вывод программы:
```matlab
>> Prog1
D1 = 22
D2 =
18 22 26
D3 =
13 17 21
14 18 22
D4 =
19 20 21 22 23
D5 =
6 14 26
7 15 27
```
## 13 Сохранение и загрузка переменных
В главном меню выбрал «Файл» + «Сохранить область переменных» и сохранил содержимое области переменных в файле Perem. Вышел и запустил систему заново. Текущей папкой выбрал ТЕМА1. Выбрал «Файл» + «Загрузить область переменных» и восстановил содержимое из файла Perem.
![Скриншот области переменных](assets/figure8.png)

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

@@ -0,0 +1,266 @@
# Общее контрольное задание по теме 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 =
-0.3150 18.2714 16.3823 -0.3882 7.6231 9.4711 0.3784
1.1265 11.5555 -0.9722 16.4186 2.9388 16.7871 14.8105
8.8727 1.8825 5.0660 14.5294 14.5326 5.5724 9.9409
1.0583 3.3569 13.8140 9.1158 12.5865 10.9011 4.3489
15.5769 12.6464 -6.4921 12.9410 2.3038 9.3104 2.6408
>> SR=sum(MM(:))/numel(MM)
SR = 7.9598
>> UP=SR+8
UP = 15.960
>> LOW=SR-8
LOW = -0.040190
>> MM(MM>UP)=UP;
>> LOW(MM<LOW)=LOW;
>> MM
MM =
-4.0190e-02 1.5960e+01 1.5960e+01 -4.0190e-02 7.6231e+00 9.4711e+00 3.7838e-01
1.1265e+00 1.1556e+01 -4.0190e-02 1.5960e+01 2.9388e+00 1.5960e+01 1.4810e+01
8.8727e+00 1.8825e+00 5.0660e+00 1.4529e+01 1.4533e+01 5.5724e+00 9.9409e+00
1.0583e+00 3.3569e+00 1.3814e+01 9.1158e+00 1.2587e+01 1.0901e+01 4.3489e+00
1.5577e+01 1.2646e+01 -4.0190e-02 1.2941e+01 2.3038e+00 9.3104e+00 2.6408e+00
>> MMC=MM(:)
MMC =
-4.0190e-02
1.1265e+00
8.8727e+00
1.0583e+00
1.5577e+01
1.5960e+01
1.1556e+01
1.8825e+00
3.3569e+00
1.2646e+01
1.5960e+01
-4.0190e-02
5.0660e+00
1.3814e+01
-4.0190e-02
-4.0190e-02
1.5960e+01
1.4529e+01
9.1158e+00
1.2941e+01
7.6231e+00
2.9388e+00
1.4533e+01
1.2587e+01
2.3038e+00
9.4711e+00
1.5960e+01
5.5724e+00
1.0901e+01
9.3104e+00
3.7838e-01
1.4810e+01
9.9409e+00
4.3489e+00
2.6408e+00
>> MMC1=sort(MMC)
MMC1 =
-4.0190e-02
-4.0190e-02
-4.0190e-02
-4.0190e-02
3.7838e-01
1.0583e+00
1.1265e+00
1.8825e+00
2.3038e+00
2.6408e+00
2.9388e+00
3.3569e+00
4.3489e+00
5.0660e+00
5.5724e+00
7.6231e+00
8.8727e+00
9.1158e+00
9.3104e+00
9.4711e+00
9.9409e+00
1.0901e+01
1.1556e+01
1.2587e+01
1.2646e+01
1.2941e+01
1.3814e+01
1.4529e+01
1.4533e+01
1.4810e+01
1.5577e+01
1.5960e+01
1.5960e+01
1.5960e+01
1.5960e+01
>> Med=MMC1(floor(numel(MMC1)/2)+1)
Med = 9.1158
>> MM1=log(MM)
MM1 =
Columns 1 through 4:
-3.2141 + 3.1416i 2.7701 + 0i 2.7701 + 0i -3.2141 + 3.1416i
0.1191 + 0i 2.4472 + 0i -3.2141 + 3.1416i 2.7701 + 0i
2.1830 + 0i 0.6326 + 0i 1.6226 + 0i 2.6762 + 0i
0.0567 + 0i 1.2110 + 0i 2.6257 + 0i 2.2100 + 0i
2.7458 + 0i 2.5374 + 0i -3.2141 + 3.1416i 2.5604 + 0i
Columns 5 through 7:
2.0312 + 0i 2.2482 + 0i -0.9719 + 0i
1.0780 + 0i 2.7701 + 0i 2.6953 + 0i
2.6764 + 0i 1.7178 + 0i 2.2967 + 0i
2.5326 + 0i 2.3889 + 0i 1.4699 + 0i
0.8346 + 0i 2.2311 + 0i 0.9711 + 0i
```

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

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

После

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

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

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

После

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

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

@@ -0,0 +1,21 @@
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;
hist(Res,20)
xlabel('Results ');
ylabel('Number of Unis ');
hist(Res,20)

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

@@ -0,0 +1,23 @@
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;
hist(Res,20)
xlabel('Results ')
ylabel('Number of Unis ')
saveas(gcf, 'Hist2.jpg ', 'jpg ');
CorFin=corr(Res,XX(:,2));
fprintf('Correlation of Results and Money = %f \n',CorFin);

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

@@ -0,0 +1,322 @@
# Отчет по теме 2
Мокеев Никита, А-03-24
## 1 Настройка текущего каталога
Установил в качестве текущей папки ТЕМА2:
![Скриншот выбора текущей папки](assets/figure0.png)
## 2
Загрузка данных из текстового файла в матрицу:
```matlab
>> XX=load('dan_vuz.txt');
```
Размерность:
```matlab
>> size(XX)
ans =
&nbsp; 290 15
```
*Данные о скольких вузах России представлены в этой матрице?* - 290
Данные о показателях результативности:
```matlab
>> X=XX(:,3:13);
```
Матрица корреляций между показателями результативности:
```matlab
>> R=corr(X);
```
Метод главных компонент, получение собственных значений и собственных векторов от квадратичной формы:
```matlab
>> [vect,lambda]=eig(X'*X);
```
Извлечение диагональных элементов матрицы в вектор:
```matlab
>> Sobst=diag(lambda)
Sobst =
&nbsp; 2.2947e+01
&nbsp; 1.9317e+03
&nbsp; 2.5940e+03
&nbsp; 3.4573e+03
&nbsp; 5.6252e+03
&nbsp; 8.6721e+03
&nbsp; 1.8915e+04
&nbsp; 4.7523e+04
&nbsp; 5.7484e+04
&nbsp; 2.2565e+05
&nbsp; 7.4946e+06
```
Вывод собственных значений на экран с заголовком:
```matlab
>> fprintf('Eigenvalues:n %f n',Sobst)
Eigenvalues:
&nbsp;22.946585
Eigenvalues:
&nbsp;1931.665464
Eigenvalues:
&nbsp;2593.979592
Eigenvalues:
&nbsp;3457.339562
Eigenvalues:
&nbsp;5625.151474
Eigenvalues:
&nbsp;8672.065947
Eigenvalues:
&nbsp;18914.627989
Eigenvalues:
&nbsp;47522.678185
Eigenvalues:
&nbsp;57483.681267
Eigenvalues:
&nbsp;225653.068540
Eigenvalues:
&nbsp;7494628.795394
```
Выделения собственного наибольшего значения и вектора:
```matlab
>> SobMax=Sobst(end)
SobMax = 7.4946e+06
>> GlComp=vect(:,end)
GlComp =
&nbsp; 3.5306e-02
&nbsp; 4.6772e-02
&nbsp; 4.8953e-02
&nbsp; 6.1556e-01
&nbsp; 2.4277e-01
&nbsp; 7.3685e-01
&nbsp; 9.5893e-02
&nbsp; 1.6945e-04
&nbsp; 1.7911e-02
&nbsp; 5.9523e-02
&nbsp; 1.7425e-02
```
Доля информации в главной компоненте:
```matlab
>> Delt=100*SobMax/sum(Sobst);
>> fprintf('Delta= %d n ',round(Delt))
Delta= 95
```
Вектор оценки обобщенной результативности для каждого ВУЗа:
```matlab
>> Res=X*GlComp;
```
Вывод заголовка результатов:
```matlab
>> fprintf(' Results n ')
&nbsp;Results
```
Вывод таблицы результатов:
```matlab
>> fprintf('%d %f n ',[XX(:,1),Res] ')
```
Сохранение вектора оценок в бинарном файле:
```matlab
>> save res.mat Res -mat
```
Построение гистограммы:
```matlab
>> hist(Res,20)
```
![Скриншот гистограммы](assets/figure1.png)
Обозначение осей и повторный вывод:
```matlab
xlabel('Results ');
ylabel('Number of Unis ');
hist(Res,20)
```
![Скриншот гистограммы](assets/figure2.png)
Сохранение гистограммы:
```matlab
saveas(gcf, 'Hist.jpg ', 'jpg ')
```
Расчет оценки коререляции:
```matlab
>> CorFin=corr(Res,XX(:,2))
CorFin = 0.8437
```
И ее вывод:
```matlab
>> fprintf('Correlation of Results and Money = %f n',CorFin)
Correlation of Results and Money = 0.843710
```
## 3
figure2
Prog2

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

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