Простые вычисления в MATLAB. Простейшие вычисления в matlab Функция linsolve для решения систем линейных уравнений

Министерство образования Республики Беларусь

Учреждение образования

· contour 3(X , Y , Z ) – строит контурные линии для поверхности, полученные при расслоении трехмерной фигуры рядом секущих плоскостей, расположенных параллельно опорной плоскости фигуры.

В приведенном ниже примере показаны возможности применения описанных команд для построения графика поверхности Z = sin(X) cos(X).

>> =meshgrid(-3:0.1:3,-3:0.1:3); Z=sin(X).*cos(X);

>> subplot(3,2,1), plot3(X, Y,Z) % Рисунок 4.3 (а)

>> subplot(3,2,2), mesh(X, Y,Z) % Рисунок 4.3 (б)

>> subplot(3,2,3), surf(X, Y,Z) % Рисунок 4.3 (в)

>> subplot(3,2,4), surfc(X, Y,Z) % Рисунок 4.3 (г)

>> subplot(3,2,5),meshz(X, Y,Z) % Рисунок 4.3 (д)

>> subplot(3,2,6),contour3(X, Y,Z) % Рисунок 4.3 (е)


4.3. Форматирование графиков

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

Таблица 4.2 - Форматирование графиков

Действие

Средства графического интерфейса

Переход в режим редактирования.

Щелкнуть по кнопке Edit Plot в панели инструментов графического окна.

Форматирование линий и маркеров опорных точек графиков.

В режиме редактирования дважды щелкнуть по линии графика левой клавишей мыши. В появившемся окне Property Editor– Line установить все необходимые параметры линии (толщину, стиль, цвет и т. д.).

plot(X, Y,S), plot3(X, Y,Z, S)

(Описание команд приводится в п.4.1 и п.4.2)

Форматирование осей графиков.

В режиме редактирования дважды щелкнуть по оси графика. В появившемся окне Property Editor– Axes установить все необходимые параметры осей.

Заголовок графика и метки осей можно также с помощью команд Insert Title , Insert Xlabel, Insert Ylabel главного меню графического окна.

axes – управляет свойствами осей.

grid - включает и отключает координатную сетку.

xlabel(S), ylabel(S), zlabel(S) – устанавливает надписи возле осей. Здесь S – строковая константа или переменная.

title(S) – выводит заголовок графика

Нанесение надписей прямо на график.

Щелкнуть по кнопке Insert Text ,зафиксировать место надписи щелчком мыши и ввести нужный текст.

text(X, Y, S) – добавляет в двумерный график текст, заданный строкой S, так что начало текста расположено в точке с координатами (X, Y).

text(X, Y, Z, S) - добавляет текст в трехмерный график.

Нанесение линий и линий со стрелками прямо на график

Щелкнуть по одной из кнопок Insert Arraw или Insert Line . Установить указатель мыши в нужное место графика и при нажатой левой клавише мыши нарисовать линию.

Построение легенды

Insert, а затем команду legend.

legend(S1, S2, S3,…) – добавляет к текущему графику легенду с пояснениями в виде строк, указанных в списке параметров.

Вывод шкалы цветов

В главном меню графического окна выбрать команду Insert, а затем команду Colorbar.

colorbar(‘ vert’), colorbar(‘ horiz’) – выводит вертикальную или горизонтальную шкалу цветов.

Вращение графика

Щелкнуть по кнопке Rotate 3 D и вращать график с помощью мыши (может применяться также для двумерных графиков).

rotate3 d – задает поворот трехмерной фигуры.

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

Получение краткой справки (help ) в командном окне MATLAB производится с помощью команд:

>> help - вывод сведений о разделах (topics) MATLAB с возможностью

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

>> help - вывод сведений об именах (названиях) функций, входящих в раздел.

>> help <имя функции> - вывод справочных сведений по функции.

>> helpwin - вывод окна справки, в котором двойным щелчком мыши можно открыть справочные сведения по нужному разделу или функции.

>> lookfor - вывод справочных сведений по ключевому слову.

>> help demos - вывод списка демонстрационных примеров.

>> hthelp- открывает интерактивное окноMATLAB help .

>> help symbolic– выводит сведения об инструментарии символьной математики (symbolicmathtoolbox)MATLAB.

>> help signal processing toolbox – выводит сведения о функциях пакета Signal Processing Toolbox.Чаще других для справок используется команда help <имя функции>.

Пример .

>> help abs

ABS Absolute value.

ABS(X) is the absolute value of the elements of X. When

X is complex, ABS(X) is the complex modulus (magnitude) of

the elements of X.

See also SIGN, ANGLE, UNWRAP.

Overloaded methods

help iddata/abs.m

Большинство функций имеют несколько вариантов синтаксиса. Имена функций в сообщениях справочной системы выводятся прописными символами, но при вводе имен функций должны использоваться только строчные символы . Вывод справки по необходимой функции сопровождается списком связанных (сопутствующих) функций. Для получения более подробных сведений по нужной функции с примерами вычислений служит командаdoc <имя функции>.

Главным средством для получения развернутой справочной информации служит браузер справочной системы Help browser , который содержит документацию по всем инсталлированным продуктамMATLAB. Доступ к документации осуществляется через меню HELP. На начальном этапе работы для знакомства с пакетом особенно полезен и необходим раздел MATLAB справочной системы.

Из меню Help c помощью команды Demos можно получить доступ к демонстрационным примерам MATLAB. Эти примеры очень разнообразны и полезны для целей обучения и создания приложений в MATLAB. Доступ к демонстрационным примерам можно получить также с помощью команды demo из командной строки.

Доступ к справочным сведениям в Internet: >>webhttp://www . mathworks . com - загружаетWEB- сайт фирмыMathWorksInc. - производителяMATLAB.

  1. Простые вычисления

MATLAB имеет следующие базовые арифметические операции:

      Сложение (a+b , 15+23),

      Вычитание (a-b , 17-3),

      Умножение (a*b , 0.18*6.12),

      Деление (a/b , 92.4/15),

      Возведение в степень (a ^ b , 7.4^4).

Примеры

Name Size Bytes Class Attributes

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

Для очистки рабочего пространства Workspace, т.е. удаления из него переменных, можно применить команду clear. Команда clc используется для очистки рабочего окна Command Window без очистки рабочей области.

Пакет MATLAB поддерживает также математические функции общего назначения, такие как извлечение квадратного корня sqrt (x ), вычисление прямых и обратных тригонометрических функций, экспоненциальных функций и др. Перечень всех этих функций с возможностью перехода к любой из них можно получить, введя в командную строку help elfun . Все элементарные функцииMATLABявляются функциями, аргументами которых могут быть массивы, т.е. в пакете реализованавекторизация вычислений.

Пример

>> v1 = [ 2 4 sqrt(10)]

2.0000 4.0000 3.1623

0.4161 -0.6536 -0.9998

MATLAB вычисляет выражения слева направо в обычном порядке приоритета операции возведения в степень над операциями умножения и деления и последних – над операциями сложения и вычитания. Для изменения порядка вычислений используются скобки.

Пример

>> 7*3+5-12/4

>> 7*(3+5-12/4)

Относительная точность выполнения арифметических операций MATLABсоставляет около 16 десятичных цифр в диапазоне чисел от 10 -308 до 10 308 . По умолчанию вMATLABустанавливается формат выводаshort , позволяющий вывести не более 5 значащих цифр числа. Такой формат вывода не всегда достаточен.

Команды установки форматов вывода

>> format short- короткое представление в фиксированном формате (5 знаков),

>> format short e– устанавливает формат научной (экспоненциальной) нотации с 5 десятичными разрядами,

>> format long– формат длинного представления с фиксированной точкой с 15 десятичными разрядами,

>> format long e– формат научной нотации с 15 десятичными разрядами,

>> format bank- денежный формат вывода с двумя десятичными разрядами справа от десятичной точки,

>> format rat- формат вывода в виде рациональной дроби.

Формат вывода может быть также установлен командой меню Preferences .

Следует иметь ввиду, что при вводе чисел в экспоненциальной форме, например, 15.8e-5промежуточные пробелы не допускаются.

Имена переменных MATLABдолжны начинаться с буквы, максимальная длина имени - 31 символ. Имена не должны совпадать с именами функций и процедур и системных переменных. Имена чувствительны к регистру, например,var отличается отVar .

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

<имя переменной> = <выражение>;

При этом оператор “;” подавляет эхо-вывод результатов вычисления (присваивания) на экран.

Все объявленные переменные сохраняются в рабочем пространстве (Workspace ) текущей сессииMATLABи доступны для вычислений в данной сессии, кроме случаев, когда переменные специально удаляются из рабочего пространства командойclear .

Примеры

Символьная переменная >> string="hello"

Действительные скаляры (числа)

>> y=5.2*x+15

Для сохранения переменных в файле текущего каталога (по умолчанию папка work) можно использовать команду save

>> save myfile x y

Без указания имен переменных команда save сохраняет все переменные рабочего пространства.

Переменные можно удалять из рабочего пространства (Workspace )MATLABкомандойclear

>> clear x y

Undefined function or variable "x".

Undefined function or variable "y".

При необходимости можно загрузить переменные из файла в рабочее пространство командой load

>> load myfile

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

>> sqrt(-3)

Для обозначения мнимой единицы в MATLABзарезервированы переменныеi иj :

3.0000 + 4.0000i

>>y= 2*(1+4*j)

2.0000 + 8.0000i

Специальные функции вычислений с комплексным аргументом:

>> abs(x)% получение модуля числа

>> angle(x)% аргумент (фаза) числа в радианах

>> conj(x)% комплексно сопряженное число

>> imag(x)% мнимая часть числа

>> real(x)% действительная часть числа

Имена предопределенных системных переменных MATLAB нельзя использовать в качестве имен пользовательских переменных. Основные из этих имен:

>> ans имя переменной по умолчанию для результата вычислений.

>> eps переменная машинной точности вычислений, имеет порядок 10 -16 .

>> exit завершение (окончание) работы MATLAB.

>> i или j мнимая единица, т.е. .

>> pi число π.

>> Inf обозначение бесконечности.

>> NaN не числовой результат.

>> clear команда удаления всех переменных из рабочего пространства, эту команду следует применять с большой осторожностью.

>> clear x,y команда удаляет переменные x и y.

>> what вывод списка файлов с расширениями ‘.m’, ‘.mat’, ‘.mex’ из текущего каталога.

>> who отображает переменные текущего рабочего пространства.

>> whos выводит информацию о текущих переменных.

>> dir выводит список файлов текущего каталога.

>> save сохраняет все текущие переменные в файле MATLAB.mat в текущем каталоге.

>> load загружает переменные из MATLAB.mat в текущий сеанс работы.

>> diary сохраняет текст (команды) и результаты вычислений текущего сеанса работы (дневник сессии) в файле с именем diary.

>> diary filename сохраняет текущий сеанс в файле с именем filename.

>> diary off приостанавливает запись в файл.

>> diary on включает запись сессии в файл.

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

Работа с системой носит диалоговый характер и происходит по правилу «задал вопрос - получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши ENTER. В качестве примера на рисунке показаны простейшие и вполне очевидные вычисления.

Даже из таких простых примеров можно сделать некоторые поучительные выводы:

* для указания ввода исходных данных используется символ >>;

* данные вводятся с помощью простейшего строчного редактора;

* для блокировки вывода результата вычислений некоторого выражения после него надо установить знак; (точка с запятой);

* если не указана переменная для значения результата вычислений, то MATLAB назначает такую переменную с именем ans;

* знаком присваивания является привычный математикам знак равенства =, а не комбинированный знак:=, как во многих других языках программирования и математических системах;

* встроенные функции (например, sin) записываются строчными буквами, и их аргументы указываются в круглых скобках;

* результат вычислений выводится в строках вывода (без знака >>);

* диалог происходит в стиле «задал вопрос - получил ответ».

Следующие примеры иллюстрируют применение системы MATLAB для выполнения еще ряда простых векторных операций. На рисунке представлено также окно браузера файловой системы, который имеется на вкладке Current Directory. В командном режиме вызов окна браузера файловой системы удобнее производить из панели инструментов активизацией кнопки после списка директорий системы MATLAB. Возможны случаи отказа от вычислений при неправильно установленной текущей директории, если нужные для вычислений m-файлы не обнаруживаются.

В большинстве математических систем вычисление sin(V) или exp(V), где V - вектор, сопровождалось бы выдачей ошибки, поскольку функции sin и exp должны иметь аргумент в виде скалярной величины. Однако MATLAB - матричная система, а вектор является разновидностью матрицы с размером 1Чn или nЧ1. Поэтому в нашем случае результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V.

Матрица задается в виде ряда векторов, представляющих ее строки и заключенных в квадратные скобки. Для разделения элементов векторов используется пробел или запятая, а для отделения одного вектора от другого - точка с запятой. Для выделения отдельного элемента матрицы M используется выражение вида M(j,i), где M - имя матрицы, j - номер строки и i - номер столбца.

Для просмотра содержимого массивов удобно использовать браузер рабочего пространства Workspace. Каждый вектор и матрица в нем представляются в виде квадратика с ячейками, справа от которого указывается размер массива. Двойной щелчок по квадратику мышью ведет к появлению окна редактора массивов Array Editor. Работа с редактором массивов вполне очевидна - возможен не только просмотр элементов массивов, но и их редактирование и замена.

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

Работа с редактором массивов

To get started, select "MATLAB Help" from the Help menu.

>> type sin

sin is a built-in function.

>> help sin

SIN(X) is the sine of the elements of X.

Overloaded methods

>> V=

0.8415 0.9093 0.1411 -0.7568

Error using ==> ^

Matrix must be square.

Можно обратить внимание на форму ответов при выполнении простых операций без указания переменной, которой присваивается результат. В таких случаях MATLAB сам назначает переменную ans, которой присваивается результат и значение которой затем выводится на экран.

Форма вывода и перенос строки в сессии

Следует отметить особенности вывода в системе MATLAB. Вывод начинается с новой строки, причем числовые данные выводятся с отступом, а текстовые - без него. Для экономии места в данной книге в дальнейшем вывод будет даваться без перевода на новую строку. Например, вывод вектора-строки

будет дан в виде:

Исключением является вывод векторов столбцов и матриц - тут будет сохранена более наглядная и присущая MATLAB по умолчанию форма вывода.

В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. Тогда часть выражения можно перенести на новую строку с помощью знака многоточия «...» (3 или более точек), например:

s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ...

1/8 + 1/9 - 1/10 + 1/11 - 1/12;

Максимальное число символов в одной строке командного режима - 4096, а в m-файле - не ограничено, но со столь длинными строками работать неудобно. В ранних версиях в одной строке было не более 256 символов.

Запуск примеров применения MATLAB из командной строки

MATLAB имеет множество примеров применения, часть из которых можно запускать прямо из командной строки. Например, команда

запускает m-файл bench.m демонстрационного примера тестирования системы.

1. Запустить программу можно с помощью иконки на рабочем столе или через кнопку Пуск(в левом нижнем углу экрана). Откроется рабочая среда пакета MatLab.

2. Щелкните мышкой в поле командного окна (Command Window), чтобы сделать его активным.

Наберите в строке со значком » и мигающим вертикальным курсором 1+2 и нажмите Enter. В результате в командном окне MatLab отображается следующее:

Результат вычисления суммы 1+2 записан в специальную переменную ans и ее значение, равное 3, выведено в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что MatLab готов к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения.

3.Для продолжения работы с предыдущим выражением, например, вычислить (1+2)/4.5 целесообразно воспользоваться уже имеющимся результатом, который хранится в переменной ans.

Наберите ans/4.5 (при вводе десятичных дробей используется точка) и нажмите Enter, получается:

4.Запись «ans = 0.6667» называется эхом.

Выполнение каждой команды в MatLab сопровождается подобным эхом, что зачастую затрудняет восприятие работы программы.

Чтобы отключить эхо, поставьте после команды символ; (точка с запятой). Например:

Здесь результат умножения переменной ans на 3, который является промежуточным, не выводится на экран. Показывается только окончательный ответ.

5.Сохраните значения переменных. Для этого:

— выберите в меню File пункт Save Workspase As;

— в появившемся диалоговом окне Save Workspase Variables укажите каталог и имя файла (по умолчанию предлагается сохранить файл в подкаталоге work основного каталога MatLab). Результаты работы сохранятся в файле с расширением mat.

6. Закройте MatLab.

7.Снова запустите MatLab. Для восстановления значений переменных предыдущего сеанса работы откройте сохраненный файл при помощи подпункта Open меню File. Сохраненные переменные можно использовать во вновь вводимых командах.

8.Запишите исполняемые команды и результаты в текстовый файл, который потом можно прочитать или распечатать из текстового редактора. Для этого:

— введите команду diary;

— задайте имя файла, в котором будет храниться журнал работы, в качестве аргумента команды diary.

Пример приведен в п. 1.3.

9. Для завершения работы в системе MatLab наберите команду quit.

1. Изучить теоретическую часть.

2. Получить вариант задания.

3. Проделать пример, приведенный в п. 2.

4. Выполнить вычисления в соответствии со своим вариантом.

5. Оформить отчет в электронном виде.

6. Защитить лабораторную работу, ответив на вопросы преподавателя.

Варианты

Статьи к прочтению:

Основы работы с Mathcad. Простейшие вычисления. Урок 4

с граничными условиями y (t 0 , t end , p ) = y , где t end , t 0 начальные и конечные точки интервалов. Параметр t (независимая переменная) необязательно означает время, хотя чаще всего решение ДУ ищется во временной области. Система ДУ в форме Коши записывается аналогично (1.1), но под y в этом случае подразумевается вектор-столбец зависимых переменных. Вектор p задает начальные условия.

Для решения ДУ второго и высшего порядка их нужно свести к системе ДУ первого порядка.

Возможны ДУ, не разрешенные относительно производной:

F (t , y , dy /dt ) = 0. (1.2)

Уравнения (1.2) аналитически к форме (1.1) обычно привести не удается. Однако численное решение особых трудностей не вызывает достаточно для определения f (y , t ) решить (1.2) численно относительно производной при заданных y и t .

Решатели ОДУ

Для решения систем ОДУ в MATLAB реализованы различные численные методы. Их реализации названы решателями ОДУ.

В этом разделе обобщенное название solver (решатель) означает один из возможных численных методов решения ОДУ: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, bvp4c или pdepe.

Решатели реализуют следующие методы решения систем ДУ:

Ode45 одношаговые явные методы Рунге-Кутта 4-го и 5-го порядков в модификации Дорманда и Принца. Это классический метод, рекомендуемый для начальной пробы решения. Во многих случаях он дает хорошие результаты, если система решаемых уравнений нежесткая.

Ode23 одношаговые явные методы Рунге-Кутта 2-го и 4-го порядков в модификации Богацки и Шампина. При умеренной жесткости системы ОДУ и низких требованиях к точности этот метод может дать выигрыш в скорости решения.

Ode113 многошаговый метод Адамса-Башворта-Мултона переменного порядка класса предиктор-корректор. Это адаптивный метод, который может обеспечить высокую точность решения.

Ode15s многошаговый метод переменного порядка (от 1 до 5, по умолчанию 5), использующий формулы численного «дифференцирования назад». Это адаптивный метод, его стоит применять, если решатель ode45 не обеспечивает решения и система ДУ жесткая.

Ode23s одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Может обеспечить высокую скорость вычислений при низкой точности решения жесткой системы ДУ.

Ode23t неявный метод трапеций с интерполяцией. Этот метод дает хорошие результаты при решении задач, описывающих колебательные системы с почти гармоническим выходным сигналом. При умеренно жестких системах ДУ может дать высокую точность решения.

Ode23tb неявный метод Рунге Кутта в начале решения и метод, использующий формулы «дифференцирования назад» 2-го порядка в последующем. Несмотря на сравнительно низкую точность, этот метод может оказаться более эффективным, чем ode15s.

Bvp4c служит для проблемы граничных значений систем ДУ вида y ′ = f (t , y ), F (y (a ), y (b ), p ) = 0 (полная форма системы уравнений Коши). Решаемые им задачи называют двухточечными краевыми задачами, поскольку решение ищется при задании граничных условий как в начале, так и в конце интервала решения.

Все решатели могут решать системы уравнений явного вида y ′ = F (t , y ), причем для решения жестких систем уравнений рекомендуется использовать только специальные решатели ode15s, ode23s, ode23t, ode23tb.

Использование решателей систем ОДУ

tspan вектор, определяющий интервал интегрирования [t 0 t final ]. Для получения решений в конкретные моменты времени t 0 , t 1 , …, t final (расположенные в порядке уменьшения или увеличения) нужно использовать tspan = [ t 0 t 1 … t final ];

y 0 вектор начальных условий;

Options аргумент, создаваемый функцией odeset (еще одна функция odeget или bvpget (только для bvp4c) позволяет вывести параметры, установленные по умолчанию или с помощью функции odeset/bvpset);

p 1, p 2,… произвольные параметры, передаваемые в функцию F ;

T , Y матрица решений Y , где каждая строка соответствует времени, возвращенном в векторе-столбце T .

Перейдем к описанию синтаксиса функций для решения систем ДУ (под именем solver подразумевается любая из представленных выше функций).

[T ,Y ]=solver(@F ,tspan ,y 0) интегрирует систему ДУ вида y ′ = F (t , y ) на интервале tspan с начальными условиями y 0 . @F дескриптор ОДУ-функции (можно также задавать функцию в виде "F "). Каждая строка в массиве решений Y соответствует значению времени, возвращаемому в векторе-столбце T .

[T ,Y ]=solver(@F ,tspan ,y 0 ,options) дает решение, подобное описанному выше, но с параметрами, определяемыми значениями аргумента options, созданного функцией odeset. Обычно используемые параметры включают допустимое значение относительной погрешности RelTol (по умолчанию 1e3) и вектор допустимых значений абсолютной погрешности AbsTol (все компоненты по умолчанию равны 1e6).

[T ,Y ]=solver(@F ,tspan ,y 0 ,options,p 1 ,p 2 …) дает решение, подобное описанному выше, передавая дополнительные параметры p 1 , p 2 , … в m -файл F всякий раз, когда он вызывается. Используйте options=, если никакие параметры не задаются.

Решение ОДУ первого порядка

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

Пример

Найти решение дифференциального уравнения на отрезке , для которого у (1,7) = 5,3.

Создаем в Command Window функция пользователя

g=@(x,y);

В синтаксисе функции @(x,y) x независимая переменная, y зависимая переменная, x -cos(y /pi ) правая часть ДУ.

Процесс решения осуществляется обращением в Command Window к решателю (солверу) следующим оператором:

Ode23(g,,);

Построение графика с сеткой осуществляется следующими операторами:

Результат представлен на рис. 1.1

Рис. 1.2.1. Визуализация численного решения

ЗАДАНИЕ

1. Найдите решения ДУ первого порядка , удовлетворяющего начальным условиям у(х 0 ) = у 0 на промежутке [a , b ].

2. Построить графики функции.

Варианты заданий .

№ варианта у(х 0 )=у 0 [a , b ]
y 0 (1,8)=2,6
y 0 (0,6)=0,8
y 0 (2,1)=2,5
y 0 (0,5)=0,6
y 0 (1,4)=2,2
y 0 (1,7)=5,3
y 0 (1,4)=2,5
y 0 (1,6)=4,6
y 0 (1,8)=2,6
y 0 (1,7)=5,3
y 0 (0,4)=0,8
y 0 (1,2)=1,4

Лабораторная работа № 2

Решение систем ОДУ

ЦЕЛЬ РАБОТЫ

Сформировать у студентов представления о применении систем ДУ в различных областях; привить умения решать задачу Коши для систем ДУ.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

Пример

Решить систему

с использованием решателя ode23().

Решение:

1. Создать в редакторе m-файл функции вычисления правых частей ДУ.

Пусть имя в редакторе файла sisdu.m, тогда функция может иметь следующий вид:

function z=sisdu(t,y)

z1=-3*y(2)+cos(t)-exp(t);

z2=4*y(2)-cos(t)+2*exp(t);

>> t0=0;tf=5;y0=[-3/17,4/17];

>> =ode23("sisdu",,y0);

>> plot(t,y)

Рис. 1.3.1. Визуализация численного решения, полученного с помощью функции ode23.

1. Что значит решить задачу Коши для системы ДУ?

2. Какие существуют методы решения систем ДУ?

ЗАДАНИЕ

1. Найдите решение системы ДУ

удовлетворяющее начальным условиям на промежутке ;

2. Построить графики функций.

Для примера приводится функция решения 8-го варианта:

function z=ssisdu(t,y)

% вариант 8

z1=-a*y(1)+a*y(2);

z2=a*y(1)-(a-m)*y(2)+2*m*y(3);

z3=a*y(2)-(a-m)*y(3)+3*m*y(4);

z4=a*y(3)-3*m*y(4);

>> =ode23("ssisdu",,);

>> plot(t,100*y)

Рис. 1.3.2. Визуализация численного решения, полученного с помощью функции ode23.

Варианты заданий .

№ варианта Задания
a m
0,1 1,2
0,2 1,5
0,3 1,7
0,4 1,9
0,5
0,6 1,9
0,7 2,3
0,8 2,7
0,9
0,1 1,5
0,2 1,1
0,3

Лабораторная работа № 3

1.4Решение ОДУ n -го порядка

ЦЕЛЬ РАБОТЫ

Сформировать у студентов представления о применении ДУ высших порядков в различных областях; привить умения решать задачу Коши для ДУ высших порядков с помощью прикладных программ; развить навыки проверки полученных результатов.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

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

2. Оформите отчет по лабораторной работе, который должен содержать:

· титульный лист;

· исходные данные варианта;

· решение задачи;

· результаты решения задачи.

Пример 1.

Решить ДУ второго порядка при данных начальных условиях .

Решение:

Сначала приведем ДУ к системе:

1. Создать m-файл функции вычисления правых частей ДУ.

Пусть имя файла sisdu_3.m, тогда функция может иметь следующий вид:

function z=sisdu_3(x,y)

z2=6*x*exp(x)+2*y(2)+y(1);

2. Выполнить следующие действия:

>> x0=0;xf=10;y0=;

>> =ode23("sisdu_3",,y0);

>> plot(x,y(:,1))

Рис. 1.4.1. Визуализация численного решения, полученного с помощью функции ode23.

ПРИМЕРНЫЕ ВОПРОСЫ НА ЗАЩИТЕ РАБОТЫ

1. Что значит решить задачу Коши для ДУ высших порядков?

2. Как привести ДУ m -го порядка к системе ДУ?

ЗАДАНИЕ

1. Найдите решение ДУ, удовлетворяющее начальным условиям на промежутке .

2. Построить графики функций.

Варианты заданий .

№ варианта Задания
Уравнения Начальные условия







Лабораторная работа № 4 – 5

Динамические системы (ДС)

ЦЕЛЬ РАБОТЫ

Знакомство студентов с основными понятиями ДС, их классификация, фазовое пространство ДС, кинематическая интерпретация системы ДУ, эволюция ДС. Уравнение движения маятника. Динамика осциллятора Ван дер Поля.

2. Динамическая система (ДС) математический объект, соответствующий реальным системам (физическим, химическим, биологическим и др.), эволюция которых однозначно определяется начальным состоянием. ДС определяется системой уравнений (дифференциальных, разностных, интегральных и т.д.), допускающих существование на бесконечном интервале времени единственность решения для каждого начального условия.

Состояние ДС описывают набором переменных, выбираемых из соображений естественности их интерпретации, простоты описания, симметрии и т.п. Множество состояний ДС образует фазовое пространство, каждому состоянию отвечает точка в нём, а эволюция изображается (фазовыми) траекториями. Чтобы определить близость состояний, в фазовом пространстве ДС вводят понятие расстояния. Совокупность состояний в фиксированный момент времени характеризуется фазовым объёмом.

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

Математическая модель ДС считается заданной, если введены динамические переменные (координаты) системы, определяющие однозначно ее состояние, и указан закон эволюции состояния во времени.

В зависимости от степени приближения одной и той же системе могут быть поставлены в соответствие различные математические модели. Исследование реальных систем идет по пути изучения соответствующих математических моделей, совершенствование и развитие которых определяется анализом экспериментальных и теоретических результатов при их сопоставлении. В связи с этим под динамической системой мы будем понимать именно ее математическую модель. Исследуя одну и ту же ДС (к примеру, движение маятника), в зависимости от степени учета различных факторов мы получим различные математические модели.

Публикации по теме