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