daetools
::reduceDAEIndex
Преобразуйте систему дифференциальных алгебраических уравнений первого порядка к эквивалентной системе дифференциального индекса 1
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
[newEqs
,newVars
,R
,oldIndex
] := daetools::reduceDAEIndex(eqs
,vars
)
[newEqs,newVars,R,oldIndex] := daetools::reduceDAEIndex(eqs,vars)
преобразует систему высокого индекса дифференциальных алгебраических уравнений первого порядка eqs
к эквивалентной системе newEqs
из дифференциального индекса 1
. daetools::reduceDAEIndex
функция сохраняет исходные уравнения и переменные и вводит новые переменные и уравнения. Это также возвращает матричный R
это выражает новые переменные в newVars
как производные исходных переменных vars
и дифференциальный индекс oldIndex
из исходной системы ДАУ, eqs
.
После преобразования, daetools::reduceDAEIndex
проверяет дифференциальный индекс новой системы путем вызова daetools::isLowIndexDAE
. Если индекс newEqs
2
или выше, затем daetools::reduceDAEIndex
выдает предупреждение.
Реализация daetools::reduceDAEIndex
использует алгоритм Pantelides. Этот алгоритм уменьшает системы более высокого индекса до систем более низкого индекса путем выборочного добавления дифференцируемых форм исходных уравнений. Алгоритм Pantelides может недооценить дифференциальный индекс новой системы, и поэтому, может не уменьшать дифференциальный индекс до 1
. В этом случае, daetools::reduceDAEIndex
выдает предупреждение и возвращает значение oldIndex
как UNKNOWN
. daetools::reduceDAEToODE
функционируйте использование более надежное, но более медленное Исключение Гаусса. Обратите внимание на то, что daetools::reduceDAEToODE
требует, чтобы система ДАУ была полулинейна.
Уменьшайте дифференциальный индекс системы, которая содержит два дифференциальных алгебраических уравнения второго порядка. Поскольку уравнения являются уравнениями второго порядка, сначала используйте reduceDifferentialOrder
переписать систему к системе ДАУ первого порядка.
Создайте следующую систему двух ДАУ второго порядка. Здесь, x(t)
yt
, и F(t)
переменные состояния системы.
eqs := [diff(x(t), t, t) = -F(t)*x(t), diff(y(t), t, t) = -F(t)*y(t) - g, x(t)^2 + y(t)^2 = r^2]; vars := [x(t), y(t), F(t)]
Перепишите эту систему так, чтобы все уравнения стали дифференциальными уравнениями первого порядка. daetools::reduceDifferentialOrder
функционируйте заменяет ДАУ второго порядка по двум выражениям первого порядка путем представления новых переменных Dxt(t)
и Dyt(t)
.
[eqs, vars, R] := daetools::reduceDifferentialOrder(eqs, vars): newEquations = eqs; newVariables = vars; relations = R
Используйте daetools::reduceDAEIndex
переписать систему так, чтобы дифференциальным индексом был 1
.
[eqs,vars,R,originalIndex] := daetools::reduceDAEIndex(eqs,vars): newEquations = eqs; newVariables = vars; relations = R; originalDAEIndex = originalIndex
Используйте daetools::reduceRedundancies
сокращать систему.
[eqs, vars, solvedEquations, constantVariables, replacedVariables, otherEquations] := daetools::reduceRedundancies(eqs, vars): newEquations = eqs; newVariables = vars;
|
Список или вектор уравнений или выражений в переменных состояния |
|
Список или вектор идентификаторов или выражений, таких как |
Вложенный список, содержащий следующие четыре выходных параметров: список новых уравнений, список новых переменных, список отношений между новыми и исходными переменными и дифференциальный индекс исходной системы ДАУ. Если daetools::reduceDAEIndex
сбои, чтобы уменьшать дифференциальный индекс до 1
, затем это выдает предупреждение и возвращает UNKNOWN
вместо дифференциального индекса исходной системы ДАУ.