Files
it-labs/ТЕМА1/report.md
2026-02-12 09:34:08 +03:00

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

скриншот конечный