Вопрос или проблема | Ответ |
---|---|
Как я выбираю пороги ошибок |
Примерно говоря, это означает, что вы хотите |
Я хочу ответы, которые правильны с точностью компьютера. Почему я не могу просто установить | Вы можете приблизиться к точности машины, но не так близко. Решатели не позволяют |
Как я говорю решателю, что не забочусь о получении точного ответа для одного из компонентов решения? | Можно увеличить допуск абсолютной погрешности |
Вопрос или проблема | Ответ |
---|---|
Насколько большие задачи я могу решить с помощью пакета ODE? | Первичные ограничения являются памятью и время. На каждом временном шаге решатели для нежестких проблем выделяют векторы из длины Если проблема является нежесткой, или если вы используете |
Я решаю очень большую систему, но только забочусь о нескольких компонентов | Да. |
Какова стоимость запуска интегрирования и как я могу уменьшать его? | Самая большая стоимость запуска возникает, когда решатель пытается найти размер шага, соответствующий масштабу задачи. Если вы, оказывается, знаете соответствующий размер шага, используйте |
Размер первого шага, который принимает интегратор, слишком велик, и он пропускает важное поведение. | Можно задать размер первого шага с |
Вопрос или проблема | Ответ |
---|---|
Решение не похоже на то, что я ожидал. | Если ваши ожидания правильны, то уменьшают ошибочные допуски от своих значений по умолчанию. Меньший допуск относительной погрешности необходим, чтобы точно решить задачи, интегрированные на “длинных” интервалах, а также проблемах, которые умеренно нестабильны. Проверяйте, существуют ли компоненты решения, которые остаются меньшими, чем их допуск абсолютной погрешности в течение некоторого времени. Если так, вы не требуете никаких правильных цифр в этих компонентах. Эта сила быть приемлемой для этих компонентов, но не удающийся вычислить их точно может ухудшить точность других компонентов, которые зависят от них. |
Мои графики не являются гладкими достаточно. | Увеличьте значение |
Я строю решение, когда оно вычисляется, и оно выглядит хорошо, но код застревает в какой-то момент. | Сначала проверьте, что функция ОДУ является гладкой около точки, где код застревает. Если это не, то решатель должен сделать небольшие шаги, чтобы иметь дело с этим. Это может помочь разломать интервал интегрирования на кусочки, на котором является гладкой функция ОДУ. Если функция является гладкой, и код делает чрезвычайно небольшие шаги, вы, вероятно, пытаетесь решить жесткую задачу с решателем, не предназначенным с этой целью. Переключитесь на использование одного из жестких решателей |
Что, если у меня есть финал а не начальное значение? | Все решатели пакета ODE позволяют вам получать решение как в прямом, так и в обратном времени. Синтаксисом для решателей является |
Процесс решения протекает очень медленно, используя слишком много временных шагов. | Во-первых, проверяйте тот Если функция ОДУ не изменяется заметно на Наконец, убедитесь, что функция ОДУ записана эффективным способом. Решатели оценивают производные в функции ОДУ много раз. Стоимость численного интегрирования зависит критически от расхода выполнения функции ОДУ. Вместо того, чтобы повторно вычислить усложнил постоянные параметры при каждой оценке, сохраните их в глобальных переменных, или вычислите их однажды и передайте их вложенным функциям. |
Я знаю, что решение претерпевает радикальное изменение во время | Если вы знаете, что существует резкое изменение во время Если дифференциальное уравнение имеет периодические коэффициенты или решения, гарантируйте, что решатель не переступает через периоды путем ограничения максимального размера шага длиной периода. |
Могут ли решатели обрабатывать дифференциальные уравнения с частными производными (PDE), которые были дискретизированы методом линий? | Да, поскольку дискретизация создает систему ОДУ. В зависимости от дискретизации у вас может быть форма включающие большие матрицы, которые предусматривают решатели ОДУ. Часто система жестка. Это должно ожидаться, если УЧП будет параболическим, или когда существуют явления, которые происходят на совсем других масштабах времени, таких как химическая реакция в потоке жидкости. В таких случаях используйте один из четырех жестких решателей Если существует много уравнений, используйте Если система не жестка, или не очень жестка, то Можно решить параболически-эллиптические дифференциальные уравнения с частными производными в 1D непосредственно с MATLAB® Решатель УЧП |
Можно ли интегрировать набор выборочных данных? | Не непосредственно. Вместо этого представляйте данные как функцию интерполяцией или некоторой другой схемой подходящих данных. Гладкость этой функции очень важна. Кусочно-полиномиальное сглаживание, такое как сплайн, может выглядеть гладко, но грубо для решателя; решатель делает небольшие шаги, где производные сглаженной функции имеют скачки. Или используйте сглаженную функцию, чтобы представлять данные или использовать один из решателей более низкоуровневых ( |
odeset
| odeget
| deval
| odextend