1
0
ответвлено от main/it-labs
Files
it-labs/ТЕМА1/report.md
2026-02-26 01:08:39 +03:00

12 KiB

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

Тупиков Александр, А-02-24

п. 1-5: Подготовка к выполнению работы.

п. 6: Инициализация переменных.

Создана матрица А со случайными, нормально распределенными элементами, с 4 строками и 6 столбцами:

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

   0.1543   0.1981  -0.9889  -2.0098  -0.5292  -1.2796
  -0.4077   0.9624  -0.7798   0.2491  -0.2644  -0.5665
  -1.0301  -0.2595   0.1252   0.1622  -2.2617   1.9039
  -0.8845   1.2288  -0.6661   0.2524  -0.4709  -0.7461

Создана матрица В 4х7 со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:

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

   0.028926   0.404821   0.044407   0.500323   0.660809   0.682371   0.772185
   0.842736   0.157225   0.928548   0.166813   0.222252   0.054478   0.026078
   0.231970   0.309345   0.949115   0.465862   0.833514   0.253321   0.211782
   0.440755   0.861170   0.511663   0.483208   0.310441   0.113771   0.513986

Создан вектор С с целыми числами от 4 до 27:

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

>> H='This is a symbol vector'
H = This is a symbol vector

Создан вектор комплексных значений L:

>> L=[-2+23.1j, 3-5.6j]
L =

   -2.0000 + 23.1000i    3.0000 -  5.6000i

п. 7: Выполнение операций с матрицами.

Преобразование вектора C в матрицу с 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

Выполнение транспонирования матрицы B и матричного перемножения B^T и A:

>> E=B'*A
E =

  -0.9680   1.2982  -0.9503   0.3006  -0.9703  -0.4017
  -1.0820   1.2094  -1.0578  -0.5070  -1.3610  -0.6606
  -1.8020   1.2848  -0.9899   0.4250  -2.6566   0.8424
  -0.8981   0.7325  -0.8883  -0.7665  -1.5900  -0.2083
  -1.1218   0.5100  -0.9292  -1.0593  -2.4398   0.3839
  -0.2785   0.2617  -0.7613  -1.2881  -1.0020  -0.5066
  -0.5643   0.7547  -1.0998  -1.3814  -1.1366  -0.9831

Создана матрица путем "горизонтального" присоединения A к B:

>> F=[A,B]
F =

 Columns 1 through 6:

   0.154320   0.198115  -0.988889  -2.009849  -0.529192  -1.279576
  -0.407734   0.962364  -0.779752   0.249061  -0.264398  -0.566537
  -1.030096  -0.259486   0.125220   0.162152  -2.261683   1.903928
  -0.884516   1.228802  -0.666064   0.252356  -0.470909  -0.746113

 Columns 7 through 12:

   0.028926   0.404821   0.044407   0.500323   0.660809   0.682371
   0.842736   0.157225   0.928548   0.166813   0.222252   0.054478
   0.231970   0.309345   0.949115   0.465862   0.833514   0.253321
   0.440755   0.861170   0.511663   0.483208   0.310441   0.113771

 Column 13:

   0.772185
   0.026078
   0.211782
   0.513986

Выполнено поэлементное перемножение матриц A и B:

>> G=A.*D
G =

    0.6173    1.5849  -11.8667  -32.1576  -10.5838  -30.7098
   -2.0387    8.6613  -10.1368    4.2340   -5.5524  -14.1634
   -6.1806   -2.5949    1.7531    2.9187  -49.7570   49.5021
   -6.1916   13.5168   -9.9910    4.7948  -10.8309  -20.1451

Выполнено поэлементное деление матрицы на константу 4.5:

>> M=G./4.5
M =

    0.1372    0.3522   -2.6370   -7.1461   -2.3520   -6.8244
   -0.4530    1.9247   -2.2526    0.9409   -1.2339   -3.1474
   -1.3735   -0.5766    0.3896    0.6486  -11.0571   11.0005
   -1.3759    3.0037   -2.2202    1.0655   -2.4069   -4.4767

Выполнено поэлементное возведение матрицы в степень 3:

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

Создана bool-матрица по условию D \geq 20:

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

Создана матрица-столбец на основе матрицы D:

>> 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: Стандартные математическое функции и операции с матрицами.

Выполнено поэлементное взятие квадратного корня из матрицы B:

>> B1=sqrt(B)
B1 =

   0.1701   0.6363   0.2107   0.7073   0.8129   0.8261   0.8787
   0.9180   0.3965   0.9636   0.4084   0.4714   0.2334   0.1615
   0.4816   0.5562   0.9742   0.6825   0.9130   0.5033   0.4602
   0.6639   0.9280   0.7153   0.6951   0.5572   0.3373   0.7169

Выполнено поэлементное извлечение логарифма из матрицы B:

>> B2=log(B)
B2 =

  -3.543023  -0.904309  -3.114356  -0.692502  -0.414290  -0.382181  -0.258532
  -0.171101  -1.850077  -0.074133  -1.790884  -1.503943  -2.909956  -3.646659
  -1.461145  -1.173299  -0.052225  -0.763867  -0.182105  -1.373098  -1.552195
  -0.819265  -0.149463  -0.670090  -0.727309  -1.169760  -2.173569  -0.665560

Выполнено поэлементное взятие синуса из матрицы B:

>> B3=sin(B)
B3 =

   0.028922   0.393855   0.044392   0.479709   0.613756   0.630635   0.697702
   0.746467   0.156578   0.800751   0.166040   0.220427   0.054451   0.026075
   0.229896   0.304434   0.812901   0.449193   0.740298   0.250620   0.210203
   0.426623   0.758606   0.489628   0.464622   0.305479   0.113526   0.491652

Найдена длина (количество столбцов) матрицы B1:

>> k=length(B1)
k = 7

Найдена размерность матрицы B1:

>> nm=size(B1)
nm =

   4   7

Найдено количество элементов матрицы B1:

>> elem=numel(B1)
elem = 28

Создан линейно разделенный массив чисел NN от 11.5 до 34.1 с 20 элементами:

>> NN=linspace(11.5,34.1,20)
NN =

 Columns 1 through 19:

   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   29.342   30.532   31.721   32.911

 Column 20:

   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

Извлечена главная диагональ из матрицы B1:

>> B1D=diag(B1)
B1D =

   0.1701
   0.3965
   0.9742
   0.6951

Создана диагональная матрица DB на основе диагонали B1D:

>> DB=diag(B1D)
DB =

Diagonal Matrix

   0.1701        0        0        0
        0   0.3965        0        0
        0        0   0.9742        0
        0        0        0   0.6951

Выполнена сортировка по столбцам матрицы B:

>> BS1=sort(B)
BS1 =

   0.028926   0.157225   0.044407   0.166813   0.222252   0.054478   0.026078
   0.231970   0.309345   0.511663   0.465862   0.310441   0.113771   0.211782
   0.440755   0.404821   0.928548   0.483208   0.660809   0.253321   0.513986
   0.842736   0.861170   0.949115   0.500323   0.833514   0.682371   0.772185

Выполнена построчная сортировка первых двух строк матрицы B:

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

   0.842736   0.157225   0.928548   0.166813   0.222252   0.054478   0.026078
   0.231970   0.309345   0.949115   0.465862   0.833514   0.253321   0.211782
   0.028926   0.404821   0.044407   0.500323   0.660809   0.682371   0.772185
   0.440755   0.861170   0.511663   0.483208   0.310441   0.113771   0.513986

Найдены суммы столбцов матрицы D:

>> DS1=sum(D)
DS1 =

    22    38    54    70    86   102

Найдены суммы по 2 измерению (строкам) матрицы D:

>> DS2=sum(D,2)
DS2 =

    84
    90
    96
   102

Найдено произведение по столбцам матрицы D:

>> DP1=prod(D)
DP1 =

      840     7920    32760    93024   212520   421200

Найден определитель матрицы A*A^T:

>> dt=det(A*A')
dt = 27.581

Найдена обратная матрица для A*A^T:

>> dinv=inv(A*A')
dinv =

   1.6754e-01  -8.7758e-02   2.8943e-02  -4.4913e-03
  -8.7758e-02   7.7118e+00   3.8188e-01  -5.7451e+00
   2.8943e-02   3.8188e-01   1.2657e-01  -3.0394e-01
  -4.4913e-03  -5.7451e+00  -3.0394e-01   4.5891e+00

п. 9: Работа с индексами элементов матриц.

Найден элемент матрицы D по индексу 3, 5:

>> D1=D(3,5)
D1 = 22

Взята 3 строка матрицы D от 4 до последнего столбца:

>> D2=D(3,4:end)
D2 =

   18   22   26

Взята прямоугольная матрица от 2, 3 до 3, 5 элемента матрицы D:

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

Взята прямоугольная матрица, состоящая из 3-4 строк и 1, 3, 6 столбцов матрицы D:

>> D5=D(3:4,[1,3,6])
D5 =

    6   14   26
    7   15   27

п. 10: Циклы и условные операторы.

Цикл for с итератором i (6 итераций) и выводом Dsum:

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

Цикл while c условием D(i)<22 и выводом Dsum2:

>> 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: Вывод графиков.

График значений для D, B:

plot(D(1,:),B([2,4],1:6))

график 1

Гистограмма для A:

hist(A(:),6)

график 2

Круговой график для C:

pie(C)

график 3

Столбчатая диаграмма для A:

bar(A)

график 4

п.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

п. 12-13: Сохранение скриптов и рабочего пространства.