Уменьшайте порядок дифференциальных уравнений к первому порядку
Поддержка вектора символов или входных параметров строки будет удалена в будущем релизе. Вместо этого используйте syms
объявить переменные и входные параметры замены, такие как odeToVectorField('D2y = x')
с syms y(x), odeToVectorField(diff(y,x,2) == x)
.
преобразует дифференциальные уравнения высшего порядка V
= odeToVectorField(eqn1,...,eqnN
)eqn1,...,eqnN
к системе дифференциальных уравнений первого порядка, возвращенных как символьный вектор.
[
преобразует V
,S
] =
odeToVectorField(eqn1,...,eqnN
)eqn1,...,eqnN
и возвращает два символьных вектора. Первый векторный V
совпадает с выходом предыдущего синтаксиса. Второй векторный S
показывает замены, сделанные получить V
.
Чтобы решить получившуюся систему дифференциальных уравнений первого порядка, сгенерируйте MATLAB® указатель на функцию с помощью matlabFunction
с V
как вход. Затем используйте сгенерированный указатель функции MATLAB в качестве входа для MATLAB числовой решатель ode23
или ode45
.
odeToVectorField
может преобразовать только квазилинейные дифференциальные уравнения. Таким образом, производные самого высокого порядка должны появиться линейно. Например, odeToVectorField
может преобразовать y *y ″ (t) = –t2 потому что это может быть переписано как y ″ (t) = –t2/y. Однако это не может преобразовать y ″ (t)2 = –t2 или sin (y ″ (t)) = –t2.
Преобразовывать дифференциальное уравнение th-порядка n
в систему дифференциальных уравнений первого порядка, odetovectorfield
делает эти замены.
Используя новые переменные, это переписывает уравнение как систему дифференциальных уравнений первого порядка n:
odeToVectorField
возвращает правые стороны этих уравнений как элементы векторного V
и замены, сделанные как второй выход S
.
dsolve
| matlabFunction
| ode23
| ode45