![]() |
|
![]() ![]() ![]() |
|
PriestOfLuna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.6.2010 Репутация: нет Всего: нет |
Делаю на Java программу, решающую заданную систему дифференциальных уравнений первого порядка методами Элейра и Рунге-Кутты. Застопорился уже на том, что метод Эйлера работает совсем уж неадекватно. Сильно расходится с решением в маткаде и вообще при разном шаге дает разные результаты.
Может я не догоняю чего-то глобального.... |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Напишите систему, которую Вы решаете. Правда, и без этого можно сказать, что первая строчка в makeStep выглядит несколько неестественно.
|
|||
|
||||
PriestOfLuna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.6.2010 Репутация: нет Всего: нет |
x'=3x
y'=2x+y |
|||
|
||||
Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Нет, тогда с первой строчкой как раз все в порядке. А вот во второй ошибка: вместо
должно быть
|
||||
|
|||||
PriestOfLuna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.6.2010 Репутация: нет Всего: нет |
Да, эту ошибку я исправил, но изменилось не так уж много =\
Значения дает все так же не те. |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 2 Всего: 49 |
Ну что значит "не те"? Точность метода Эйлера, особенно на таких задачах, мягко говоря, невысока. В Маткаде "зашит" метод Рунге-Кутты 4-го порядка, он должен быть точнее, так что их результаты сравнивать несколько некорректно. Попробуйте сильно уменьшить шаг (где-нибудь до 10^{-8} - 10^{-9}) и посмотрите, что получится.
|
|||
|
||||
PriestOfLuna |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 27.6.2010 Репутация: нет Всего: нет |
Да, уменьшение шага решило проблему
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |