|
|
|
Рбята выручайте
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Не знаю куда запостить, тут вроде бы самое подходящее место.. Значит так, задача: написать на с++ программу, которая решала бы систему обыкновенных дифференциальных уравнений методом Рунге Кутта . Казалось бы чего проще, ан нет, что-то у меня не получатся :( Набросал такую штуку, которая решает (в качестве примера задачу хищник-жертва с начальными условиями х(0)=0, у(0)=0) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Уже голову сломал, пытаясь найти ошибку. Помогите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2007, 12:27 |
|
||
|
Рбята выручайте
|
|||
|---|---|---|---|
|
#18+
Я уже не помню этого (20 лет прошло) Только вот сдается что округляться надо, полволка не жилец, как и ползайца C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2007, 12:47 |
|
||
|
Рбята выручайте
|
|||
|---|---|---|---|
|
#18+
gbcfk(f)^...Проверяю правильность решения пакетом Mathematica и выясняется, что моя программа врет. Я в недоумении, вроде все формулы правильны, а решение в минуса уходит - такого не может быть :( Уже голову сломал, пытаясь найти ошибку. Помогите пожалуйста Ну ты даёшь чел! Этож форум по С++ а не математики. Дай бог вспомнить, что такое Рунге-Кутт.. Ну ладно.. попробуем посмотреть. Ты говоришь, что твои решения уходят в минуса. Так? И говоришь, что пакет Matematica даёт якобы верное решение. Тогда разбей эту задачу на части. Потрассируй промежуточные переменные. Найди то слагаемое, которое тянет ответ в минуса. Если Matematica позволяет трассировать промежуточный результат - воспользуйся этим. С переменными p11..p44 - какие-то непонятки. Похоже, ты пытался иммитировать матрицу и где-то протупил с порядком интексов коэффициентов. Проверь еще раз. Найди в готовый исходник Рунге-Кутта и сравни со своей реализацией. Найдешь много косяков ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2007, 19:34 |
|
||
|
Рбята выручайте
|
|||
|---|---|---|---|
|
#18+
Личное пожелание - если поставить более читаемые имена переменных и нормально организовать матрицу 2D массивом, есть хороший шанс, что отловится парочка глюков... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 00:43 |
|
||
|
Рбята выручайте
|
|||
|---|---|---|---|
|
#18+
Все! Всем спасибо! Ваши пожелания сподвигли меня на дотошную проверку значений переменных на каждом шаге... с листочком и ручкой :) Как и следовало ожидать, была найдена ошибка в индексе массива, которая и приводила к неверному результату Если кому-нибудь интересно :) , привожу правильно работающую програмку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2007, 05:11 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=300&tid=2029081]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 384ms |

| 0 / 0 |
