Уменьшайте систему дифференциальных уравнений высшего порядка к эквивалентной системе дифференциальных уравнений первого порядка
[newEqs,newVars]
= reduceDifferentialOrder(eqs,vars)[newEqs,newVars,R]
= reduceDifferentialOrder(eqs,vars)[ переписывает систему дифференциальных уравнений высшего порядка 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