Прошу проверить, вроде что-то не так.....
Найти корень уравнения 1.4(x) - x=0 ( (x) - это степень ) методом деления отрезка пополам для
x Е [1;3] с точностью е=0.001 и построить график функции y=1.4(x) - x на заданном интервале.
Заранее огромное спасибо.
Вот мой код!!!!!
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | Function F(x: real ): real ;
Begin
F:=POWER( 1.4 ,x)-x;
End ;
Procedure Graf;
Var
x1,x2: real ;
y1,y2: real ;
x,y: real ;
dx: real ;
l,b: integer ;
w,h: integer ;
mx,my: real ;
x0,y0: integer ;
Begin
l:= 10 ;
b:=form1 . Image1 . ClientHeight - 20 ;
h:=form1 . Image1 . ClientHeight - 40 ;
w:=form1 . Image1 . Width - 40 ;
x1:= 1 ;
x2:= 3 ;
dx:= 0.001 ;
y1:=f(x1);
y2:=f(x1);
x:=x1;
repeat
y:=f(x);
if y<y1 then y1:=y;
if y>y2 then y2:=y;
x:=x+dx;
until (x>=x2);
my:=h/ abs (y2-y1);
mx:=w/ abs (x2-x1);
x0:= 1 ;
y0:=b- abs (round(y1*my));
with form1 . Image1 . Canvas do
Begin
Moveto(l,b);lineto(l,b-h);
Moveto(x0,y0);lineto(x0+w,y0);
textout(l+ 5 ,b-h, floattostrf(y2,ffFixed, 6 , 3 ));
textout(l+ 5 ,b,floattostrf(y1,ffFixed, 6 , 3 ));
x:=x1;
repeat
y:=f(x);
pixels[x0+round(x*mx),y0-round(y*my)]:=clred;
x:=x+dx;
until (x>=x2);
end ;
end ;
|
Админ: Пользуемся тегами для оформления кода!