• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите написать программу на Паскале

anasteishen

Ученик
Регистрация
31 Мар 2013
Сообщения
1
Реакции
0
Баллы
0
Помогите написать программу на Паскале

Дано нелинейное уравнение 2-x*exp(x).[FONT=&quot][/FONT]
[FONT=&quot][/FONT]Реализовать на языке Pascal программы приближенного решения нелинейного уравнения методами простой итерации и методом Ньютона). В результате должны выводиться шаг, x, точность, погрешность и конечный х.
[FONT=&quot][/FONT]Найти решение с точностью 0.0001.
 
должны выводиться шаг...
Никаких "шагов" данные методы не предусматривают.
методами простой итерации
Код:
Const
 Eps=0.0001;

Var
 x,x_bef,d:real;

Function Fi(z:real):real;
begin
 Fi:=2*Exp(-z);
end;

Begin
 x_bef:=0;
 Repeat
  x:=Fi(x_bef);
  Writeln('x= ',x:5:3,'    x*Exp(x)= ',x*Exp(x):5:3);
  d:=Abs(x_bef-x);
  x_bef:=x;
 Until d<Eps;
 Writeln('Result: x= ',x:8:6);
 Readln
End.
и методом Ньютона
Код:
Const
 Eps=0.0001;

Var
 x,x_bef,d:real;

Function F(z:real):real;
begin
 F:=2.0-z*Exp(z);
end;

Function Der(z:real):real;
begin
 Der:=-(z+1)*Exp(z);
end;

Begin
 x_bef:=0;
 Repeat
  x:=x_bef-F(x_bef)/Der(x_bef);
  Writeln('x= ',x:5:3,'    x*Exp(x)= ',x*Exp(x):5:3);
  d:=Abs(x_bef-x);
  x_bef:=x;
 Until d<Eps;
 Writeln('Result: x= ',x:8:6);
 Readln
End.
 
Назад
Сверху