From 8cb5e955d4f191001a8b3ffee0ff7069fbc5a9a3 Mon Sep 17 00:00:00 2001 From: IvanovArtAl Date: Thu, 12 Feb 2026 01:06:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D1=87=D0=B5=D1=82=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report.md => ТЕМА1/report.md | 0 ТЕМА1/отчет.txt | 568 +++++++++++++++++++++++++++++++ 2 files changed, 568 insertions(+) rename report.md => ТЕМА1/report.md (100%) create mode 100644 ТЕМА1/отчет.txt diff --git a/report.md b/ТЕМА1/report.md similarity index 100% rename from report.md rename to ТЕМА1/report.md diff --git a/ТЕМА1/отчет.txt b/ТЕМА1/отчет.txt new file mode 100644 index 0000000..8a93d0e --- /dev/null +++ b/ТЕМА1/отчет.txt @@ -0,0 +1,568 @@ +# Отчет + +Иванов Артём, А-03-24 + +## 1 Изучение размещения компонентов графического интерфейса и главного меню среды GNU Octave + +## 2 Настройка текущего каталога + +Нажал на окно рядом с *Текущая папка:* и установил путь к папке ТЕМА1: + +![Скриншот выбора текущей папки](assets/figure.png) + +## 3 Настройка командного окна + +Нажал на "Окно" и отметил галочками нужные закладки: + +![Скриншот выбора](assets/figure1.png) + +## 4 Установка путей + +В главном меню нажал "Правка"+"Установить путь" и добавил пути к папкам ТЕМА1 и ТЕМА2: + +![Скриншот путей](assets/figure2.png) + +## 5 Изучение работы со справкой + +- "Справка"+"Документация"+"На диске" -> GNU Octave Manual -> Function Index +- Команда help. Пример работы команды: +```matlab +>> 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, + + + 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 ' 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/ +``` + +- Для дополнительно подгружанемых пакетов "Справка"+"Пакеты Octave" + +## 6 Создание матриц и векторов + +- Создал матрицу A со случайными, нормально распределенными элементами, с 4 строками и 6 столбцами: +```matlab +>> A=randn(4,6) +A = + + -8.8652e-04 -1.0071e+00 2.6421e+00 3.8636e-01 -7.3431e-01 -1.5501e+00 + -4.9683e-01 1.0487e+00 1.1767e+00 1.4078e+00 5.8390e-01 -6.8323e-01 + -1.3548e+00 6.6523e-01 -1.3285e-01 6.6288e-01 4.4201e-01 -1.9994e-01 + -8.7788e-01 7.6938e-01 -5.0126e-01 5.2538e-01 -2.4666e-01 2.1566e-01 +``` + +- Создал матрицу B 4 на 7 со случайными элементами, равномерно распределенными в диапазоне от 0 до 1: +```matlab +>> B=rand(4,7) +B = + + 0.7970 0.1010 0.7218 0.3126 0.4221 0.6251 0.7380 + 0.7449 0.2626 0.9508 0.9491 0.7637 0.5634 0.2042 + 0.1526 0.4856 0.1360 0.3862 0.6602 0.1868 0.8259 + 0.3730 0.9549 0.7369 0.6055 0.6335 0.9687 0.4128 +``` + +- Создал вектор 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.905003 0.366963 2.775023 1.653730 -0.174901 -1.694415 + -1.626754 1.231418 0.032795 1.232379 0.058296 -0.227191 + -1.304200 0.927556 2.638398 2.094717 -0.096503 -1.636723 + -1.526554 1.403175 1.587962 2.031026 0.345964 -1.079674 + -1.830334 1.302351 1.608475 2.008629 0.271495 -1.171358 + -1.383938 0.830841 1.804013 1.667391 -0.286397 -1.182251 + -1.583318 0.337804 1.873541 1.336895 -0.159519 -1.359576 +``` + +- Создание матрицы путём "горизонтального" соединения матриц A и B: +```matlab +>> F=[A,B] +F = + + Columns 1 through 10: + + -8.8652e-04 -1.0071e+00 2.6421e+00 3.8636e-01 -7.3431e-01 -1.5501e+00 7.9703e-01 1.0102e-01 7.2181e-01 3.1263e-01 + -4.9683e-01 1.0487e+00 1.1767e+00 1.4078e+00 5.8390e-01 -6.8323e-01 7.4488e-01 2.6265e-01 9.5078e-01 9.4908e-01 + -1.3548e+00 6.6523e-01 -1.3285e-01 6.6288e-01 4.4201e-01 -1.9994e-01 1.5260e-01 4.8561e-01 1.3603e-01 3.8621e-01 + -8.7788e-01 7.6938e-01 -5.0126e-01 5.2538e-01 -2.4666e-01 2.1566e-01 3.7305e-01 9.5489e-01 7.3688e-01 6.0547e-01 + + Columns 11 through 13: + + 4.2208e-01 6.2507e-01 7.3803e-01 + 7.6366e-01 5.6337e-01 2.0416e-01 + 6.6017e-01 1.8683e-01 8.2585e-01 + 6.3355e-01 9.6867e-01 4.1280e-01 +``` + +- Поэлементное перемножение матриц А и D: +```matlab +>> G=A.*D +G = + + -3.5461e-03 -8.0569e+00 3.1705e+01 6.1818e+00 -1.4686e+01 -3.7201e+01 + -2.4841e+00 9.4381e+00 1.5297e+01 2.3933e+01 1.2262e+01 -1.7081e+01 + -8.1286e+00 6.6523e+00 -1.8598e+00 1.1932e+01 9.7243e+00 -5.1984e+00 + -6.1452e+00 8.4632e+00 -7.5188e+00 9.9823e+00 -5.6732e+00 5.8229e+00 +``` + +- Поэлементное деление элементов матриц G на 4.5: +```matlab +>> M=G./4.5 +M = + + -7.8802e-04 -1.7904e+00 7.0455e+00 1.3737e+00 -3.2636e+00 -8.2670e+00 + -5.5203e-01 2.0973e+00 3.3993e+00 5.3184e+00 2.7249e+00 -3.7957e+00 + -1.8064e+00 1.4783e+00 -4.1330e-01 2.6515e+00 2.1610e+00 -1.1552e+00 + -1.3656e+00 1.8807e+00 -1.6709e+00 2.2183e+00 -1.2607e+00 1.2940e+00 +``` + +- Поэлементное возведение в степень элементов матрицы 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 +``` + +- Cоздание логической матрицы, совпадающей по размерам с 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.8928 0.3178 0.8496 0.5591 0.6497 0.7906 0.8591 + 0.8631 0.5125 0.9751 0.9742 0.8739 0.7506 0.4518 + 0.3906 0.6969 0.3688 0.6215 0.8125 0.4322 0.9088 + 0.6108 0.9772 0.8584 0.7781 0.7960 0.9842 0.6425 +``` +- Натуральный логарифм: +```matlab +>> B2=log(B) +B2 = + + -0.226865 -2.292455 -0.325995 -1.162730 -0.862562 -0.469892 -0.303766 + -0.294538 -1.336935 -0.050472 -0.052261 -0.269637 -0.573819 -1.588831 + -1.879965 -0.722345 -1.994860 -0.951385 -0.415259 -1.677569 -0.191340 + -0.986048 -0.046156 -0.305325 -0.501751 -0.456419 -0.031827 -0.884786 +``` +- Синус: +```matlab +>> B3=sin(B) +B3 = + + 0.7153 0.1008 0.6607 0.3076 0.4097 0.5852 0.6728 + 0.6779 0.2596 0.8139 0.8129 0.6916 0.5340 0.2027 + 0.1520 0.4667 0.1356 0.3767 0.6133 0.1857 0.7351 + 0.3645 0.8163 0.6720 0.5691 0.5920 0.8241 0.4012 +``` +**Операции с матрицами:** +- Длина матрицы(количество столбцов): +```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.8928 + 0.5125 + 0.3688 + 0.7781 +``` +- Диагональная матрица из вектора: +```matlab +>> DB=diag(B1D) +DB = + +Diagonal Matrix + + 0.8928 0 0 0 + 0 0.5125 0 0 + 0 0 0.3688 0 + 0 0 0 0.7781 +``` +- Сортировка в столбцах: +```matlab +>> BS1=sort(B) +BS1 = + + 0.1526 0.1010 0.1360 0.3126 0.4221 0.1868 0.2042 + 0.3730 0.2626 0.7218 0.3862 0.6335 0.5634 0.4128 + 0.7449 0.4856 0.7369 0.6055 0.6602 0.6251 0.7380 + 0.7970 0.9549 0.9508 0.9491 0.7637 0.9687 0.8259 +``` +- Сортировка по 2 стобцу: +```matlab +>> BS2=sortrows(B,2) +BS2 = + + 0.7970 0.1010 0.7218 0.3126 0.4221 0.6251 0.7380 + 0.7449 0.2626 0.9508 0.9491 0.7637 0.5634 0.2042 + 0.1526 0.4856 0.1360 0.3862 0.6602 0.1868 0.8259 + 0.3730 0.9549 0.7369 0.6055 0.6335 0.9687 0.4128 +``` +- Сумма каждого столбца: +```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 = 30.417 +``` +- Обратная матрица: +```matlab +>> dinv=inv(A*A') +dinv = + + 0.195493 -0.178920 0.018720 0.280781 + -0.178920 0.512852 -0.507281 0.032452 + 0.018720 -0.507281 1.652127 -1.325540 + 0.280781 0.032452 -1.325540 2.074159 +``` + +## 9 Работа с индексацией элементов матриц +- Элемент 3 строки 5 столбца: +```matlab +>> D1=D(3,5) +D1 = 22 +``` +- Часть строки 3 строки с 4 по последний столбцы: +```matlab +>> D2=D(3,4:end) +D2 = + + 18 22 26 +``` +- Кусок матрицы: +```matlab +>> D3=D(2:3,3:5) +D3 = + + 13 17 21 + 14 18 22 +``` +- Элементы с 16 по 20 место(по столбцам сверху вниз): +```matlab +>> D4=D(16:20) +D4 = + + 19 20 21 22 23 +``` +- Смешанная матрица( 3,4 строки; 1,3,6 столбцы): +```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 +>> graphics_toolkit('gnuplot') +>> plot(D(1,:),B([2,4],1:6)) +``` +![Скриншот графиков](assets/figure3.png) +- Функция расчета и построения гистограммы: +```matlab +>> graphics_toolkit('gnuplot') +>> hist(A(:),6) +``` +![Скриншот гистограммы](assets/figure4.png) +- Функция pie(): +```matlab +>> graphics_toolkit('gnuplot') +>> pie(C) +``` +![Скриншот функции](assets/figure5.png) +- Функция bar(): +```matlab +>> graphics_toolkit('gnuplot') +>> bar(C) +``` +![Скриншот функции](assets/figure6.png) +## 12 Работа с текстовым редактором +Нажал «Файл»+ «Создать»+«Создать сценарий», в окно редактора перенёс команды из пункта 9, сохранил в файле Prog1.m. + +![Скриншот окна редактора](assets/figure7.png) + +Вывод программы: +```matlab +>> 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. Вышел и запустил систему заново. Текущей папкой выбрал ТЕМА1. Выбрал «Файл» + «Загрузить область переменных» и восстановил содержимое из файла Perem. + +![Скриншот области переменных](assets/figure8.png) + + +