Все решатели могут решать системы уравнений явного вида y’ = F(t, y). Решатели ode15s, ode23s, ode23t, ode23tb могут решать уравнения неявного вида My’ = F(t, y).
В описанных далее функциях для решения систем дифференциальных уравнений приняты следующие обозначения и правила:
§ F – название ODE-файла, то есть функции от t и y, которая возвращает вектор-столбец;
§ tspan – вектор, определяющий интервал интегрирования [to tfinal]. Для получения решений в конкретные моменты времени to, t1, …, tfinal (расположенные в порядке уменьшения или увеличения), нужно использовать tspan = [t0 t1 … tfinal];
§ y0 –вектор начальных условий;
§ T, Y – матрица решений Y, где каждая строка соответствует времени, возвращенном в векторе-столбце T.
В самом простом виде решатель выглядит так:
[T, Y] = solver(‘F’, tspan, y0) интегрирует систему дифференциальных уравнений вида y’ = F(t, y) на интервале tspan с начальными условиями y0. ‘F’ – строка, содержащая имя ODE-файла. Функция F(t, y) должна возвращать вектор-столбец. Каждая строка в массиве решений Y соответствует времени, возвращаемом в векторе-столбце T.
Решатель систем ОДУ дает возможность получать решения систем из n уравнений. Система ОДУ может быть как однородной, так и неоднородной. Решение сводится к следующему:
1) Создание m-файла. Независимо от вида системы он имеет вид:
function dy = solverDE(t, y)
dy = zeros(n, 1);
dy(1) = f1 (t, y(1), y(2), …, y(n));
dy(2) = f2 (t, y(1), y(2), …, y(n));
……………………………
dy(n) = fn (t, y(1), y(2), …, y(n));
2) Получение решения и сопровождающий его график:
>> [T, Y] = solver(‘solverDE’, [t0 tfinal], [y10 y20 … yn0];
>> plot(T, Y)