Уменьшайте систему дифференциальных уравнений высшего порядка к эквивалентной системе дифференциальных уравнений первого порядка
[
переписывает систему дифференциальных уравнений высшего порядка newEqs
,newVars
]
= reduceDifferentialOrder(eqs
,vars
)eqs
как система дифференциальных уравнений первого порядка newEqs
путем замены производными в eqs
с новыми переменными. Здесь, newVars
состоит из исходных переменных vars
увеличенный с этими новыми переменными.
Уменьшайте систему, содержащую ДАУ высшего порядка к системе, содержащей только ДАУ первого порядка.
Создайте систему дифференциальных уравнений, которая включает выражение второго порядка. Здесь, x(t)
и y(t)
переменные состояния системы и c1
и c2
параметры. Задайте уравнения и переменные как два символьных вектора: уравнения как вектор из символьных уравнений и переменные как вектор из символьных вызовов функции.
syms x(t) y(t) c1 c2 eqs = [diff(x(t), t, t) + sin(x(t)) + y(t) == c1*cos(t),... diff(y(t), t) == c2*x(t)]; vars = [x(t), y(t)];
Перепишите эту систему так, чтобы все уравнения стали дифференциальными уравнениями первого порядка. reduceDifferentialOrder
функционируйте заменяет ДАУ высшего порядка по выражениям первого порядка путем представления новой переменной Dxt(t)
. Это также представляет все уравнения как символьные выражения.
[newEqs, newVars] = reduceDifferentialOrder(eqs, vars)
newEqs = diff(Dxt(t), t) + sin(x(t)) + y(t) - c1*cos(t) diff(y(t), t) - c2*x(t) Dxt(t) - diff(x(t), t) newVars = x(t) y(t) Dxt(t)
Уменьшайте систему, содержащую секунду - и выражение третьего порядка к системе, содержащей только ДАУ первого порядка. Кроме того, возвратите матрицу, которая описывает переменные, сгенерированные reduceDifferentialOrder
через исходные переменные этой системы.
Создайте систему дифференциальных уравнений, которая включает секунду - и выражение третьего порядка. Здесь, x(t)
и y(t)
переменные состояния системы. Задайте уравнения и переменные как два символьных вектора: уравнения как вектор из символьных уравнений и переменные как вектор из символьных вызовов функции.
syms x(t) y(t) f(t) eqs = [diff(x(t),t,t) == diff(f(t),t,t,t), diff(y(t),t,t,t) == diff(f(t),t,t)]; vars = [x(t), y(t)];
Вызвать reduceDifferentialOrder
с тремя выходными аргументами. Этот синтаксис возвращает матричный R
с двумя столбцами: первый столбец содержит новые переменные, и второй столбец описывает новые переменные как производные исходных переменных, x(t)
и y(t)
.
[newEqs, newVars, R] = reduceDifferentialOrder(eqs, vars)
newEqs = diff(Dxt(t), t) - diff(f(t), t, t, t) diff(Dytt(t), t) - diff(f(t), t, t) Dxt(t) - diff(x(t), t) Dyt(t) - diff(y(t), t) Dytt(t) - diff(Dyt(t), t) newVars = x(t) y(t) Dxt(t) Dyt(t) Dytt(t) R = [ Dxt(t), diff(x(t), t)] [ Dyt(t), diff(y(t), t)] [ Dytt(t), diff(y(t), t, t)]
daeFunction
| decic
| findDecoupledBlocks
| incidenceMatrix
| isLowIndexDAE
| massMatrixForm
| odeFunction
| reduceDAEIndex
| reduceDAEToODE
| reduceRedundancies