Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLab.doc
Скачиваний:
5
Добавлен:
17.11.2018
Размер:
818.69 Кб
Скачать
  1. Решение систем дифференциальных уравнений.

Система ML имеет встроенные средства для решения обыкновенных дифференциальных уравнений (ДУ) произвольного порядка. Обыкновенное дифференциальное уравнение – это уравнение, содержащее аргумент, искомую функцию этого аргумента и ее производные различных порядков F(t, y, y’,…, y(n))=0. Наивысший порядок производной искомой функции в данном уравнении называется порядком дифференциального уравнения. Решением дифференциального уравнения является такая функция, которая при подстановке в дифференциальное уравнение обращает его в верное равенство. Самое простое ДУ – это уравнение 1-го порядка, разрешенного относительно производной. Оно имеет вид y’=f(t, y). Если y является вектором, то речь идет о системе дифференциальных уравнений. ДУ и системы порядка 2 и выше можно свести к системам уравнений 1-го порядка. Так, для того чтобы свести к системе уравнений 1-го порядка уравнение y’’=f(t, y, y’), нужно использовать замену: y1=y и y2=y. В результате замены будем иметь систему:

y1’=y2

y2’=F(t, y1, y2)

В ML имеется целый ряд встроенных функций, предназначенных для решения этой задачи. Это функции ode23, ode45, ode113 и …. В перечисленных функциях реализованы различные методы решения ДУ. Наиболее часто используют функции ode23 и ode45, в основе работы которых лежит метод Рунге-Кутта. Для уравнений 2 и 3 порядков используют функцию ode23, а для уравнений 4 и 5 порядков – функцию ode45.

[t, y]= <название метода>(‘<fun>’, <tspan>, <y0>), где

t – вектор-столбец, содержащий значение независимой переменной (обычно это время t);

y – массив решений, каждая строка которого соответствует определенному значению t;

fun – имя m-файла, в котором вычисляются правые части системы ДУ;

tspan – вектор, определяющий интервал интегрирования;

y0 – скаляр или вектор-столбец, в котором задаются начальные условия.

Пример.

Имеем ДУ y’’+4y’+5y=0

С начальными условиями y(0)=3 и y’(0)=-5

Выполним замену : y1=y и y2=y’, получим систему ДУ:

y1’=y2

y2’=-5y1-4y2

при y1(0)=3 и y2(0)=-5

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

function F=mydif(t,y)

F=[y(2); -5*y(1)-4*y(2)];

Сохраним файл в текущем каталоге. Обратимся к функции ode45.

>> [t,y]=ode45('mydif', [0 5],[3;-5])

Отобразим график решения ДУ и график производной (график изменения координаты точки и ее скорости в зависимости от времени).

>> plot(t,y(:,1),'r',t,y(:,2),'k--')

>> xlabel('t');

>> ylabel('y,y\prime')

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]