Уменьшайте систему дифференциальных уравнений высшего порядка к эквивалентной системе дифференциальных уравнений первого порядка
[ переписывает систему дифференциальных уравнений высшего порядка 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)]findDecoupledBlocks | daeFunction | decic | incidenceMatrix | isLowIndexDAE | massMatrixForm | odeFunction | reduceDAEIndex | reduceDAEToODE | reduceRedundancies