ответвлено от main/it-labs
657 строки
15 KiB
Markdown
657 строки
15 KiB
Markdown
#Отчет по теме 1
|
||
Шабанова Рания, А-03-24
|
||
|
||
## 1 Изучение среды GNU Octave.
|
||
|
||
|
||
## 2 Настройка текущего каталога.
|
||
Нажала на окно рядом с *Текущая папка:* и установила путь к папке ТЕМА1:
|
||
|
||

|
||
|
||
|
||
## 3 Настройка командного окна.
|
||
Нажала на *Окно* и отметила галочками нужные закладки:
|
||
|
||

|
||
|
||
|
||
## 4 Установка пути к папкам.
|
||
В главном меню нажала "Правка"+"Установить путь" и добавила пути к папкам ТЕМА1 и ТЕМА2:
|
||
|
||

|
||
|
||
|
||
## 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 Создание матриц и векторов.
|
||
Из-за постоянных предупреждений воспользовалаь командой:
|
||
```matlab
|
||
>> warning('off','all')
|
||
```
|
||
|
||
Создание матрицы со случайными, нормально распределенными элементами:
|
||
```matlab
|
||
>>A = randn(4, 6)
|
||
A =
|
||
-0.4321 1.1729 0.3541 1.5892 0.4530 0.2627
|
||
-1.7323 -0.9788 -0.4989 1.6601 0.7393 0.2212
|
||
0.7755 -1.0102 0.2191 -0.2449 0.3585 0.2069
|
||
1.1003 0.5001 -0.2061 -2.0966 1.6449 -1.0841
|
||
```
|
||
|
||
Создание матрицы со случайными, равномерно распределенными элементами в диапазоне от 0 до 1:
|
||
```matlab
|
||
>> B = rand(4, 7)
|
||
|
||
B =
|
||
|
||
0.373271 0.844238 0.711102 0.953539 0.219433 0.675295 0.340843
|
||
0.551754 0.356287 0.959939 0.909888 0.696343 0.642488 0.113784
|
||
0.084194 0.670743 0.578236 0.339736 0.720005 0.705143 0.967447
|
||
0.128237 0.483455 0.044278 0.968504 0.127631 0.899501 0.195310
|
||
```
|
||
|
||
Создание вектора с целыми числами от 4 до 27:
|
||
```matlab
|
||
>> C = 4 : 27
|
||
|
||
C =
|
||
|
||
Columns 1 through 18:
|
||
|
||
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
||
|
||
Columns 19 through 24:
|
||
|
||
22 23 24 25 26 27
|
||
```
|
||
|
||
Создание символьного вектора:
|
||
```matlab
|
||
>> H = 'This is a symbols vector'
|
||
|
||
H = This is a symbols vector
|
||
```
|
||
|
||
Создание вектора-строки с двумя комплексными элементами:
|
||
```matlab
|
||
>> L = [-2+23.1j, 3-5.6j]
|
||
|
||
L =
|
||
|
||
-2.0000 + 23.1000i 3.0000 - 5.6000i
|
||
```
|
||
|
||
|
||
## 7 Операции с матрицами.
|
||
|
||
Преобразование вектора С в матрицу с 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
|
||
```
|
||
|
||
Матричное перемножение матриц А и В с транспонированием матрицы В:
|
||
```matlab
|
||
>> E=B'*A
|
||
|
||
E =
|
||
|
||
-0.910683 -0.123162 -0.151095 1.219653 0.818133 0.098530
|
||
0.070163 0.205633 0.168516 0.755192 1.681531 -0.084697
|
||
-1.472997 -0.667516 -0.109583 2.489169 1.311971 0.470816
|
||
-0.659044 0.368938 -0.241469 0.912002 2.819514 -0.527820
|
||
-0.602273 -1.087712 -0.138278 1.060741 1.082316 0.222294
|
||
0.131844 -0.099328 -0.112298 0.081094 2.513291 -0.509676
|
||
0.620796 -0.591256 0.235644 0.084094 0.906638 0.103147
|
||
```
|
||
|
||
Создание матрицы путем горизонтального соединения матриц А и В:
|
||
```matlab
|
||
>> F=[A,B]
|
||
|
||
F =
|
||
|
||
Columns 1 through 8:
|
||
|
||
-0.432076 1.172859 0.354099 1.589192 0.452953 0.262740 0.373271 0.844238
|
||
-1.732292 -0.978753 -0.498940 1.660060 0.739344 0.221213 0.551754 0.356287
|
||
0.775511 -1.010206 0.219102 -0.244935 0.358536 0.206887 0.084194 0.670743
|
||
1.100337 0.500081 -0.206064 -2.096644 1.644885 -1.084062 0.128237 0.483455
|
||
|
||
Columns 9 through 13:
|
||
|
||
0.711102 0.953539 0.219433 0.675295 0.340843
|
||
0.959939 0.909888 0.696343 0.642488 0.113784
|
||
0.578236 0.339736 0.720005 0.705143 0.967447
|
||
0.044278 0.968504 0.127631 0.899501 0.195310
|
||
```
|
||
|
||
Поэлементное перемножение матриц:
|
||
```matlab
|
||
>> G=A.*D
|
||
|
||
G =
|
||
|
||
-1.7283 9.3829 4.2492 25.4271 9.0591 6.3058
|
||
-8.6615 -8.8088 -6.4862 28.2210 15.5262 5.5303
|
||
4.6531 -10.1021 3.0674 -4.4088 7.8878 5.3791
|
||
7.7024 5.5009 -3.0910 -39.8362 37.8323 -29.2697
|
||
```
|
||
|
||
Поэлементное деление матрицы G на 4.5:
|
||
```matlab
|
||
>> M=G./4.5
|
||
|
||
M =
|
||
|
||
-0.3841 2.0851 0.9443 5.6505 2.0131 1.4013
|
||
-1.9248 -1.9575 -1.4414 6.2713 3.4503 1.2290
|
||
1.0340 -2.2449 0.6816 -0.9797 1.7528 1.1953
|
||
1.7116 1.2224 -0.6869 -8.8525 8.4072 -6.5044
|
||
```
|
||
|
||
Поэлементное возведение в степень матрицы 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.6110 0.9188 0.8433 0.9765 0.4684 0.8218 0.5838
|
||
0.7428 0.5969 0.9798 0.9539 0.8345 0.8016 0.3373
|
||
0.2902 0.8190 0.7604 0.5829 0.8485 0.8397 0.9836
|
||
0.3581 0.6953 0.2104 0.9841 0.3573 0.9484 0.4419
|
||
```
|
||
|
||
Логарифм элемента:
|
||
```matlab
|
||
>> B2=log(B)
|
||
|
||
B2 =
|
||
|
||
-0.985451 -0.169321 -0.340939 -0.047575 -1.516709 -0.392605 -1.076334
|
||
-0.594652 -1.032019 -0.040885 -0.094434 -0.361912 -0.442407 -2.173455
|
||
-2.474630 -0.399370 -0.547774 -1.079588 -0.328497 -0.349355 -0.033094
|
||
-2.053872 -0.726797 -3.117275 -0.032002 -2.058612 -0.105915 -1.633166
|
||
```
|
||
|
||
Синус элемента:
|
||
```matlab
|
||
>> B3=sin(B)
|
||
|
||
B3 =
|
||
|
||
0.364663 0.747465 0.652669 0.815469 0.217676 0.625128 0.334282
|
||
0.524182 0.348797 0.819157 0.789435 0.641417 0.599189 0.113538
|
||
0.084095 0.621568 0.546547 0.333238 0.659388 0.648143 0.823440
|
||
0.127886 0.464841 0.044263 0.824039 0.127285 0.783016 0.194071
|
||
```
|
||
|
||
Другие операции с матрицами.
|
||
|
||
Длина матрицы:
|
||
```matlab
|
||
k=length(B1)
|
||
|
||
k = 7
|
||
```
|
||
|
||
Размер матрицы:
|
||
```matlab
|
||
>> nm=size(B1)
|
||
|
||
nm =
|
||
|
||
4 7
|
||
```
|
||
|
||
Количество элементов в матрице:
|
||
```matlab
|
||
>> elem=numel(B1)
|
||
|
||
elem = 28
|
||
```
|
||
|
||
Матрица из 20 элементов со значениями от 11.5 до 34.1:
|
||
```matlab
|
||
>> NN=linspace(11.5,34.1,20)
|
||
|
||
NN =
|
||
|
||
Columns 1 through 10:
|
||
|
||
11.500 12.689 13.879 15.068 16.258 17.447 18.637 19.826 21.016 22.205
|
||
|
||
Columns 11 through 20:
|
||
|
||
23.395 24.584 25.774 26.963 28.153 29.342 30.532 31.721 32.911 34.100
|
||
```
|
||
|
||
Единичная матрица 2х4:
|
||
```matlab
|
||
>> FF=ones(2,4)
|
||
|
||
FF =
|
||
|
||
1 1 1 1
|
||
1 1 1 1
|
||
```
|
||
|
||
Нулевая квадратная матрица 5х5:
|
||
```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.6110
|
||
0.5969
|
||
0.7604
|
||
0.9841
|
||
```
|
||
|
||
Расположение элементов по главной диагонали:
|
||
```matlab
|
||
>> DB=diag(B1D)
|
||
|
||
DB =
|
||
|
||
Diagonal Matrix
|
||
|
||
0.6110 0 0 0
|
||
0 0.5969 0 0
|
||
0 0 0.7604 0
|
||
0 0 0 0.9841
|
||
```
|
||
|
||
Сортировка значений матрицы по возрастанию:
|
||
```matlab
|
||
>> BS1=sort(B)
|
||
|
||
BS1 =
|
||
|
||
0.084194 0.356287 0.044278 0.339736 0.127631 0.642488 0.113784
|
||
0.128237 0.483455 0.578236 0.909888 0.219433 0.675295 0.195310
|
||
0.373271 0.670743 0.711102 0.953539 0.696343 0.705143 0.340843
|
||
0.551754 0.844238 0.959939 0.968504 0.720005 0.899501 0.967447
|
||
```
|
||
|
||
Сортировка строк матрицы по возрастанию по определенному столбцу():
|
||
```matlab
|
||
>> BS2=sortrows(B,2)
|
||
|
||
BS2 =
|
||
|
||
0.551754 0.356287 0.959939 0.909888 0.696343 0.642488 0.113784
|
||
0.128237 0.483455 0.044278 0.968504 0.127631 0.899501 0.195310
|
||
0.084194 0.670743 0.578236 0.339736 0.720005 0.705143 0.967447
|
||
0.373271 0.844238 0.711102 0.953539 0.219433 0.675295 0.340843
|
||
```
|
||
|
||
Суммирование строк по колонне:
|
||
```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 = 225.78
|
||
```
|
||
|
||
Обратная матрицы для произведения матрицы А на её же транспонированную матрицу:
|
||
```matlab
|
||
>> dinv=inv(A*A')
|
||
|
||
dinv =
|
||
|
||
0.396533 -0.082236 0.287856 0.039764
|
||
-0.082236 0.209140 -0.061884 0.086233
|
||
0.287856 -0.061884 0.777679 -0.040941
|
||
0.039764 0.086233 -0.040941 0.161014
|
||
```
|
||
|
||
|
||
## 9 Индексация элементов матрицы:
|
||
|
||
Извлечение элемента, находящегося на пересечении 3 строки и 5 столбца матрицы:
|
||
```matlab
|
||
>> D1=D(3,5)
|
||
|
||
D1 = 22
|
||
```
|
||
|
||
Извлечение части 3 строки матрицы D с 4 столбца и до конца:
|
||
```matlab
|
||
>> D2=D(3,4:end)
|
||
|
||
D2 =
|
||
|
||
18 22 26
|
||
```
|
||
|
||
Извлечение подматрицы из матрицы D строки со 2 по 3 и столбцы с 3 по 5:
|
||
```matlab
|
||
>> D3=D(2:3,3:5)
|
||
|
||
D3 =
|
||
|
||
13 17 21
|
||
14 18 22
|
||
```
|
||
|
||
Извлечение элементов с 16 по 20 включительно из матрицы D как вектор:
|
||
```matlab
|
||
>> D4=D(16:20)
|
||
|
||
D4 =
|
||
|
||
19 20 21 22 23
|
||
```
|
||
|
||
Извлечение подматрицы из D: строки 3–4 и столбцы 1, 3 и 6:
|
||
```matlab
|
||
>> D5=D(3:4,[1,3,6])
|
||
|
||
D5 =
|
||
|
||
6 14 26
|
||
7 15 27
|
||
```
|
||
|
||
|
||
## 10 Изучение некоторых управляющих конструкций.
|
||
|
||
Цикл по перечислению (С 1 по 6 столбец):
|
||
```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
|
||
```
|
||
|
||
Цикл пока выполняется условие (он продолжается, пока значение первого элемента матрицы D меньше 22):
|
||
```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 (проверка условия, что значение в матрице D в 3 строке и 5 столбце >=20)
|
||
```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)
|
||
```
|
||

|
||
|
||
Функция графика "Пирог":
|
||
```matlab
|
||
>> pie(C)
|
||
```
|
||

|
||
|
||
Функция столбчатой диаграммы:
|
||
```matlab
|
||
>> bar(B)
|
||
```
|
||

|
||
|
||
|
||
## 12 Изучение работы с текстовым редактором среды.
|
||
Создала файл и занесла в него команды из 9 пункта:
|
||
|
||

|
||
```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),перезапустила IDE, загрузила область переменных:
|
||
|
||

|
||
|