Показать сообщение отдельно
Старый 06.06.2011, 17:48   #5 (permalink)
Дима Коренюгин
Новичок
 
Регистрация: 25.05.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Рушение квадратного уравнения методом ньютона

Помогите пожалуйста с программой. Тема решение квадратных уравнений методом ньютона. вот что у меня получилось:
program Newton;
uses crt; {модуль управления экраном}

function f(x:real):real; {Исходная функция}
begin
f:=3*sqr(x)-4*x-2;
end;

function f1(x:real):real; {Первая производная функции}
begin
f1:=6*x-4;
end;

var a,b,c,x₀,e,en:real;
i:integer;

begin
clrscr; {очистить экран}
writeln ('Решение нелинейного уравнения методом Ньютона');
readln (a,b,c,x₀, Ɛ);
writeln ('Уравнение 3x^2-4x-2=0');
write ('Введите требуемую точность решения:');
read (e);
writeln ('Решение:');
writeln ('Номер шага Значение X');
en:=abs(a-b);
x₀:=b;
i:=1;
while (abs(en)>e) do begin {Пока не достигнута точность}
x₀:=x₀-f(x₀)/f1(x₀); {выполнить шаг метода}
writeln (i:10,x₀:20:14); {вывести значение X с шага}
en:=abs(x₀-b); {Новая точность}
b:=x₀; {Значение границы для следующего шага}
i:=i+1; {Номер шага}
end;
end.

Помогите пожалуйста, скажите что не так, так Нужно как то преобразовать производную (f'=2ax+b) в нужную форму и если не ошибаюсь записать её куда то сюда
x₀:=x₀-f(x₀)/f1(x₀); {выполнить шаг метода}
writeln (i:10,x₀:20:14); {вывести значение X с шага}

Замечание:
Дима, у Вас же есть своя тема по этой задаче - за каким дьяволом Вы лезете в чужие?
Сообщение перемещно.
Модератор.
Дима Коренюгин вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070