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

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

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

5 Изучение работы со справкой.
"Справка"+"Документация"+"На диске" -> GNU Octave Manual -> Function Index
Команда help Пример работы команды:
>> 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 Создание матриц и векторов.
Из-за постоянных предупреждений воспользовалаь командой:
>> warning('off','all')
Создание матрицы со случайными, нормально распределенными элементами:
>>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:
>> 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:
>> 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
Создание символьного вектора:
>> 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 Операции с матрицами.
Преобразование вектора С в матрицу с 6 столбцами:
>> 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 =
-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
Создание матрицы путем горизонтального соединения матриц А и В:
>> 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
Поэлементное перемножение матриц:
>> 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:
>> 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:
>> 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 по заданному условию:
>> 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 Математические операции с матрицами.
Корень элемента:
>> 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
Логарифм элемента:
>> 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
Синус элемента:
>> 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
Другие операции с матрицами.
Длина матрицы:
k=length(B1)
k = 7
Размер матрицы:
>> nm=size(B1)
nm =
4 7
Количество элементов в матрице:
>> elem=numel(B1)
elem = 28
Матрица из 20 элементов со значениями от 11.5 до 34.1:
>> 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:
>> FF=ones(2,4)
FF =
1 1 1 1
1 1 1 1
Нулевая квадратная матрица 5х5:
>> 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.6110
0.5969
0.7604
0.9841
Расположение элементов по главной диагонали:
>> 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
Сортировка значений матрицы по возрастанию:
>> 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
Сортировка строк матрицы по возрастанию по определенному столбцу():
>> 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
Суммирование строк по колонне:
>> 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 = 225.78
Обратная матрицы для произведения матрицы А на её же транспонированную матрицу:
>> 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 столбца матрицы:
>> D1=D(3,5)
D1 = 22
Извлечение части 3 строки матрицы D с 4 столбца и до конца:
>> D2=D(3,4:end)
D2 =
18 22 26
Извлечение подматрицы из матрицы D строки со 2 по 3 и столбцы с 3 по 5:
>> D3=D(2:3,3:5)
D3 =
13 17 21
14 18 22
Извлечение элементов с 16 по 20 включительно из матрицы D как вектор:
>> D4=D(16:20)
D4 =
19 20 21 22 23
Извлечение подматрицы из D: строки 3–4 и столбцы 1, 3 и 6:
>> D5=D(3:4,[1,3,6])
D5 =
6 14 26
7 15 27
10 Изучение некоторых управляющих конструкций.
Цикл по перечислению (С 1 по 6 столбец):
>> 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):
>> 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)
>> if (D(3,5)>=20)
printf('D(3,5)>=20')
else
printf('D(3,5)<20')
endif
D(3,5)>=20
11 Использование графических функций.
Функция построения графиков:
>> plot(D(1,:),B([2,4],1:6))
Функция расчета и построения гистограммы:
>> hist(A(:),6)
Функция графика "Пирог":
>> pie(C)
Функция столбчатой диаграммы:
>> bar(B)
12 Изучение работы с текстовым редактором среды.
Создала файл и занесла в него команды из 9 пункта:

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




