reduceDifferentialOrder

Уменьшайте систему дифференциальных уравнений высшего порядка к эквивалентной системе дифференциальных уравнений первого порядка

Описание

пример

[newEqs,newVars] = reduceDifferentialOrder(eqs,vars) переписывает систему дифференциальных уравнений высшего порядка eqs как система дифференциальных уравнений первого порядка newEqs путем замены производными в eqs с новыми переменными. Здесь, newVars состоит из исходных переменных vars увеличенный с этими новыми переменными.

пример

[newEqs,newVars,R] = reduceDifferentialOrder(eqs,vars) возвращает матричный R это описывает новые переменные в 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)]

Входные параметры

свернуть все

Система, содержащая дифференциальные уравнения высшего порядка в виде вектора из символьных уравнений или выражений.

Переменные исходных дифференциальных уравнений в виде вектора из символьных функций или вызовов функции, таких как x(t).

Пример: [x(t),y(t)]

Выходные аргументы

свернуть все

Система дифференциальных уравнений первого порядка, возвращенных как вектор-столбец символьных выражений.

Расширенный набор переменных, возвращенных как вектор-столбец символьных вызовов функции. Этот вектор включает переменные vars исходного состояния сопровождаемый сгенерированными переменными, которые заменяют производные высшего порядка в eqs.

Отношения между новыми и исходными переменными, возвращенными как символьная матрица с двумя столбцами. Первый столбец содержит новые переменные newVars. Второй столбец содержит их определение как производные исходных переменных vars.

Введенный в R2014b