Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Z9411_Моделирование_Лаб1_КафкаРС

.pdf
Скачиваний:
9
Добавлен:
24.10.2023
Размер:
1.39 Mб
Скачать

Упражнение №8. Вычислить неопределенный интеграл: ln .

Выполним вызов команды int() с одним входным параметром - функцией,

помещенной под знак неопределенного интеграла.

На рисунке 36 представлен результат осуществления указанной операции.

Рисунок 36 – Значение неопределенного интеграла заданной функции

Упражнение №9. Решить дифференциальное уравнение и построить график функции y(x) на отрезке [1, 10]: 2 ′′ + 3 + = 1 , (1) = 1,(1) = 0.

Для решения дифференциальных уравнений в MATLAB зарезервирована функция dsolve(), которая имеет следующий формат обращения: y=dsolve('Dy(x)' , 'НУ') , где Dу(х) - выражение; НУ - начальные условия.

Для вычисления заданного дифференциального уравнения, запишем в командное окно инструкции, приведенные на рисунке 37.

Рисунок 37 – Поиск решения дифференциального уравнения

Построим график выражения, полученного в ходе решения уравнения. Для этого добавим следующий программный код:

ezplot(Df);

axis([1 10 -7 1]);

Внешний вид полученного графика представлен на рисунке 38.

21

Рисунок 38 – Построение графика функции Df

Упражнение №10. Решить дифференциальное уравнение:

= exp( + ) + exp( − ).

Воспользуемся функцией dsolve(). Реализуем её вызов с одним входным параметром - выражением, описывающим поведение зависимости y’(x,y).

На рисунке 39 представлен результат применения команды dsolve().

Рисунок 39 – Решение дифференциального уравнения

22

Заключение

В процессе осуществления заданий лабораторной работы были приобретены теоретические знания и практические навыки использования среды MATLAB для выполнения математических вычислений различного уровня сложности. В ходе изучения программного функционала были получены умения по реализации большого количества операций со скалярными и векторными переменными, матрицами, а также символьными характеристиками. Было произведено ознакомление со справочными материалами, расположенными в разделе Ресурсы. Также получены навыки работы с инструментами и командами, позволяющими взаимодействовать с графическими объектами.

По завершении выполнения предложенной лабораторной работы был сформулирован ряд обобщений.

Все вычисления в программе производятся в командном окне в режиме диалога. Пользователь вводит инструкции или запускает на выполнение файлы с текстами на языке MATLAB. Интерпретатор обрабатывает введенное и выдает результаты: числовые или строковые данные, предупреждения, сообщения об ошибках.

Чтобы сохранить в памяти компьютера содержимое рабочего пространства системы MATLAB, нужно выполнить команду меню File → Save

Workspace As. По умолчанию файл получит расширение mat, поэтому такие файлы принято называть МАТ-файлами.

Система MATLAB представляет на машинном уровне все действительные числа, заданные мантиссой и показателем степени. Этот основной тип данных носит название double. Для изменения формата вывода числовых значений используется команда format.

В программе MATLAB присутствуют все основные элементарные функции для выполнения вычислений с вещественными числами. Полный

список имеющихся в системе элементарных математических функций можно

23

получить по команде help elfun.

Помимо арифметических операций над операндами типа double

выполняются еще действия отношения и логические действия. Операции отношения сравнивают между собой два операнда по величине. К логическим операциям относятся инструкции: И, ИЛИ, НЕ.

Для создания одномерного массива можно использовать операцию конкатенации, которая обозначается с помощью квадратных скобок [ ]. Для доступа к индивидуальному элементу массива нужно применить операцию индексации, для чего после имени элемента указать в круглых скобках его индекс.

Для создания двумерного массива используется операция конкатенации.

Элементы массива набираются один за другим согласно их расположению в строках, в качестве разделителя строк используется точка с запятой. Двумерные массивы можно задать также с помощью операции индексации, прописывая по отдельности его элементы. Ещё один способ формирования массива нужного размера - вызов функции ones(m,n) или zeros(m,n).

Операции сложения и вычитания матриц обозначаются стандартными знаками + и -. Для поэлементного перемножения и поэлементного деления массивов одинаковых размеров, а также поэлементного возведения в степень,

применяются операции, обозначаемые комбинациями двух символов: .* , ./, и .^.

Использование пар символов объясняется тем, что знаками * и / обозначены специальные операции линейной алгебры над векторами и матрицами. Кроме операции ./, называемой операцией правого поэлементного деления, есть еще операция левого поэлементного деления .\.

Для построения двумерных графиков в системе MATLAB предусмотрен ряд функций. Среди них, например, plot(), ezplot(), loglog() и другие.

Если нужно несколько графиков провести в одной координатной плоскости, то перед повторным вызовом графической функции plot() нужно выполнить команду hold on, которая предназначена для удержания текущего

24

графического окна Если нужно одновременно визуализировать несколько графиков так,

чтобы они не мешали друг другу, то это можно сделать двумя способами.

Первым решением является построение их в разных графических окнах с помощью применения команды figure, которая создает новое графическое окно.

Вторым решением показа нескольких графиков без конфликта диапазонов осей координат является использование функции subplot(). Эта функция позволяет разбить область вывода графической информации на несколько подобластей.

Построить график функции в полярных координатах можно с помощью графической функции polar().

Всреде MATLAB присутствуют дополнительные возможности,

связанные с управлением внешним видом графиков – задание цвета и стиля линий, а также размещение различных надписей в пределах графического окна.

Стили задаются в виде набора трех символьных маркеров, заключенных в одиночные кавычки: первый маркер задаёт тип линии, второй – цвет кривой,

третий – вид отмечаемых на графике «точек». Для проставления различных надписей на полученном рисунке применяются функции xlabеl, ylabеl, title и text.

Каждая точка в пространстве характеризуется тремя координатами. Набор точек, принадлежащих некоторой линии в пространстве, нужно задать в виде трех векторов. После чего их можно подать на вход функции plot3(), которая осуществит проектирование соответствующей трехмерной линии на плоскость.

Эту же функцию plot3() можно применить для изображения поверхностей в пространстве, если провести множество линий путём применения дополнительной команды meshgrid().

Чтобы решить систему линейных уравнений вида A*Y=B, где A –

заданная квадратная матрица размером NxN, B – заданный вектор-столбец длины N, достаточно применить операцию \ и вычислить выражение A\B.

Операция \ называется левым делением матриц.

25

Решение уравнения F(x)=0, или нахождение нулей функции,

осуществляется с помощью функции: fzero(name, x0). В качестве первого аргумента ей передается имя функции, задающей исходное уравнение, вторым аргументом служит начальное приближение к корню. Чтобы управлять погрешностью вычисления, нужно осуществить вызов функции fzero() с тремя аргументами: fzero(name, x0, tol), где параметр tol задает требуемую величину погрешности.

Если требуется найти корень функции, отличной от стандартной

(встроенной в MATLAB) и тем самым не имеющей в рамках системы MATLAB

фиксированного имени, то нужно приписать некоторое имя выражению,

вычисляющему функцию, тем самым задав пользовательскую функцию.

В системе MATLAB для определения корней многочлена существует специальная функция roots(), которой в качестве аргумента передается массив коэффициентов выражения.

Для вычисления интегралов методом трапеций в среде MATLAB

предусмотрена функция trapz(). Также разработаны методы интегрирования более высоких порядков точности, которые реализуются функциями quad() и quad8(). Двойные интегралы вычисляются с помощью специальной команды dblquad().

Для решения систем обыкновенных дифференциальных уравнений в

MATLAB имеются функции: ode23, ode45, odell3, odel5s, ode23s, ode23t и ode23tb. Инструкции с суффиксом s предназначены для решения так называемых систем жестких дифференциальных уравнений. Для решения дифференциальных уравнений также зарезервирована функция dsolve, которая имеет следующие форматы обращения: y = dsolve('Dy(x)'), где Dу(х) –

уравнение, у - возвращаемые решения; y = dsolve ('Dy (x)', 'НУ'), где Dу(х) –

уравнение, НУ - начальные условия. Функция dsolve() предназначена также для решения систем дифференциальных уравнений. В этом случае она имеет следующий формат обращения: [f,g] = dsolve('Df(x), Dg(x)', 'НУ'), где Df(x),

26

Dg(x) - система уравнений, НУ - начальные условия.

Под символьным объектом в системе MATLAB понимается переменная,

предназначенная для символьных преобразований. Объявление такой переменной осуществляется командами sym либо syms.

Одной из наиболее часто используемых функцией в символьных вычислениях является команда simplify(), предназначенная для упрощения выражений.

Для выполнения операции дифференцирования используется функция diff(), формат обращения к которой имеет следующий вид: diff(y(x)), где у(х) -

явно заданная функция.

MATLAB - высокоуровневая система программирования, позволяющая резко сократить затраты труда при проверке алгоритмов и проведении прикидочных расчетов. Возможность проведения больших расчетов в

MATLAB определяется в основном теми затратами времени, на которые может пойти пользователь: здесь приходится выбирать между легкостью и наглядностью программирования и представления результатов, с одной стороны, и затратами времени на счет - с другой. Система очень удобна для освоения и апробации численных методов. Именно поэтому она рекомендуется как одна из основных программ для изучения специалистам естественно-

научных направленностей.

27