Уменьшить порядок дифференциальных уравнений до первого порядка
Поддержка ввода символьных векторов или строк будет удалена в следующем выпуске. Вместо этого используйте 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.
Преобразование дифференциального уравнения n-го порядка
t) y′+a0 (t) y + r (t) = 0
в систему дифференциальных уравнений первого порядка, odetovectorfield делает эти замены.
2) Yn = y (n − 1)
Используя новые переменные, он переписывает уравнение как систему из n дифференциальных уравнений первого порядка:
t) Y2 − a0 (t) an (t) Y1 + r (t) an (t)
odeToVectorField возвращает правые стороны этих уравнений в качестве элементов вектора V и замены, выполненные в качестве второго выхода S.
dsolve | matlabFunction | ode23 | ode45