Extras din referat
Exemplu
Fie dată funcţia f(x) = x3 – 0,2x3+ 0,2x – 2,1
Să se calculeze soluţia aproximativă a ecuaţiei f(x) = 0 pe segmentul [1; 2] pentru 10,20,30 aproximări succesive, utilizînd metoda coardelor.
Programul
Pentru n=10
program cn07;
var a,b,e,c,x: real;
n,i: integer;
function f(x:real):real;
begin f:=x*x*x+0.2*x*x-2.1;end;
begin a:=1; b:=2; n:=10;
{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=',x:10:8,'f(x)=',f(x):12:8);
end;
end.
Rezultate:
x=1.11842105f(x)= -0.45083239
x=1.17400120f(x)= -0.20624323
x=1.19866826f(x)= -0.09038563
x=1.20933464f(x)= -0.03886179
x=1.21389427f(x)= -0.01657125
x=1.21583376f(x)= -0.00704129
x=1.21665701f(x)= -0.00298742
x=1.21700613f(x)= -0.00126667
x=1.21715413f(x)= -0.00053692
x=1.21721686f(x)= -0.00022757
pentrun=20
program cn07;
var a,b,e,c,x: real;
n,i: integer;
function f(x:real):real;
begin f:=x*x*x+0.2*x*x-2.1;end;
begin a:=1; b:=2; n:=20;
{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=',x:10:8,'f(x)=',f(x):12:8);
end;
end.
Preview document
Conținut arhivă zip
- Metoda coardelor.docx