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