Sunteți pe pagina 1din 4

Laborator 1

MetodaBisectiei
3

1.. x + x 1000=0
X

0
8
9
10

=1
1
1
1

a1=
1

a2=
1

a3=-1000

8
0
10

65
82
10

-480
-262
10

f(x) 0,01
x (9,10]
f(9)=-262
f(10)=10
a=9 si b=10
x1=

a+b
9+10
=
=9,
2
2

x1-a=9,5-9=9>
f(x1)=f(9,5)= 9,5

+9,5-1000=875,375+9,5-1000=-183,12

f(x1)*f(b)=f(9,5)*f(10)<0
f(x1)*f(a)=f(9,5)*f(9)>0
x1.b=[9,5;10]
x2=

10+ 9,5
=9,75
2

x2-x1=9,75-9,5=0,25>
f(x2)=f(9,75)=9,75+9,75-100-=926,8593+9,75-1000=-63,3907
f(x2)*f(x1)=f(9,5)*f(9,75)>0
x3=

x 2+b
10+ 9,75
=
=9,875
2
2

x3-x2=9,875-9,75=0,125>
f(x3)=f(9,875)=(9,875)+9,875-1000=-27,158
f(x3)*f(x2)=f(9,875)*f(9,75)>0
x4=

a+ x 3
10+ 9,875
=
=9,9375
2
2

x4-x3=9,9375-9,875=0,0625>
f(x4)=f(9,9375)= 9,9375

+9,9375-1000=981,3669+9,6875-1000=-8,6956

f(x4)*f(x3)=f(9,9375)*f(9,875)>0
x5=

bx 4
10+ 9,9375
=
=9,96875
2
2

x5-x4=9,96875-9,9375=0,0312>
f(x5)=f(9,96875)= 9,96875

+9,96875-1000=990,6393+9,96875-1000=0,6228

f(x5)*f(x4)=f(9,96875)*f(9,9375)<0
x6=

x 4+x5
9,9375+ 9,96875
=
=9,9531
2
2

x6-x5=9,9531-9,96875=0,0156>
Solutia este 9,9666

2.MetodaBisectiei

x 3 +x-1000-0
usescrt;
consteps=1.0e-3;
var
a,b,x:real;
function f(x:real):real;
begin

f:=x*x*x+x-1000
end;
procedure bisect(a,b:real;var x:real);
var n:integer;
begin
if abs(f(a))<eps then x:=a
else
if abs(f(b))<eps then x:=b
else
begin
writeln('eroareeps=',eps:6:4);
writeln;
writeln('n

a(n)

b(n)

x(n)

f(xn)

bn-an');

repeat
x:=(a+b)/2;
inc(n);
writeln(n:2,a:10:4,b:10:4,x:10:4,f(x):10:4,abs(b-a):10:4);
{severificaconditia de alegere a intervalului de injumatatire}
if f(a)*f(x)<0 then b:=x
else
a:=x;
until (abs(b-a)<eps) and (abs (f(x))<eps);
end;
end;
begin
writeln('MetodaBisectiei');
writeln('capeteleintervalului');

write('a=');
read(a);
write('b=') ;
read(b);
writeln('f(a)=',f(a):0:0,' ; ' ,'f(b)=',f(b):0:0);
if f(a)*f(b)>0.0 then
writeln('radacina nu e in intervalul [',a:6:2,',',b:2,']')
else
begin
bisect(a,b,x);
writeln;
writeln('radacinaaproximativaeste x=',x:10:5);
end;
readln
end.

S-ar putea să vă placă și