Sunteți pe pagina 1din 9

Lucrare practic

La informatic

Tema : Elaborarea programelor de rezolvare a ecuaiilor


algebrice prin metoda biseciei.

A elaborat
Elevul(a) clasei a 12 A
Guan Alexandru

Chiinu 2014

Scopul lucrarii:
1. S separe toate rdcinele reale ale ecuaiilor F(x)=0, unde y=F(x)
funcie real cu valori reale.
2. S precizeze rdcina obinut cu exactitate eps=0,00001, cu ajutorul
metodei biseciei i a coardelor.

3.

Concluzia.

Ecuaiile: F1:= sqr(x)*x-26*x+43=0


F2:= sqr(x)+5*sinx=0

METODA BISECIEI
Una dintre cele mai simple metode de determinarea a unei soluiei
a ecuaiei f(x)=0 este metoda biseciei. Metoda presupune determinare

punctului de mijloc C al segmentului [a,b], apoi calculul valorii


f(c). Dc f(c)=0, atunci c este solutia exact a ecuatiei. In caz
contrar , solutia este cutat pe unul dintre segmente [a,c] i
[c,b].Ea va aparine segmentul pentru care semnul funciei in
extremitai este diferit

F1:= sqr(x)*x-26*x+43=0

Program P1;
var a,b,c:real;
i,n:integer;
function f(x:real):real;
begin f:= sqr(x)*x-26*x+43;end;
begin
clrscr;
a:=0;b:=1;n:=8;
for i:=1 to n do
begin c:=(b+a)/2;
writeln(`i=`, i:3,`x=`, c:10:8,`f(x)=` , f(c):12:8);
if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else b:=c;
end;
end.
Rezultat:
i=1 x=0.50000000
i=2 x=0.75000000
i=3 x=0.87500000
i=4 x=0.93750000
i=5 x=0.96875000
i=6 x=0.98437500
i=7 x=0.99218750
i=8 x=0.99609375

f(x)= 30.12500000
f(x)= 23.92187500
f(x)= 20.91992188
f(x)= 19.44897461
f(x)= 18.72164917
f(x)= 18.36010361
f(x)= 18.17987013
f(x)= 18.08988947

F2:= sqr(x)+5*sinx=0
Program P2;
Var a,b,c,eps:real;
function f(x:real):real;
begin f:= sqr(x)+5*sin(x);end;
begin
a:=2;b:=4;eps:=0.00001;
repeat
c:=(b+a)/2;
writeln (`x=`, c:10:8,` f(x)=` ,f(c):12:8);
if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else b:=c;
until abs(b-a)<eps;
end.

Rezultat:
x=3.00000000
x=3.50000000
x=3.75000000
x=3.87500000
x=3.93750000
x=3.96875000
x=3.98437500
x=3.99218750

f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=

9.70560004
10.49608386
11.20469341
11.66860087
11.93141269
12.07092679
12.14275740
12.17919673

Metoda coardelor
Metoda coardelor const in divizarea segmentului in pri proporionale,
proporia fiind dat de punctul de intersecie al coardei care unete
extremitile segmentului cu axa Ox. Aceasta metoda presupune alegerea in
calitate de aproximare a soluiei punctul determinat de interesecia dreptei
ce trece prin punctele (a,f(a)) si (b,f(b)) cu axa Ox. Pentru realizarea
metodei se stabilete extremitatea e a segmentului [a,b] prin care se va
duce o serie de coarde .Aceasta extremitate este determinat de condiia :
f(e)*f(e)>0.
Cealalt extremitate a segmentului [a,b] se consider aproximarea iniial
asoluiei.

F1:= sqr(x)*x-26*x+43
Program P3;
var a,b,c,e,x:real;
i,n:integer;
function f(x:real):real;
begin f:=sqr(x)*x-26*x+43;end;
begin a:=0.5;b:=1.5;n:=8;
{determinarea extremitatii fixe e si a aproximarii initiale x0}
c:=a-(f(a))/(f(b)-f(a))*(b-a);
If f(c)*f(a)>0 then begin e:=b ; x:=a; end
Else begin e:=a; x:=b; end;
{calculul iterativ al solutiei}
For i:=1 to n do
begin x:= (x-f(x))/(f(e)-f(x))*(e-x);
writeln (x:10:8,` `,f(x):12:8);
end;
end.

Rezultat:
x=1.30219780
x=0.49991687
x=1.30228183
x=0.49983384
x=1.30236574
x=0.49975093
x=1.30244955
x=0.49966813

f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=
f(x)=

11.35101885
30.12709910
11.34926165
30.12919546
11.34750683
30.13128906
11.34575438
30.13337991

F2:= sqr(x)+5*sin(x)
Function f(x:real):real;
Begin
F:= sqr(x)+5*sin(x);
End;
Begin
A:=-0.5;b:=0.5;eps:=0.00001;
Msup:=10;minf:=5;
X:=a-(f(a))/(f(b)-f(a))*(b-a);
If f(x)*f(a)>0 then begin e:=b; xnou:=a; end
Else begin e:=a; xnou:=b; end;
Repeat
Xvechi:=xnou;
Xnou:=xvechi-(f(xvechi))/(f(e)-f(xvechi))*(e-xvechi);
Writeln('x=', xnou:10:8,'f(x)=',f(xnou):12:8);
Until abs((Msup-minf)/minf*(xnou-xvechi))<eps;
End.

Rezultat:
x=-0.05214574f(x)=
x=-0.00312932f(x)=
x=-0.00017475f(x)=
x=-0.00000972f(x)=
x=-0.00000054f(x)=

-0.25789138
-0.01563680
-0.00087372
-0.00004858
-0.00000270

Metoda Newton
Metoda const in aproximarea rdcinii precise cu abscisa punctului de
intersectie a punctului cu a x a Ox, care este dusa la curba f(x)
in punctul k cu coordonatele { xk ,f(xk )} alese n mod corespunztor.

Program Newton;
Var a,b,c,x:real;
i,n:integer;
Function f(x:real):real;
Begin f:=sqr(x)*x-26*x+43;
end;
Function f1(x:real):real;
Begin
F1:=3*sqr(x)+4;
end;
begin a:=-1; b:=0; n:=6;
c:=a-f(a)/(f(b)-f(a)*(b-a));
if f(c)*f(a)>0 then x:=a else x:=b;
while i<n do
begin i:=i+1; x:=x-f(x)/f1(x); end;
writeln ('x=',x:15:12, 'f (x)=',f(x):15:12); readln ;
END.

Rezultat:

x=-5.811807462368 f(x)=-2.199042568075

Concluzia:
n urma nfaptuirii acestei lucrri practice am analizat metoda
Biseciei folosind Turbo Pascal. Am studiat modul de cautare i
afiare.
Metoda Biseciei este una dintre cele mai sinmple metode de
determinare a unei soluii a ecuaiei F(x)=0,ea pesupune
determinarea punctului de mujloc(c) alunui segment([a,b]), apoi
calculul valorii funciei n acest punct(F(c)).