Харачебан А.А.

Донецкий национальный университет экономики и торговли имени Мехаила Туган-Барановского

Решения дифференциальных уравнений и систем в MATLAB

MATLAB (сокращение от англ. «Matrix Laboratory») — термин, относящийся к пакету прикладных программ для решения задач технических вычислений, а также к используемому в этом пакете языку программирования. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris и Microsoft Windows .

Дифференциа́льное уравне́ние — уравнение, связывающее значение некоторой неизвестной функции в некоторой точке и значение её производных различных порядков в той же точке. Дифференциальное уравнение содержит в своей записи неизвестную функцию, ее производные и независимые переменные; однако не любое уравнение, содержащее производные неизвестной функции, является дифференциальным уравнением. Например,  не является дифференциальным уравнением. Стоит также отметить, что дифференциальное уравнение может вообще не содержать неизвестную функцию, некоторые её производные и свободные переменные, но обязано содержать хотя бы одну из производных.

Для решения дифференциальных уравнений и систем в MATLAB предусмотрены следующие функции ode45(f, interval, X0 [, options]), ode23(f, interval, X0 [, options]), ode113(f, interval, X0 [, options]), odel5s(f, interval, X0 [, options]), ode23s(f, interval, X0 [, options]), ode23t (f, interval, X0 [,options]) и ode23tb(f, interval, X0 [, options]). Входными параметрами этих функций являются:

f - вектор-функция для вычисления правой части уравнения системы уравнений

interval - массив из двух чисел, определяющий интервал интегрирования дифференциального уравнения или системы;

Х0 - вектор начальных условий системы дифференциальных систем

options - параметры управления ходом решения дифференциального уравнения или системы.

Все функции возвращают:

массив Т - координаты узлов сетки, в которых ищется решение;

матрицу X, i-й столбец которой является значением вектор-функции решения в узле Тi

В функции ode45 реализован метод Рунге-Кутта 4-5 порядка точности, в функции ode23 также реализован метод Рунге-Кутта, но 2-3 порядка, а функция ode113 реализует метод Адамса. Пример:

В М-файле с именем pr7.m пишем:

function f=pr7(x,y)

f=cos(x+y)+(3/2)*(x-y);

end

Потом в командном окне вызываем функцию ode113:

ode113(@pr7,[0 20],0) %Метод Адамса: @pr7 – ссылка на М-функцию, [0 20]- интервалы интегрирования,0 - условие: y(0)=0

Результатом будет график:

Пример:

Необходимо реализовать метод Рунге-Кутта 4 порядка и решить задачу Коши для предложенной системы дифференциальных уравнений:

y1(0) = 0.1; y2(0) = 0.5

В М-файле с именем pr8.m пишем:

function dy=pr8(x,y)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=((y(1)/x)-y(2))*(1/x)-y(1);

end

Потом в командном окне вызываем функцию ode45:

[x,y]=ode45(@pr8,[1 10], [0.1 0.5]);

plot(x,y,'-k')

grid;

Результатом будет график:

 

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

Литература:

1.     Дьяконов В. П. Компьютерная матеметика. Теория и практика. — СПб: «Питер», 1999,2001. — С. 1296. — ISBN 5-89251-065-4

2.     Джон Г. Мэтьюз, Куртис Д. Финк Численные методы. Использование MATLAB = Numerical Methods: Using MATLAB. — 3-е изд. — М.: «Вильямс», 2001. — С. 720. — ISBN 0-13-270042-5

3.     Курбатова Екатерина Анатольевна MATLAB 7. Самоучитель. — М.: «Диалектика», 2005. — С. 256. — ISBN 5-8459-0904-X