Уменьшайте порядок дифференциальных уравнений к первому порядку
Поддержка вектора символов или входных параметров строки будет удалена в будущем релизе. Вместо этого используйте 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