Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2012, 16:35   #1
fariou73
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 13
По умолчанию Метод Ньютона

Ребят делаю программу решения уравнений методом Ньютона. Нужно по вводу данных и выбору 1 из 4 уравнений вывести ответ. 3 из 4 уравнений либо вобще не работают либо работают коряво, кто может помочь исправить?
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,math;

type
TForm1 = class(TForm)
lbl1: TLabel;
edit1: TEdit;
edit2: TEdit;
lbl2: TLabel;
edit3: TEdit;
cbb1: TComboBox;
lbl3: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);

private

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
function F(x:real):real;
begin
F:=Power(x,2)-sin(x);
end;
function F1(x:real):real;
begin
F1:=2*x-cos(x);
end;
function F3(x:real):real;
begin
F3:=power(x,4)+power(x,2)+x+1;
end;
function F4(x:real):real;
begin
F4:=4*power(x,3)+x*2+1;
end;
function F5(x:real):real;
begin
F5:=power((x-4),2)+ln(x);
end;
function F6(x:real):real;
begin
F6:=2*(x-4)+1/x;
end;
function F7(x:real):real;
begin
F7:=Power(2.71828183,x)+1/x;
end;
function F8(x:real):real;
begin
F8:=x*power(2.71828183,x-1)-(1/power(x,2));
end;



procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;xk,xk1,a,b,e,y:Extended ;
begin
a:=StrTofloat(edit1.text);
b:=StrToFloat(edit2.text);
e:=StrToFloat(edit3.text);
xk:=a;
if cbb1.text='f(x)=x^2-sin(x)' then begin
y:=F(xk);
while abs(y)>e do
begin
xk1:=xk-F(xk)/F1(xk);
xk:=xk1;
y:=F(xk1);
end;
end;
if cbb1.text='f(x)=x^4+x^2+x+1' then begin
y:=F3(xk);
while abs(y)>e do
begin
xk1:=xk-F3(xk)/F4(xk);
xk:=xk1;
y:=F3(xk1);
end;
end;
if cbb1.text='f(x)=(x-4)^2+ln(x)' then begin
y:=F5(xk);
while abs(y)>e do
begin
xk1:=xk-F5(xk)/F6(xk);
xk:=xk1;
y:=F5(xk1);
end;
end;
if cbb1.text='f(x)=e^x+1/x' then begin
y:=F7(xk);
while abs(y)>e do
begin
xk1:=xk-F7(xk)/F8(xk);
xk:=xk1;
y:=F7(xk1);
end;
end;
showmessage('x*= '+floatToStr(xk1));
ShowMessage('При производной от (xn): '+FloatToStr(y));



end;
end.
fariou73 вне форума Ответить с цитированием
Старый 24.04.2012, 16:45   #2
fariou73
Пользователь
 
Регистрация: 07.12.2011
Сообщений: 13
По умолчанию

Очень нужна помощь ребят
fariou73 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы оптимизации: метод Ньютона и метод наискорейшего спуска ruslanGacurap Помощь студентам 0 30.01.2012 13:54
Метод Ньютона lordsyrius Помощь студентам 5 23.11.2009 23:52
Метод Ньютона NoHeart Паскаль, Turbo Pascal, PascalABC.NET 20 04.06.2009 16:29
Метод Ньютона Cubar Помощь студентам 12 09.02.2008 21:28