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