topotuno
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору program ITERAT; {uses crt;} const max_iter=100; {???????????? ?????????? ????????} var i :integer; x,x0,eps,M :real; function F(x:real):real; {функция} begin F:=5*x*x-exp(1-x)-4; end; begin {основная программа} clrscr; write('Введите приближенное значение x='); readln(x); write('Введите точность вычислений eps='); readln(eps); i:=0; repeat M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости} x0:=x; x:=x0+F(x0)/M; {сердце метода итераций} inc(i); writeln('--- Итерация ',i:3,' x=',x); writeln('F(x)=',F(x),' точность=',abs(x-x0)); until (abs(x-x0)<=eps)or(i>max_iter); if (abs(x-x0)<=eps) then writeln('Ответ: X=',x) else writeln('Ответ не найден! За ',max_iter:0,' шагов итерация не сошлась.'); end. | Всего записей: 315 | Зарегистр. 28-10-2006 | Отправлено: 16:45 13-04-2008 | Исправлено: topotuno, 17:04 13-04-2008 |
|