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

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

Автор SHA1 Сообщение Дата
eb4b78d4a5 doc: актуализировано описание работы с Git
* Убрана  синхронизация с апстримом, так как не требуется для CI,
  однако путает студентов, которые не понимают, когда её делать.

* Добавлена настройка Git, отключающая Windows credential helper.

* Добавлена настройка авторства коммитов.

* Добавлены примечания для компьютерных классов.
2026-02-18 13:48:51 +00:00
17 изменённых файлов: 28 добавлений и 1215 удалений

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

@@ -2,42 +2,53 @@
[Репозиторий с методическими указаниями и заданиями.](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 clone http://uit.mpei.ru/git/IvanovII/it-labs.git git config --global credential.helper ""
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`.

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

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

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

@@ -1,5 +0,0 @@
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

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

@@ -1,441 +0,0 @@
# Отчет по теме 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. Команды из предыдущего сеанса отображены в журнале выполненных команд.

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

@@ -1,437 +0,0 @@
# Общее контрольное задание по теме 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

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

@@ -1,22 +0,0 @@
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)

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

@@ -1,287 +0,0 @@
Отчет по теме 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

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

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