ответвлено от main/it-labs
630 строки
12 KiB
Markdown
630 строки
12 KiB
Markdown
# Отчет по теме 1
|
|
|
|
Дмитриев Денис, А-03-24
|
|
|
|
## 1 Изучение среды GNU Octave
|
|
|
|
## 2 Настройка текущего католога
|
|
|
|
Нажал на окно рядом с *Текущая папка:* и установил путь к папке TEMA1:
|
|
|
|

|
|
|
|
## 3 Работа с предложением *Окно*
|
|
|
|
Отметил галочками предложения, которые указаны в методическом задании:
|
|
|
|

|
|
|
|
## 4 Отображение списка файлов, размещенных в текущей папке
|
|
|
|
Выбрал в главном меню предложения "Правка" + "Установить путь" и добавил в появившийся список пути к папкам TEMA1 и TEMA2:
|
|
|
|

|
|
|
|
## 5 Изучил работу с системной помощи
|
|
|
|
3 способа взаимодействия с системой помощи:
|
|
|
|
В главном меню выберите предложения «Справка» + « Документация» + « На диске».
|
|
|
|
Ввод в командную строку help randn.
|
|
|
|
Также можно использовать функции из дополнительных пакетов. Список пакетов можно получить выбрав в меню «Справка» + «Пакеты Octave».
|
|
|
|
|
|
## 6 Создание матрицы
|
|
|
|
Создал матрицу A с размерами 4x6 и случайными, нормально распределенными элементами:
|
|
|
|
```matlab
|
|
>> A = randn(4, 6)
|
|
A =
|
|
|
|
0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919
|
|
0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679
|
|
-1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653
|
|
-1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315
|
|
|
|
>>
|
|
```
|
|
|
|
Создал матрицу B с размерами 4x7, со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:
|
|
|
|
```matlab
|
|
>> B = rand(4, 7)
|
|
B =
|
|
|
|
0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635
|
|
0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873
|
|
0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852
|
|
0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516
|
|
|
|
>>
|
|
```
|
|
|
|
Создал вектор 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.236331 1.240351 2.103116 0.738438 -0.110577 -1.343705
|
|
-0.845742 0.453508 2.254787 0.065083 1.413113 -1.669059
|
|
-0.745924 1.091683 1.003080 2.344160 0.702988 -1.569616
|
|
0.338176 1.202100 1.180775 1.235283 -0.477663 -0.938971
|
|
-0.050181 2.280788 1.965852 3.639985 -0.214397 -2.111676
|
|
-0.443727 0.329697 2.381378 -1.465343 1.027634 -1.494497
|
|
-0.233701 0.940419 3.317734 -0.141089 0.878150 -1.859314
|
|
|
|
>>
|
|
```
|
|
|
|
Создал матрицы путем горизонтального соединения матриц A и B:
|
|
|
|
```matlab
|
|
|
|
>> F=[A,B]
|
|
F =
|
|
|
|
Columns 1 through 12:
|
|
|
|
0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919 0.694982 0.394179 0.323789 0.508678 0.970610 0.117920
|
|
0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679 0.734522 0.627452 0.289060 0.477757 0.643385 0.933351
|
|
-1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653 0.336235 0.814269 0.233545 0.013444 0.149924 0.667995
|
|
-1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315 0.195053 0.396269 0.730697 0.216455 0.782906 0.132764
|
|
|
|
Column 13:
|
|
|
|
0.892635
|
|
0.963873
|
|
0.949852
|
|
0.189516
|
|
|
|
>>
|
|
```
|
|
|
|
Поэлементарно перемножил матрицы A и D:
|
|
|
|
```matlab
|
|
|
|
>> G = A.*D
|
|
G =
|
|
|
|
3.0870 8.8443 8.7615 34.0204 -20.0704 -4.1740
|
|
2.2212 8.1902 21.3908 -18.6571 -8.3100 -27.0420
|
|
-7.1465 -11.7583 15.8141 -30.2190 45.9918 -10.2350
|
|
-8.1051 11.2195 0.5590 61.4965 20.5880 -40.9675
|
|
|
|
>>
|
|
```
|
|
|
|
Поэлементарно поделил элементы матрицы G на 4.5:
|
|
|
|
```matlab
|
|
|
|
>> M =G./4.5
|
|
M =
|
|
|
|
0.6860 1.9654 1.9470 7.5601 -4.4601 -0.9276
|
|
0.4936 1.8200 4.7535 -4.1460 -1.8467 -6.0093
|
|
-1.5881 -2.6130 3.5142 -6.7153 10.2204 -2.2744
|
|
-1.8011 2.4932 0.1242 13.6659 4.5751 -9.1039
|
|
|
|
>>
|
|
```
|
|
|
|
Поэлементарно возвел в степень элементы матрицы 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
|
|
|
|
>>
|
|
|
|
```
|
|
|
|
Создал логическую матрицу, совпадающей по размерам с 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.8337 0.6278 0.5690 0.7132 0.9852 0.3434 0.9448
|
|
0.8570 0.7921 0.5376 0.6912 0.8021 0.9661 0.9818
|
|
0.5799 0.9024 0.4833 0.1159 0.3872 0.8173 0.9746
|
|
0.4416 0.6295 0.8548 0.4652 0.8848 0.3644 0.4353
|
|
|
|
>>
|
|
```
|
|
|
|
Логарифм:
|
|
|
|
```matlab
|
|
>> B2 = log(B)
|
|
B2 =
|
|
|
|
-0.363869 -0.930950 -1.127662 -0.675940 -0.029831 -2.137750 -0.113577
|
|
-0.308535 -0.466089 -1.241120 -0.738654 -0.441012 -0.068974 -0.036796
|
|
-1.089944 -0.205465 -1.454382 -4.309246 -1.897627 -0.403475 -0.051449
|
|
-1.634482 -0.925662 -0.313757 -1.530371 -0.244742 -2.019182 -1.663281
|
|
|
|
>>
|
|
```
|
|
|
|
Синус:
|
|
```matlab
|
|
>> B3 = sin(B)
|
|
B3 =
|
|
|
|
0.640372 0.384050 0.318161 0.487023 0.825230 0.117647 0.778728
|
|
0.670233 0.587084 0.285052 0.459788 0.599907 0.803619 0.821407
|
|
0.329936 0.727224 0.231427 0.013443 0.149363 0.619413 0.813330
|
|
0.193819 0.385979 0.667389 0.214769 0.705343 0.132374 0.188384
|
|
|
|
>>
|
|
```
|
|
|
|
- Операции с матрицами:
|
|
|
|
```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.8337
|
|
0.7921
|
|
0.4833
|
|
0.4652
|
|
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> DB = diag(B1D)
|
|
DB =
|
|
|
|
Diagonal Matrix
|
|
|
|
0.8337 0 0 0
|
|
0 0.7921 0 0
|
|
0 0 0.4833 0
|
|
0 0 0 0.4652
|
|
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> BS1=sort(B)
|
|
BS1 =
|
|
|
|
0.195053 0.394179 0.233545 0.013444 0.149924 0.117920 0.189516
|
|
0.336235 0.396269 0.289060 0.216455 0.643385 0.132764 0.892635
|
|
0.694982 0.627452 0.323789 0.477757 0.782906 0.667995 0.949852
|
|
0.734522 0.814269 0.730697 0.508678 0.970610 0.933351 0.963873
|
|
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> BS2=sortrows(B,2)
|
|
BS2 =
|
|
|
|
0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635
|
|
0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516
|
|
0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873
|
|
0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852
|
|
|
|
>>
|
|
```
|
|
|
|
```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 = 1255.5
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> dinv = inv(A*A')
|
|
dinv =
|
|
|
|
0.8194 -0.3173 0.4800 -0.2872
|
|
-0.3173 0.2928 -0.2075 0.1266
|
|
0.4800 -0.2075 0.3753 -0.1545
|
|
-0.2872 0.1266 -0.1545 0.1674
|
|
|
|
>>
|
|
```
|
|
|
|
## 9 Изучение работы с индексацией элементов матрицы
|
|
|
|
```matlab
|
|
>> D1 = D(3,5)
|
|
D1 = 22
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
ࠀ>> D2 = D(3,4:end)
|
|
D2 =
|
|
|
|
18 22 26
|
|
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> D3 = D(2:3,3:5)
|
|
D3 =
|
|
|
|
13 17 21
|
|
14 18 22
|
|
|
|
>>
|
|
```
|
|
|
|
```matlab
|
|
>> D4 = D(16:20)
|
|
D4 =
|
|
|
|
19 20 21 22 23
|
|
|
|
>>
|
|
```
|
|
|
|
```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
|
|
plot(D(1,:),B([2,4],1:6))
|
|
```
|
|
|
|

|
|
|
|
Функция расчета и построения гистограммы:
|
|
|
|
```matlab
|
|
hist(A(:),6)
|
|
```
|
|
|
|

|
|
|
|
Функция pie:
|
|
|
|
```matlab
|
|
pie(C)
|
|
```
|
|
|
|

|
|
|
|
Функция bar:
|
|
|
|
```matlab
|
|
bar(C)
|
|
```
|
|
|
|

|
|
|
|
## 12 Работа с текстовым редактором
|
|
|
|
Создал сценарий и перенес все выполненные команды из п.9:
|
|
|
|

|
|
|
|
Убедился в работоспособности программы с помощью кнопки F5 и ввода имени файла в командной строке.
|
|
|
|
## Сохранение и восстановление переменных
|
|
|
|
Сохранил содержимое области переменных в файле Perem, завершил работу со средой и снова запустил среду. С помощью комманд восстановил содержимое из области файла Perem. Убедился в том, что в журнале выполненных команд сохранены команды из предыдущего сеанса работы со средой.
|
|
|
|
|
|
|
|
|
|
|
|
|