| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Помогите исправить код |
| Автор: MrAlex 3.5.2010, 16:18 | ||
| Уважаемые программисты, помогите разобраться что не так. Надо решить систему нелинейных уравнений методом простой итерации и методом Ньютона. Метод итерации вроде получился, а метод Ньютона никак не получается, что делать? Пишет, что "Invalid floating point operation"
Заранее благодарен! |
| Автор: superVad 3.5.2010, 17:51 |
| Ерунда какая то. f1[1]:=0.85+cos(y[i]); f2[1]:=-1.32+sin(x[i-1]); Как ты тут обращаешся к i а оно у тебя еще не инициализировано. Вот чему тут i равно? for i:=2 to 100 do begin f1[i]:=0.85+cos(y[i]); f2[i]:=-1.32+sin(x[i]); Ты обращаешься к элементам массива (y[2] например) которые еще ничем не заполнены... Да и отформатируй код - самому же легче будет. |
| Автор: MrAlex 3.5.2010, 18:10 | ||
Вот так вот правильнее будет?
|
| Автор: superVad 3.5.2010, 18:35 | ||||
| MrAlex, ну я же не знаю, чего ты хочешь Но все равно не правильно. может так....
Да и вроде как значения f1, f2, dx1, dx2 ты дальше уже нигде не используешь. Т.е. это могут быть не массивы а просто переменные типа real. Добавлено через 6 минут и 26 секунд т.е.
|
| Автор: MrAlex 3.5.2010, 19:01 |
| Спасибо! Ошибку больше не выдает, но и результат не выводит, почему? |
| Автор: superVad 3.5.2010, 20:06 |
| Не получает ни одного результата удовлетворяющего условие: if(abs(dx1)<0.1) and (abs(dx2)<0.1) then |
| Автор: MrAlex 3.5.2010, 20:46 |
| Что делать? Как исправить? |
| Автор: profesiachuvak 3.5.2010, 22:02 |
Искать алгоритм методов, и искать ошибку в его реализации. Тут нужно теорию проверять. |
| Автор: MrAlex 4.5.2010, 00:38 |
| Ребята, ну кто в этом разберается помогите, пожалуйста |
| Автор: superVad 4.5.2010, 09:41 |
| В чем - в этом? В решении системы нелинейных уравнений методом Ньютона? |