Численный метод половинного деления

Проект «Приближенное решение уравнений» на языке Delphi

Задача. Найти корень уравнения х3 – cos x = 0 приближенными методами (графическим и численным методом деления числового отрезка аргумента пополам).

Графический метод.

Формальная модель задана уравнением, для нахождения корня уравнения разработаем компьютерную модель на языке Delphi

1. var

Form1: TForm1;

x:real;

y:real;

n:integer;

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

with Image1.Canvas do

  begin

// график функции

x:=-3;

while x<3 do

begin

x:=x+0.001;

y:=x*x*x-cos(x);

pixels[round(100*x)+200,200-

round(20*y)]:=clblack;

end;

moveto(0,200); lineto(500,200);//ось х

moveto(250,0); lineto(250,500);//ось у

  //шкала оси х

N:=0;

while n<500 do

begin

n:=n+100;

moveto(n,190); lineto(n,210);

textout(n,200,floattostr(round(n-250)/50));

end;

  //шкала оси у

N:=0;

while n<400 do

begin

n:=n+100;

moveto(245,400-n); lineto(255,400-n);

textout(245,400-n,

floattostr(round((n-200)/10)));

end;

end;

end;

end.

 

end;

2. График функции пересекает ось Х один раз и, следовательно, уравнение имеет один корень. По графику грубо приближенно можно определить, что х» 0,8.

 

Численный метод половинного деления.

3. Поместить на форму:

- два текстовых поля Edit1, Edit2 для ввода числовых значений концов числового отрезка А и В;

- текстовое поле Edit3 для ввода точности вычислений;

- метку Label4 для вывода значений корня;

- метки Label1, Label2, Label3 и Label5 для надписей к полям и метке.

 

4. Поместить на форму кнопку Button2 и создать событийную процедуру TForm1.Button2Click(Sender: TObject). Ввести программный код, позволяющий вычислить корень уравнения методом половинного деления с использованием цикла с постусловием, который будет выполняться пока выполняется условие (В-А)/2>E;

var

 A:real;

B:real;

C:real;

E:real;

procedure TForm1.Button2Click(Sender: TObject);

begin

A:=strtofloat(Edit1.Text);

B:=strtofloat(edit2.Text);

E:=strtofloat(edit3.Text);

repeat

c:=(a+b)/2;

if (a*a*a -cos(a))*(c*c*c-cos(c))<0

  then b:=c

  else a:=c

until (b-a)/2<e;

label4.Caption:=floattostr((a+b)/2)

end;

 

5 Из графика функции видно, что корень находится на отрезке [0;1]. Введем в текстовые поля значения концов числового отрезка, а так же точность вычислений 0,00001. На метку будет выведено значение корня с заданной точностью: х» 0,86547.

 

 

 

Самостоятельно создать проект на Delphi, который позволяет найти корень уравнения х3 = sin x.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: