Тестирование решателей ОДУ

В таблице приведены результаты сравнения наиболее трудных для современных решателей ОДУ жестких систем ОДУ с многопериодным решением. Основным требованием к решателю ОДУ при тестировании являлось задание всех исходных данных в типе данных double представления вещественных чисел языка Си, решатель должен быть рекомендуемым для решения жестких систем ОДУ, задаваемая решателю относительная точность получаемых решений должна быть 0.001, все остальные параметры решателя устанавливались по умолчанию.

Тест Решатель ОДУ

SADEL

Mathcad

MATLAB

Maple

Тест 1. Уравнения Ван Дер Поля, MU=10^6 + + +
Тест 1. Уравнения Ван Дер Поля, MU=10^9 +
Тест 2. Высокодобротный фильтр kt=1, ki=1, ku=0.01 + +
Тест 2. Высокодобротный фильтр kt=10^-104, ku=1, ki=1 +
Тест 3. Локально-неустойчивая система ОДУ MU=10^6 + +
Тест 4. Моделирование свечения лазера + + +

Знак минус означает невозможность получения решения или (в большинстве случаев) качественно неверный результат без всякого предупреждения о возможных ошибках. При значительном увеличении жесткости и значений коэффициентов тестовых систем ОДУ из таблицы соответствующие решатели программных комплексов Mathcad, MATLAB и Maple дают неверный результат, как правило, без всякого сообщения об ошибке, при этом решатель SADEL дает правильное решение с требуемой точностью. Ниже приведено краткое описание данных трудных тестов.

Тест 1
Пример расчета жесткой системы ОДУ 2-го порядка (MU – параметр жесткости) – осциллятор Ван дер Поля.
Тест 1
Сравнение программ было проведено для часто встречающихся на практике значений жесткости MU=10^6 и MU=10^9. Пример неверного решения этого теста с MU=10^9 в пакете Mathcad (версия 2007 г.):
Тест 1 в Mathcad

Тест 2
Пример моделирования одной из тестовых электронных схем с многопериодным решением (линейная система ОДУ 5-го порядка) – тест Маничева.
Тест 2
Сравнение программ было приведено для часто встречающихся на практике параметров масштабных коэффициентов по времени, току и напряжению: kt=1, ki=1, ku=0.01 , а также для значений параметров kt=10^-104, ki=1, ku=1, которые дают трудный тест для современных решателей ОДУ. Пример неверного решения этого теста в пакете Mathcad (версия 2007 г.):
Тест 2 в Mathcad

Тест 3
Нелинейная жесткая система ОДУ, имеющая локально-неустойчивое решение – тест Скворцова.
Тест 3
Сравнение программ было проведено для часто встречающегося на практике значения жесткости MU=10^6. Пример неверного решения этого теста в пакете MATLAB (версия 2007 г.):
Тест 3 в Matlab

Тест 4
Нелинейная жесткая система ОДУ для моделирования процессов реального лазера – тест Евстифеева.
Тест 4
Сравнение решателей ОДУ было проведено для параметров реального работающего лазера. Пример неверного решения этого теста в пакете Maple (версия 2007 г.):
Тест 4 в Maple

Добавить комментарий