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