Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уравнение 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]

Думаешь кому-то хочется читать неформатированный код? и ещё надо выделять с помощью тегов "код" кнопочка есть специальная.


Наверх

Титульная страница Поиск, карта сайта Написать письмо