![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
необходимо написать код в delphi для решения уравнения методом Ньютона.
3ln^2(x) + 6ln(x) - 5 = 0 |
|
#2
|
|||
|
|||
|
А где ваши наработки?
|
|
#3
|
|||
|
|||
|
абсолютно не представляю как этот метод программируется!
|
|
#4
|
||||
|
||||
|
а что за метод такой? в чем суть?
а вообще очень похоже на квадратное уравнение если заменить 3ln(x) на z ![]() |
|
#5
|
|||
|
|||
|
если решать как квадратное то получается вроде
Код:
..... var ..... t1, t2, x1, x2:real; ........ procedure.......button1....... begin t1:=(-5+sqrt(97))/6; t2:=-((-5+sqrt(97))/6) x1:=exp(ln(t1)); x2:=exp(ln(1/t1)) ; edit1.text:=floattostr(x1); edit2.text:=floattostr(x2); end; вроде компилируется.но правильно ли работает неизвестно.и...это рассчетка в институт,поэтому нужен именно ньютон.к тому же тут много в голове считается. |
|
#6
|
|||
|
|||
|
А что, гугл отключили:
http://ru.wikipedia.org/wiki/%D0%A7%...%D0%B8%D0% B9 |
|
#7
|
|||
|
|||
|
написал код
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,n,t,result,result1:real;
implementation
function f(i:real):real;
begin
result:=3*sqr(ln(i))-6*ln(i)+5;
end;
function d(i:real):real;
begin
result1:=(6*(ln(i)-1)/i);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var eps:real;
begin
eps:=0.0001;
i:=strtofloat(edit1.text);
n:=0;
repeat
t:=f(i)/d(i);
i:=i-t;
memo1.lines.add('x'+floattostr(n)+floattostr(i));
n:=n+1;
until abs(f(i))<eps;
end;
end.компилируется.но при выполнении возвращает ошибку деление на ноль.это только при нахождении t может быть.но почему и как исправить.подскажите Последний раз редактировалось Admin, 10.11.2010 в 18:50. |