# Отчет по теме 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](11.1.png) Гистограмма для A: ``` hist(A(:),6) ``` ![график 2](11.2.png) Круговой график для C: ``` pie(C) ``` ![график 3](11.3.png) Столбчатая диаграмма для A: ``` bar(A) ``` ![график 4](11.4.png) ## п.12: Создание и использование скриптов. ![скрин](screenshot12.png) ``` >> 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: Сохранение скриптов и рабочего пространства. ![](screenshot13-14.png)