1. Lucrarea de laborator №2
Metoda coardelor
Subiectul 1. Să se localizeze, aplicând metoda grafică, rădăcinile ecuaţiilor.
a) x 3 − 2 x 2 + 8 x − 3 = 0 ;
b) x 2 −4 sin 2 x = 0; .
a) x 3 − 2 x 2 + 8 x − 3 = 0 ;
y = x3
y = 2 x 2 − 8x + 3
plot(x^3-2*x^2+8*x-3,x=-5..5,y=-30..30);
plot([x^3,2*x^2-8*x+3],x=-5..5,y=-10..10);
f2:=x^3-2*x^2+8*x-3;
fsolve(f2,x);
f2 := x3 − 2 x2 + 8 x − 3
2. .4081471745
y = 4 sin 2 x
b)
2 = x 2
plot(x*x-4*sin(2*x),x=-5..5,y=-5..5);
plot([x*x,4*sin(2*x)],x=-5..5,y=-5..5);
f3:=x*x-4*sin(2*x);
fsolve(f3,x=-0.2..0.2);
fsolve(f3,x=0.3..2);
f3 := x2 − 4 sin( 2 x )
0.
1.338566375
3. Subiectul 2. Să se unifice într-un program metoda localizării rădăcinilor şi
metoda coardei II. Să se soluţioneze ecuaţiile de mai sus cu exactitatea E =10 −3 ,
evidenţiind numărul rădăcinilor, rădăcina şi segmentul care conţine rădăcina.
Program coardaIIlocal ;
Uses Crt;
Var a,b,c,h,x1,x2,e:real;
r:integer;
Function fnl(x:real):real;
Begin
fnl:=x*x*x-2*x*x-8*x-3;{x*x-4*sin(2*x);}
End;
Procedure CoardaII(c,d:real);
var k,k1,r1:real;
begin
k:=(c+d)/2;
repeat
k1:=k;
k:=(abs(fnl(c))*d+abs(fnl(d))*c)/(abs(fnl(c))+abs(fnl(d)));
if fnl(c)*fnl(d)<0 then d:=k else c:=k;
until abs(k1-k)<e;
r1:=(k1+k)/2;
write('Radacina este: ',r1:6:6);
readkey;
end;
Begin
ClrScr;
write('Introdu exactitatea e=');
readln(e);
WriteLn('Introdu extremitattile segmentului a si b, pasul
h');
ReadLn(a,b,h);
x1:=a;
x2:=x1+h;
While x2<=b Do
Begin
If fnl(x1)*fnl(x2)<0 Then begin
r:=r+1;
WriteLn(r,' radacina a ecuatiei apartine
intervalului:','[',x1:6:3,';',x2:6:3,']');
CoardaII(x1,x2);
end;
x1:=x2;
x2:=x1+h;
End;
ReadKey;
End.
Rezultatele:
a) introdu a,b si e
0.2
4. 0.5
0.1
r= 0.406
b) Introdu exactitatea e=0.001
Introdu extremitattile segmentului a si b, pasul h
-0.5
2
0.1
1 radacina a ecuatiei apartine intervalului:[-0.000; 0.100]
Radacina este: 0.000000
2 radacina a ecuatiei apartine intervalului:[ 1.300; 1.400]
Radacina este: 1.336811
Subiectul 3. Să se alcătuiască un program PASCAL pentru metoda coardei I. Să
se determine cea mai mare rădăcină, pentru prima ecuaţie din subiectul 1, cu
exactitatea E =10 −3 .
program coard1;
uses crt;
var a,b,e,x,x1,y,m:real;
function f(x:real):real;
begin
fnl:=x*x*x-2*x*x-8*x-3;{x*x-4*sin(2*x);}
end;
begin
clrscr;
writeln('introdu a,b si e');
readln(a,b,e);
x:=(a+b)/2;
m:=(f(a+2*e)-2*f(a+e)+f(a))/sqr(e);
if f(a)*m>0 then y:=a else y:=b;
while abs(x1-x)>e do
begin
x1:=x-(f(x)*(y-x))/(f(y)-f(x));
x:=x1;
end;
writeln('r=',(x1+x)/2:6:3);
readkey;
end.
Rezultatele:
a) Introdu exactitatea e=0.0001
Introdu extremitattile segmentului a si b, pasul h
-1
1
0.1
1 radacina a ecuatiei apartine intervalului:[ 0.400; 0.500]
Radacina este: 0.408185
b) introdu a,b si e
-0.5
0.5 0.01