# Отчет по теме 1 Дмитриев Денис, А-03-24 ## 1 Изучение среды GNU Octave ## 2 Настройка текущего католога Нажал на окно рядом с *Текущая папка:* и установил путь к папке TEMA1: ![Скриншот выбора текущей папки](screens/1.png) ## 3 Работа с предложением *Окно* Отметил галочками предложения, которые указаны в методическом задании: ![Скриншот выбора нужных для работы окон](screens/2.png) ## 4 Отображение списка файлов, размещенных в текущей папке Выбрал в главном меню предложения "Правка" + "Установить путь" и добавил в появившийся список пути к папкам TEMA1 и TEMA2: ![Скриншот отображения списка файлов](screens/3.png) ## 5 Изучил работу с системной помощи 3 способа взаимодействия с системой помощи: В главном меню выберите предложения «Справка» + « Документация» + « На диске». Ввод в командную строку help randn. Также можно использовать функции из дополнительных пакетов. Список пакетов можно получить выбрав в меню «Справка» + «Пакеты Octave». ## 6 Создание матрицы Создал матрицу A с размерами 4x6 и случайными, нормально распределенными элементами: ```matlab >> A = randn(4, 6) A = 0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919 0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679 -1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653 -1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315 >> ``` Создал матрицу B с размерами 4x7, со случайными элементами, равномерно распределенными в диапазоне от 0 до 1: ```matlab >> B = rand(4, 7) B = 0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635 0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873 0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852 0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516 >> ``` Создал вектор C с целыми числами от 4 до 27: ```matlab >> C = 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: ```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 >> ``` ## 7 Выполнение следующих операций Преобразовал матрицу C в матрицу с 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 >> ``` Сделал матричное перемножение B и A с транспонированием матрицы B: ```matlab >> E = B'*A E = 0.236331 1.240351 2.103116 0.738438 -0.110577 -1.343705 -0.845742 0.453508 2.254787 0.065083 1.413113 -1.669059 -0.745924 1.091683 1.003080 2.344160 0.702988 -1.569616 0.338176 1.202100 1.180775 1.235283 -0.477663 -0.938971 -0.050181 2.280788 1.965852 3.639985 -0.214397 -2.111676 -0.443727 0.329697 2.381378 -1.465343 1.027634 -1.494497 -0.233701 0.940419 3.317734 -0.141089 0.878150 -1.859314 >> ``` Создал матрицы путем горизонтального соединения матриц A и B: ```matlab >> F=[A,B] F = Columns 1 through 12: 0.771762 1.105541 0.730124 2.126274 -1.003519 -0.173919 0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.444238 0.910021 1.645450 -1.097477 -0.395713 -1.081679 0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 -1.191087 -1.175833 1.129577 -1.678835 2.090537 -0.393653 0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 -1.157870 1.019957 0.037269 3.236657 0.895129 -1.517315 0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 Column 13: 0.892635 0.963873 0.949852 0.189516 >> ``` Поэлементарно перемножил матрицы A и D: ```matlab >> G = A.*D G = 3.0870 8.8443 8.7615 34.0204 -20.0704 -4.1740 2.2212 8.1902 21.3908 -18.6571 -8.3100 -27.0420 -7.1465 -11.7583 15.8141 -30.2190 45.9918 -10.2350 -8.1051 11.2195 0.5590 61.4965 20.5880 -40.9675 >> ``` Поэлементарно поделил элементы матрицы G на 4.5: ```matlab >> M =G./4.5 M = 0.6860 1.9654 1.9470 7.5601 -4.4601 -0.9276 0.4936 1.8200 4.7535 -4.1460 -1.8467 -6.0093 -1.5881 -2.6130 3.5142 -6.7153 10.2204 -2.2744 -1.8011 2.4932 0.1242 13.6659 4.5751 -9.1039 >> ``` Поэлементарно возвел в степень элементы матрицы 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.8337 0.6278 0.5690 0.7132 0.9852 0.3434 0.9448 0.8570 0.7921 0.5376 0.6912 0.8021 0.9661 0.9818 0.5799 0.9024 0.4833 0.1159 0.3872 0.8173 0.9746 0.4416 0.6295 0.8548 0.4652 0.8848 0.3644 0.4353 >> ``` Логарифм: ```matlab >> B2 = log(B) B2 = -0.363869 -0.930950 -1.127662 -0.675940 -0.029831 -2.137750 -0.113577 -0.308535 -0.466089 -1.241120 -0.738654 -0.441012 -0.068974 -0.036796 -1.089944 -0.205465 -1.454382 -4.309246 -1.897627 -0.403475 -0.051449 -1.634482 -0.925662 -0.313757 -1.530371 -0.244742 -2.019182 -1.663281 >> ``` Синус: ```matlab >> B3 = sin(B) B3 = 0.640372 0.384050 0.318161 0.487023 0.825230 0.117647 0.778728 0.670233 0.587084 0.285052 0.459788 0.599907 0.803619 0.821407 0.329936 0.727224 0.231427 0.013443 0.149363 0.619413 0.813330 0.193819 0.385979 0.667389 0.214769 0.705343 0.132374 0.188384 >> ``` - Операции с матрицами: ```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 15: 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 Columns 16 through 20: 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.8337 0.7921 0.4833 0.4652 >> ``` ```matlab >> DB = diag(B1D) DB = Diagonal Matrix 0.8337 0 0 0 0 0.7921 0 0 0 0 0.4833 0 0 0 0 0.4652 >> ``` ```matlab >> BS1=sort(B) BS1 = 0.195053 0.394179 0.233545 0.013444 0.149924 0.117920 0.189516 0.336235 0.396269 0.289060 0.216455 0.643385 0.132764 0.892635 0.694982 0.627452 0.323789 0.477757 0.782906 0.667995 0.949852 0.734522 0.814269 0.730697 0.508678 0.970610 0.933351 0.963873 >> ``` ```matlab >> BS2=sortrows(B,2) BS2 = 0.694982 0.394179 0.323789 0.508678 0.970610 0.117920 0.892635 0.195053 0.396269 0.730697 0.216455 0.782906 0.132764 0.189516 0.734522 0.627452 0.289060 0.477757 0.643385 0.933351 0.963873 0.336235 0.814269 0.233545 0.013444 0.149924 0.667995 0.949852 >> ``` ```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 = 1255.5 >> ``` ```matlab ฀>> dinv = inv(A*A') dinv = 0.8194 -0.3173 0.4800 -0.2872 -0.3173 0.2928 -0.2075 0.1266 0.4800 -0.2075 0.3753 -0.1545 -0.2872 0.1266 -0.1545 0.1674 >> ``` ## 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 Изучение некоторых управляющих конструкций Цикл по перечислению: ```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 plot(D(1,:),B([2,4],1:6)) ``` ![Скриншот графика](screens/4.png) Функция расчета и построения гистограммы: ```matlab hist(A(:),6) ``` ![Скриншот графика](screens/5.png) Функция pie: ```matlab pie(C) ``` ![Скриншот графика](screens/6.png) Функция bar: ```matlab bar(C) ``` ![Скриншот графика](screens/7.PNG) ## 12 Работа с текстовым редактором Создал сценарий и перенес все выполненные команды из п.9: ![Скриншот кода](screens/8.PNG) Убедился в работоспособности программы с помощью кнопки F5 и ввода имени файла в командной строке. ## Сохранение и восстановление переменных Сохранил содержимое области переменных в файле Perem, завершил работу со средой и снова запустил среду. С помощью комманд восстановил содержимое из области файла Perem. Убедился в том, что в журнале выполненных команд сохранены команды из предыдущего сеанса работы со средой.