# Отчет по теме 1 Чернюк Виктория А-03-24 ## 1 Изучение среды GNU Octave ## 2 Настройка текущего каталога ![путь к папке ТЕМА1](figure0.png) ## 3 Отмечаем галочками нужные параметры ## 4 Добавляем пути к файлам ![списки файлов](figure1.png) ## 5 Изучение работы системной помощи ![GNU Octave Manual](figure2.png) Используем *help randn* для получения справок по функциям ``` 'randn' is a built-in function from the file libinterp/corefcn/rand.cc ``` ```matlab -- 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'. ``` ![Пакеты Octave](figure3.png) ## 6 Создание матриц и векторов *матрица А со случайными, нормально распределенными элементами, с 4 строками и 6 столбцам:* ```matlab >> A=randn(4,6) A = -1.566040 1.022528 -1.082336 1.060574 -1.166946 -0.040025 0.729186 -0.929840 -1.381007 1.147912 0.360731 -1.612832 -0.481197 -0.439834 1.347738 -0.398764 -0.024576 0.636071 -0.607566 0.069257 0.057204 -1.166324 -1.470205 -1.034399 ``` *матрица В 4х7 со случайными элементами, равномерно распределенными в диапазоне от 0 до 1:* ```matlab >> B=rand(4,7) B = 0.344256 0.014810 0.424571 0.078178 0.264139 0.781169 0.804127 0.992425 0.465993 0.834274 0.087590 0.053326 0.580783 0.025481 0.196239 0.896082 0.504587 0.599906 0.332032 0.145209 0.696585 0.581111 0.135927 0.371084 0.824356 0.089142 0.096275 0.830373 ``` *вектор С с целыми числами от 4 до 27:* ```matlab >> 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 ``` *символьный вектор Н:* ```matlab >> H='This is a symbols vector' H = This is a symbols vector ``` *вектор-строка L с 2 комплексными элементами:* ```matlab >> L=[-2+23.1j, 3-5.6j] L = -2.0000 + 23.1000i 3.0000 - 5.6000i ``` ![Область переменных](figure4.png) ![Журнал выполненных команд](figure5.png) ## 7 Выполнение операций с матрицами *преобразование матрицы С в матрицу с 6 столбцами:* ```matlab 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 ``` *матричное перемножение В и А с транспонированием матрицы В:* ```matlab E=B'*A E = -0.262949 -0.616852 -1.445425 0.748308 -0.902905 -2.090672 -0.197173 -0.802869 0.555891 0.034765 -0.071047 -0.322792 -0.524818 -0.537841 -0.910387 0.773946 -0.752473 -1.425434 -0.848085 -0.208271 0.650095 -1.017228 -1.286349 -0.615527 -0.588700 0.080639 0.093061 0.104981 -0.428217 0.022409 -0.928210 0.201532 -1.446341 1.324983 -0.847188 -0.975195 -2.080416 0.549677 0.080791 -0.364171 -2.167119 -0.489140 ``` *создание матрицы путем «горизонтального» соединения матриц А и В:* ```matlab F=[A,B] F = Columns 1 through 10: -1.566040 1.022528 -1.082336 1.060574 -1.166946 -0.040025 0.344256 0.014810 0.424571 0.078178 0.729186 -0.929840 -1.381007 1.147912 0.360731 -1.612832 0.992425 0.465993 0.834274 0.087590 -0.481197 -0.439834 1.347738 -0.398764 -0.024576 0.636071 0.196239 0.896082 0.504587 0.599906 -0.607566 0.069257 0.057204 -1.166324 -1.470205 -1.034399 0.581111 0.135927 0.371084 0.824356 Columns 11 through 13: 0.264139 0.781169 0.804127 0.053326 0.580783 0.025481 0.332032 0.145209 0.696585 0.089142 0.096275 0.830373 ``` *поэлементное перемножение матриц A и D:* ```matlab G=A.*D G = -6.2642 8.1802 -12.9880 16.9692 -23.3389 -0.9606 3.6459 -8.3686 -17.9531 19.5145 7.5754 -40.3208 -2.8872 -4.3983 18.8683 -7.1778 -0.5407 16.5379 -4.2530 0.7618 0.8581 -22.1602 -33.8147 -27.9288 ``` *поэлементное деление элементов матрицы G на 4.5:* ```matlab M = G./4.5 M = -1.3920 1.8178 -2.8862 3.7709 -5.1864 -0.2135 0.8102 -1.8597 -3.9896 4.3366 1.6834 -8.9602 -0.6416 -0.9774 4.1930 -1.5951 -0.1202 3.6751 -0.9451 0.1693 0.1907 -4.9245 -7.5144 -6.2064 ``` *поэлементное возведение в степень элементов матрицы D:* ```matlab 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 и с элементами по заданному условию:* ```matlab 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 ``` *превращение матрицы в вектор-столбец:* ```matlab 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 Изучение некоторых стандартных функций *математические функции:* ```matlab B1=sqrt(B) B1 = 0.5867 0.1217 0.6516 0.2796 0.5139 0.8838 0.8967 0.9962 0.6826 0.9134 0.2960 0.2309 0.7621 0.1596 0.4430 0.9466 0.7103 0.7745 0.5762 0.3811 0.8346 0.7623 0.3687 0.6092 0.9079 0.2986 0.3103 0.9112 ``` ```matlab >> B2=log(B) B2 = -1.0664e+00 -4.2125e+00 -8.5668e-01 -2.5488e+00 -1.3313e+00 -2.4696e-01 -2.1800e-01 -7.6041e-03 -7.6358e-01 -1.8119e-01 -2.4351e+00 -2.9313e+00 -5.4338e-01 -3.6698e+00 -1.6284e+00 -1.0972e-01 -6.8401e-01 -5.1098e-01 -1.1025e+00 -1.9296e+00 -3.6156e-01 -5.4281e-01 -1.9956e+00 -9.9133e-01 -1.9315e-01 -2.4175e+00 -2.3405e+00 -1.8588e-01 ``` ```matlab >> B3=sin(B) B3 = 0.337496 0.014809 0.411930 0.078099 0.261078 0.704110 0.720225 0.837354 0.449310 0.740809 0.087478 0.053301 0.548679 0.025478 0.194982 0.780886 0.483446 0.564565 0.325965 0.144699 0.641602 0.548953 0.135509 0.362626 0.734111 0.089024 0.096126 0.738183 ``` *операции с матрицами:* ```matlab k=length(B1) k = 7 ``` ```matlab >> nm=size(B1) nm = 4 7 ``` ```matlab >> elem=numel(B1) elem = 28 ``` ```matlab >> 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 ``` ```matlab >> FF=ones(2,4) FF = 1 1 1 1 1 1 1 1 ``` ```matlab 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 ``` ```matlab >> B1D=diag(B1) B1D = 0.5867 0.6826 0.7103 0.9079 ``` ```matlab >> DB=diag(B1D) DB = Diagonal Matrix 0.5867 0 0 0 0 0.6826 0 0 0 0 0.7103 0 0 0 0 0.9079 ``` ```matlab >> BS1=sort(B) BS1 = 0.196239 0.014810 0.371084 0.078178 0.053326 0.096275 0.025481 0.344256 0.135927 0.424571 0.087590 0.089142 0.145209 0.696585 0.581111 0.465993 0.504587 0.599906 0.264139 0.580783 0.804127 0.992425 0.896082 0.834274 0.824356 0.332032 0.781169 0.830373 ``` ```matlab >> BS2=sortrows(B,2) BS2 = 0.344256 0.014810 0.424571 0.078178 0.264139 0.781169 0.804127 0.581111 0.135927 0.371084 0.824356 0.089142 0.096275 0.830373 0.992425 0.465993 0.834274 0.087590 0.053326 0.580783 0.025481 0.196239 0.896082 0.504587 0.599906 0.332032 0.145209 0.696585 ``` ```matlab >> DS1=sum(D) DS1 = 22 38 54 70 86 102 ``` ```matlab DS2=sum(D,2) DS2 = 84 90 96 102 ``` ```matlab >> DP1=prod(D) DP1 = 840 7920 32760 93024 212520 421200 ``` ```matlab >> dt=det(A*A') dt = 246.59 ``` ```matlab >> dinv=inv(A*A') dinv = 0.192611 0.079161 0.204485 -0.052344 0.079161 0.325357 0.425809 0.012347 0.204485 0.425809 0.973266 -0.029157 -0.052344 0.012347 -0.029157 0.219869 ``` ## 9 Изучение работы с индексацией элементов матриц ```matlab D1=D(3,5) D1 = 22 ``` ```matlab >> D2=D(3,4:end) D2 = 18 22 26 ``` ```matlab >> D3=D(2:3,3:5) D3 = 13 17 21 14 18 22 ``` ```matlab >> D4=D(16:20) D4 = 19 20 21 22 23 ``` ```matlab >> D5=D(3:4,[1,3,6]) D5 = 6 14 26 7 15 27 ``` ## 10 Изучение некоторых управляющих конструкций для использования в программах на m-языке *цикл по перечислению:* ```matlab 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 ``` *цикл пока выполняется условие:* ```matlab 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:* ```matlab if (D(3,5)>=20) printf('D(3,5)>=20') else printf('D(3,5)<20') endif D(3,5)>=20 ``` ## 11 Использование графических функций Функция построения графиков: ```matlab >> graphics_toolkit('gnuplot') plot(D(1,:),B([2,4],1:6)) ![результат выполнения функции](plot.png) Функция расчета и построения гистограммы: ```matlab hist(A(:),6) ``` ``` ## 12 *Программа Progl* ```matlab 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; ```