IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> метод итераций по образцу с форума, выдает ошибку
Ven
сообщение 9.10.2011 22:17
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Женский

Репутация: -  1  +


нужно решить уравнение методом простых итераций. Задачу нашла на форуме в FAQ


сделала по образцу, в итоге ошибка 205: Floating Point Overlow


program ITERAT;
uses crt;

const max_iter=100; {maksimal'noe chislo iteraciy}

var

i: integer;
x,x0,eps,M: real;

function F(x:real):real; {funkciya}

begin

F:= x*x + x + 0.09;
end;

begin {osnovnaya programma}
clrscr;
write('Vvedite priblijennoe znachenie x='); readln(x);
write('Vvedite tochnost vichisleniy eps='); readln(eps);

i:=0;
repeat
x0:=x;
x:=x0+F(x0);
inc(i);
writeln('---Iteraciya ' , i:3,' x=',x);
writeln('F(x)=' , F(x),' tochnost=' , abs(x-x0));
until (abs(x-x0)<=eps) or (i>max_iter);

if (abs(x-x0)<=eps) then writeln ('Otvet: X=' , x)
else writeln('OTVET NE NAYDEN!!! za ',max_iter:0,' shagov iteraciya ne soshlas');

end.





Про метод итераций читала, в принципе поняла, но если кто сможет рассказать доходчиво- буду очень благодарна.

Добавлено через 15 мин.
кстати,когда выдает ошибку - возращает меня на строку
Цитата
F:= x*x + x + 0.09;


Сообщение отредактировано: Ven - 9.10.2011 22:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 10.10.2011 13:54
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


ты что-то такое имеешь в виду?
  l:= Round(-ln(eps)/ln(10));
if (abs(x-x0)<=eps) then writeln ('Otvet: X=' , x:l+3:l)
else writeln('OTVET NE NAYDEN!!! za ',max_iter:0,' shagov iteraciya ne soshlas');

Только не забудь описать l, как целую переменную.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Ven   метод итераций по образцу с форума   9.10.2011 22:17
IUnknown   Значит, задаешь начальное приближение неверно. Пот...   9.10.2011 23:30
Ven   но и решения оно не выдает тоже(... Может подскаж...   10.10.2011 8:47
Lapp   но и решения оно не выдает тоже(... Ven, дело в т...   10.10.2011 9:49
IUnknown   но и решения оно не выдает тоже(... Правда? Vved...   10.10.2011 10:01
Lapp   Правда? ... То есть, -0.9 это уже не решение? Упс...   10.10.2011 10:23
Ven   Правда? Vvedite priblijennoe znachenie x=-1 Vved...   10.10.2011 13:25
Гость   Нажми Alt-F5 И еще совет: убери ужасный clrscr, то...   10.10.2011 13:28
Ven   Нажми Alt-F5 И еще совет: убери ужасный clrscr, т...   10.10.2011 13:34
Гость   Спасибо.А без Alt-F5 можно как нибудь вывести сраз...   10.10.2011 13:40
Ven   и еще. мне дали вот такую программу, но я в ней ос...   10.10.2011 13:42
Lapp   ты что-то такое имеешь в виду? l:= Round(-ln(eps...   10.10.2011 13:54
Ven   Огромное спасибо! :wub: Вы мне очень помогли)...   10.10.2011 14:10
Гость   Это снова я))) В общем программу я так и не сдала....   15.01.2012 20:04
Krjuger   Выложи полный код со всеми исправлениями,чтобы мы ...   15.01.2012 21:05
Гость   program ITERAT; uses crt; const max_iter=100; {m...   15.01.2012 21:20
Krjuger   Покажите примеры для которых у вас получаются разн...   15.01.2012 21:45
Гость   смысл в том что первые числа должны совпадать, вот...   16.01.2012 20:54
Ven   у меня такой последовательности не получается......   16.01.2012 20:58
IUnknown   Ven, я не понимаю, в чем проблема? Ты задаешь точн...   16.01.2012 21:12
Ven   я конечно понимаю что мне еще далеко до осознания ...   16.01.2012 21:17
Krjuger   Блин,уже все разъяснили,долго писал,удалите мой по...   16.01.2012 23:17
Ven   Еще подскажите пож-та. Тут вообще 2 корня:-0,9 и -...   17.01.2012 13:33
IUnknown   Можно: x0:=x; x:=x0-F(x0); // <--- внимательно...   17.01.2012 14:38
Ven   приближении = -1. а если нужно чтобы программа с...   17.01.2012 17:50
Krjuger   Ну как вариант ввести такую переменную,как a=1/f...   17.01.2012 19:34


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"