![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уравнение 0.1+ln(1+x)-sin(1+x) [D7, XP]
Fassy © (2011-03-13 22:57:00)нужно решить методом Ньютона и итераций,
я коды прописал, но метод Ньютона не всегда работает (не для всех отрезков заданных а и б)(не могу понять почему(((), а метод итераций при любых заданияях х0 выдаёт ошибку Floating Point Operation... выражал x и через экспоненту и через арксинус(((
Если нужны будут коды, то могу написать(((
Заранее благодарен.
Добавлено 58 минут назад
Метод Ньютона (касательных):
procedure TForm1.Button3Click(Sender: TObject);
var x,m,v,i:real; n:integer;
begin
a:=strtofloat(Edit1.text);
If a<=-1 then
begin
ShowMessage(ошибка');
Exit;
end;
b:=strtofloat (Edit2.Text);
if f1(a)*f1(b)<0 then
begin
if f1(b)*f3(b)>0 then begin
n:=0;
x:=b;
repeat
n:=n+1;
b:=x;
x:=b-f1(b)/f2(b);
m:=f1(x);
until
Abs(m)<e;>0 then begin
n:=0;
x:=a;
repeat
n:=n+1;
a:=x;
x:=a-f1(a)/f2(a);
m:=f1(x);
until abs(m)
Добавлено 57 минут назад
Метод Итераций с заданным приближённым корнем:
procedure TForm1.Button4Click(Sender: TObject);
var x,x0: real;
n: integer;
begin
n:=0;
x:=strtofloat(Edit11.Text);
if abs(f2(x))<1 then
begin
repeat
n:=n+1;
x0:=x;
x:=arcsin(ln(x+1)+0.1)-1;
until E>abs(x-x0);
Edit9.text:=inttostr(n);
Edit10.text:=Format('%8.5F',[x]);
end
else
Edit10.text:='не сходится';
end;
end.
Fassy (2011-03-14 00:02:00) [1]Удалено модератором
Inovet (2011-03-13 23:59:00) [2]> [5] Inovet © (13.03.11 23:57)
Да пребудет с тобой сила джадаев - indents, Luke!
Inovet (2011-03-13 23:57:00) [3]> [4] Fassy (13.03.11 23:39)
> что вы имели ввиду?
Например
Метод касательных:
procedure TForm1.Button3Click(Sender: TObject);
var x,m,v,i:real; n:integer;
begin
a:=strtofloat(Edit1.text);
If a<=-1 then
begin
ShowMessage(ошибка');
Exit;
end;
b:=strtofloat (Edit2.Text);
if f1(a)*f1(b)<0 then
begin
if f1(b)*f3(b)>0 then begin
n:=0;
x:=b;
repeat
n:=n+1;
b:=x;
x:=b-f1(b)/f2(b);
m:=f1(x);
until
Abs(m)<e;>0 then begin
n:=0;
x:=a;
repeat
n:=n+1;
a:=x;
x:=a-f1(a)/f2(a);
m:=f1(x);
until abs(m)
Метод Итераций с заданным приближённым корнем:
procedure TForm1.Button4Click(Sender: TObject);
var x,x0: real;
n: integer;
begin
n:=0;
x:=strtofloat(Edit11.Text);
if abs(f2(x))<1 then
begin
repeat
n:=n+1;
x0:=x;
x:=arcsin(ln(x+1)+0.1)-1;
until E>abs(x-x0);
Edit9.text:=inttostr(n);
Edit10.text:=Format('%8.5F',[x]);
end
else
Edit10.text:='не сходится';
end;
end.
Fassy (2011-03-13 23:39:00) [4]не понял
что вы имели ввиду?
Игорь Шевченко (2011-03-13 23:38:00) [5]use indents, Luke
Fassy (2011-03-13 23:29:00) [6]Метод касательных:
procedure TForm1.Button3Click(Sender: TObject);
var x,m,v,i:real; n:integer;
begin
a:=strtofloat(Edit1.text);
If a<=-1 then
begin
ShowMessage(ошибка');
Exit;
end;
b:=strtofloat (Edit2.Text);
if f1(a)*f1(b)<0 then
begin
if f1(b)*f3(b)>0 then begin
n:=0;
x:=b;
repeat
n:=n+1;
b:=x;
x:=b-f1(b)/f2(b);
m:=f1(x);
until
Abs(m)<e;>0 then begin
n:=0;
x:=a;
repeat
n:=n+1;
a:=x;
x:=a-f1(a)/f2(a);
m:=f1(x);
until abs(m)
Метод Итераций с заданным приближённым корнем:
procedure TForm1.Button4Click(Sender: TObject);
var x,x0: real;
n: integer;
begin
n:=0;
x:=strtofloat(Edit11.Text);
if abs(f2(x))<1 then
begin
repeat
n:=n+1;
x0:=x;
x:=arcsin(ln(x+1)+0.1)-1;
until E>abs(x-x0);
Edit9.text:=inttostr(n);
Edit10.text:=Format('%8.5F',[x]);
end
else
Edit10.text:='не сходится';
end;
end.
Inovet (2011-03-13 23:17:00) [7]Думаешь кому-то хочется читать неформатированный код? и ещё надо выделять с помощью тегов "код" кнопочка есть специальная.