Иллюстрированный самоучитель по MatLab

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

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

Параметры Ode45 Ode23 Ode11s Ode15s ode23s
RelTol,AbsTol + + + + +
OutputFcaOutputSel, Refine, Stats + + + + +
Events + + + + +
MaxStep, InitlalStep + + + + +
Jconstant, Jacobl an,          
Jpattern, Vectorized       + +
Mass       + +
MassConstant       +  
MaxOrder, BOF       +  

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

Покажем применение решателя ОДУ на ставшем классическом примере – решении уравнения Ван-дер-Поля, записанного в виде системы из двух дифференциальных уравнений:

y' 1= y 2;
y' 2= 100*(1-y 1 )^2 * y 2 -y 1

При начальных условиях:

y 1 ,(0) = 0;
y 2 (0) = 1.

Перед решением нужно записать систему дифференциальных уравнений в виде ode-функции. Для этого в главном меню выберем File › New › M-File и введем:

function dydt = vdp100(t,y)
dydt = zeros(2,1); % a column vector
dydt(1) = y(2);
dydt(2) = 100*(1 -y(1^)2)*y(2) -y(1);

Сохраним m-файл-функцию. Тогда решение решателем ode15s и сопровождающий его график можно получить, используя следующие команды:

>> [T,Y]=odel5s(@vdp100.[0 30].[2 0]);
>> plot(T,Y)
>> hold on:gtext('yl').gtext('y2')

Последние команды позволяют с помощью мыши нанести на графики решений y1 = y(1) и у2 = y(2) помечающие их надписи.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.