Использование решателей систем ОДУ
Решатели используют в списке различные параметры. В приведенной ниже таблице они даны для решателей обычных (в том числе жестких) дифференциальных уравнений.
| Параметры | 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) помечающие их надписи.
