Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проверьте метод ньютона в программе, я знаю что он не правильный но не знаю как исправить

87K
27 декабря 2012 года
Leev
1 / / 27.12.2012
знаю что намудрила много, но никак не могу сообразить как правильно описать метод ньютона. помогите пожалуста
program metod ;
uses crt;
var
xn,xn1,a,b,c,mx,y0,x0,x,f,e :real;
k: text;
n: integer;
function f1(n: integer; x1:Real): Real;
begin
if n=1 then
f1 := x1*x1*x1*(-0.5)-0.05*x1*x1+0.8*x1+0.6
else
if n=2 then
f1:= 4*cos(x)+0.3*(x)
else
if n=3 then
f1:= ln(x)+sqr(x)
end;

function f2(n: integer; x4:Real): Real;
begin
if n=1 then
f2 := x4*x4*x4+0.5*x4*x4+0.1*x4*x4+0.4*x4-1.2
else
if n=2 then
f2:= -4*sin(x)+0.3
else
if n=3 then
f2:= 1/x+2*x
end;

procedure newton(f11, f22 :real; var m : real);
var xn,e:real;
begin
x:= (xn+1);
xn:= f(xn+1);
repeat
xn:= xn-f11(xn)/f22(xn);
until abs(f11)<e
end;

begin
assign (k,'x.txt');
rewrite(k);
writeln ('ïпрогрмма решения уравнений');
writeln('1. x*x*x+0.1x*x+0.4*x-1.2');
writeln('2.4*cos(x)+0.3*(x)');
writeln('3.ln(x)+sqr(x)');
writeln('введите номер уравнения ');
readln(n);
Writeln('левая граница : ');
ReadLn(a);
Write('правая граница : ');
ReadLn(b);
Write('точность: ');
ReadLn(c);
if f1(n, a)*f2(n, b)>0 then xn:=a
else xn:= b;

while abs(y0)>e do
Readln;
Writeln('конечные значения');
Writeln(' xn+1=',xn1,' f(xn+1)=',y0);
Writeln(k, ' xn+1=',xn1,' f(xn+1)=',y0);
close(k);
Readln;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог