1
0
ответвлено от main/it-labs
Files
it-labs/TEMA1/report.md

12 KiB
Исходник Ответственный История

Отчет по теме 1

Долганов Всеволод, А-01-24

1 Знакомство с интерфейсом

Запустил среду GNU Octave и визуально изучил расположение окон и главного меню.

2 Настройка рабочей директории

В окне «Текущая папка» установил путь к созданной директории TEMA1: Скриншот выбора текущей папки

3 Настройка отображаемых окон

Через меню «Окно» включил отображение командного окна, журнала команд, диспетчера файлов, области переменных и редактора. Скриншот выбранных отображений

4 Установка путей к рабочим папкам

Через меню «Правка» -> «Установить путь» добавил пути к папкам TEMA1 и TEMA2. Убедился, что файлы отображаются в «Диспетчере файлов». Скриншот диспетчера файлов

5 Использование встроенной справки

Изучил документацию через главное меню и проверил работу оперативной справки через командное окно:

>> 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/

6 Создание базовых матриц и векторов

>> A = randn(4,6)
A =

  -0.159822   0.268463   0.602706   0.712673   0.192046   0.199132
   0.564368   0.064164   1.269051   0.629784  -0.246480   1.184103
   1.444376  -0.867363   0.998737   0.456648   0.876060   0.226459
   2.148732   2.285075   0.440337   0.502833   1.951507  -0.719981

>> B = rand(4,7)
B =

   0.448006   0.444495   0.898416   0.106126   0.317332   0.488563   0.949919
   0.829320   0.203251   0.670602   0.290699   0.086682   0.700506   0.486505
   0.568398   0.636211   0.581117   0.403838   0.227579   0.656758   0.975163
   0.941064   0.868487   0.350656   0.828308   0.075934   0.838079   0.302820


>> C = 4:27
C =

 Columns 1 through 23:

    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26

 Column 24:

   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 Матричные вычисления и преобразования

>> 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 =

   3.239515   1.830881   2.304531   1.574329   2.216070   0.522383
   2.828742   1.565104   1.543670   1.172011   2.287484  -0.152035
   1.827697   0.581458   2.127299   1.504298   1.200649   0.852098
   2.510204   1.589615   1.200937   0.859622   1.918964  -0.139563
   0.490076   0.066876   0.561990   0.422850   0.387136   0.162697
   3.066672   1.521535   2.208404   1.510674   2.132042   0.472088
   2.181931   0.132381   2.297197   1.580948   1.507771   0.768041


>> F = [A,B]
F =

 Columns 1 through 10:

  -0.159822   0.268463   0.602706   0.712673   0.192046   0.199132   0.448006   0.444495   0.898416   0.106126
   0.564368   0.064164   1.269051   0.629784  -0.246480   1.184103   0.829320   0.203251   0.670602   0.290699
   1.444376  -0.867363   0.998737   0.456648   0.876060   0.226459   0.568398   0.636211   0.581117   0.403838
   2.148732   2.285075   0.440337   0.502833   1.951507  -0.719981   0.941064   0.868487   0.350656   0.828308

 Columns 11 through 13:

   0.317332   0.488563   0.949919
   0.086682   0.700506   0.486505
   0.227579   0.656758   0.975163
   0.075934   0.838079   0.302820


>> G = A.*D
G =

   -0.6393    2.1477    7.2325   11.4028    3.8409    4.7792
    2.8218    0.5775   16.4977   10.7063   -5.1761   29.6026
    8.6663   -8.6736   13.9823    8.2197   19.2733    5.8879
   15.0411   25.1358    6.6051    9.5538   44.8847  -19.4395


>> M = G./4.5
M =

  -0.1421   0.4773   1.6072   2.5339   0.8535   1.0620
   0.6271   0.1283   3.6661   2.3792  -1.1502   6.5783
   1.9258  -1.9275   3.1072   1.8266   4.2830   1.3084
   3.3425   5.5857   1.4678   2.1231   9.9744  -4.3199

>> 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 Применение стандартных математических функций

>> B1 = sqrt(B); B2 = log(B); B3 = sin(B);
B1 =

  0.6693   0.6667   0.9478   0.3258   0.5633   0.6990   0.9746
  0.9107   0.4508   0.8189   0.5392   0.2944   0.8370   0.6975
  0.7539   0.7976   0.7623   0.6355   0.4771   0.8104   0.9875
  0.9701   0.9319   0.5922   0.9101   0.2756   0.9155   0.5503

B2 =

 -0.802949  -0.810817  -0.107122  -2.243128  -1.147808  -0.716287  -0.051378
 -0.187149  -1.593316  -0.399580  -1.235468  -2.445513  -0.355952  -0.720508
 -0.564934  -0.452224  -0.542804  -0.906742  -1.480257  -0.420440  -0.025151
 -0.060744  -0.141003  -1.047948  -0.188371  -2.577887  -0.176643  -1.194617

B3 =

  0.433169   0.430002   0.782341   0.105927   0.312033   0.469357   0.813369
  0.737472   0.201854   0.621457   0.286622   0.086573   0.644605   0.467539
  0.538282   0.594152   0.548958   0.392950   0.225620   0.610552   0.827793
  0.808185   0.763352   0.343514   0.736788   0.075861   0.743360   0.298213


>> 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 13:

  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

Columns 14 through 20:

  26.963   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.6693
  0.4508
  0.7623
  0.9101


>> DB=diag(B1D)
DB =

Diagonal Matrix

  0.6693        0        0        0
       0   0.4508        0        0
       0        0   0.7623        0
       0        0        0   0.9101

>> BS1=sort(B)
BS1 =

  0.448006   0.203251   0.350656   0.106126   0.075934   0.488563   0.302820
  0.568398   0.444495   0.581117   0.290699   0.086682   0.656758   0.486505
  0.829320   0.636211   0.670602   0.403838   0.227579   0.700506   0.949919
  0.941064   0.868487   0.898416   0.828308   0.317332   0.838079   0.975163

>> BS2=sortrows(B,2)
BS2 =

  0.829320   0.203251   0.670602   0.290699   0.086682   0.700506   0.486505
  0.448006   0.444495   0.898416   0.106126   0.317332   0.488563   0.949919
  0.568398   0.636211   0.581117   0.403838   0.227579   0.656758   0.975163
  0.941064   0.868487   0.350656   0.828308   0.075934   0.838079   0.302820

>> 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 = 77.948
>> dinv=inv(A*A')
dinv =

  1.997545  -0.798335   0.216077  -0.153936
 -0.798335   0.703918  -0.289148   0.084105
  0.216077  -0.289148   0.374075  -0.084248
 -0.153936   0.084105  -0.084248   0.094346

>>

9 Индексация элементов матриц

>> 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 Управляющие конструкции: циклы и условия

Цикл по перечислению:

>> 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:

>> 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))

Результат работы команды plot()

>> hist(A(:),6)

Результат работы команды hist()

>> pie(D(1,:))

Результат работы команды pie()

>> bar(DS1)

Результат работы команды bar()

12 Изучение работы с текстовым редактором среды

>> 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
>> 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, перезапустил среду, установил рабочую директорию и успешно загрузил переменные обратно через главное меню

14 Завершили сеанс работы со средой.