Sunteți pe pagina 1din 31

Lucrare de laborator Nr.

1
Localizarea rădăcinilor și metoda dihotomiei
Subiectul 1. Să se localizeze, aplicând metoda grafică, rădăcinile ecuației:
1) x 3−1.6 x 2−1.4 x +1.2=0
8
2) 6 lg x− =0.
x2
1.Construim graficul funcției x 3−1.6 x 2−1.4 x +1.2=0 pe segmentul [-1.5; 2.2]. Pentru
aceasta executăm comanda: Plot[x^3-1.6*x^2-1.4*x+1.2==0,{x,-1.5,2.2}]

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0

Observăm că ecuația x 3−1.6 x 2−1.4 x +1.2=0 intersectează axa Ox în trei puncte. Astfel
putem spune că rădăcinile ei sunt localizate pe segmentele [-1.5; -0.5], [0; 0.5], [1.5; 2.2].
Ecuația x 3−1.6 x 2−1.4 x +2.6=0 o scriem sub forma x 3=1.6 x 2+ 1.4 x−1.2. În continuare
pentru a localiza rădăcinile ecuației construim graficele următoarelor funcții:
y 1=x 3 , y 2 =1.6 x 2 +1.4 x−1.2 . Punctele de intersecție a graficelor respective vor reprezenta
soluțiile ecuației examinate.
Plot[{x^3,1.6*x^2+1.4*x-1.2},{x,-1.5,2.2}]

10

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0
2

4
Din graficul obținut observă că ecuația x 3−1.6 x 2−1.4 x +1.2=0 are trei soluții și care se
află pe localizate pe intervalele [-1.5; -0.5], [0; 0.5], [1.5; 2.2]. Aplicând softul Wolfram
Mathematica determinăm soluțiile ecuației studiate pe segmentul indicat.
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,-1.5,-0.5}]
{x→-1.}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,0,0.5}]
{x→0.6}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,1.5,2.2}]
{x→2.}

8
2.Construim graficul funcției 6 lg x−
=0, pentru aceasta executăm următoare comandă:
x2
Plot[6*Log10[x]-8⁄(x^2)==0,{x,2,2.1}]
8
Observăm că ecuația 6 lg x− 2 =0intersectează axa Ox într-un punct. Astfel putem spune că
x
rădăcina, în intervalul [2; 2.1], este localizată pe segmentul: [2; 2.1].
8 8
Ecuația 6 lg x− 2
=0 o scriem sub forma 6 lg x= 2 . În continuare pentru a localiza
x x

8
rădăcinile ecuației, construim graficele funcțiilor : y 1=6 lg x, y 2= . Punctele de intersecție a
x2
graficelor funcțiilor respective vor reprezenta soluțiile ecuației examinate.
Plot[{6*Log10[x],8⁄(x^2)},{x,2,2.1},PlotStyle→{Red,Blue}]
2 .0 0

1 .9 5

1 .9 0

1 .8 5

2 .0 2 2 .0 4 2 .0 6 2 .0 8 2 .1 0
8
Din graficul obținut observă că ecuația 6 lg x− =0a are o singură soluție pe intervalul [2;
x2
2.1]. Aplicând softul Wolfram Mathematica vom determina soluțiile ecuației studiate pe
segmentele identificate.
FindRoot[{6*Log10[x]-8⁄(x^2)==0},{x,2,2.1}]
{x→2.06064265993001}
Subiectul 2. Utilizând metoda analitică de localizare a rădăcinilor, să se verifice și să se
concretizeze segmentele care conțin rădăcinile ecuațiilor din subiectul 1, elaborând un program
Pascal.
Program localizare;
Uses Crt;
Var a, b, c, h, x1, x2, r: real;
Function fn1(x:real):real;
Begin
fn1:=x*x*x-1.6*x*x-1.4*x+1.2;
End;
Begin
Clrscr;
Writeln('Introduceti extremitatile segmentului a, b si pasul h');
Read(a,b,h);
x1:=a; x2:=x1+h; r:=0;
while x2 < b Do
Begin
if fn1(x1)*fn1(x2)<0 Then
Begin
r:=r+1;
Writeln(r:0:0,'.',' Radacina apartine intervalului:
','[',x1:0:4,'; ',x2:0:4,']');
End;
x1:=x2;
x2:=x1+h;
End;
Readkey;
End.
După lansarea programului vom obține:
Introduceti extremitatile segmentului a, b si pasul h
-1.5 2.2 0.001
1. Radacina apartine intervalului: [-1.0000; -0.9990]
2. Radacina apartine intervalului: [0.6000; 0.6010]
3. Radacina apartine intervalului: [2.0000; 2.0010]
Program localizare;
Uses Crt;
Var a, b, c, h, x1, x2, r: real;
function fn1(x:real):real;
Begin
fn1:=6*ln(x)/ln(10)-8/sqr(x);
End;
Begin
Clrscr;
Writeln('Introduceti extremitatile segmentului a, b si pasul h');
Read(a,b,h);
x1:=a; x2:=x1+h; r:=0;
while x2 < b Do
Begin
if fn1(x1)*fn1(x2)<0 Then
Begin
r:=r+1;
Writeln(r:0:0,'.',' Radacina apartine intervalului:
','[',x1:0:4,'; ',x2:0:4,']');
End;
x1:=x2;
x2:=x1+h;
End;
Readkey;
End.
După lansarea programului vom obține:
Introduceti extremitatile segmentului a, b si pasul h
2 2.1 0.001
1. Radacina apartine intervalului: [2.0600; 2.0610]

Subiectul 3. Să se unifice într-un program metoda localizării rădăcinilor și metoda


înjumătățirii. Să se soluționeze ecuațiile din subiectul 1, cu precizia E=10−3 evidenţiind numărul
rădăcinilor, rădăcina şi segmentul care o conține.
1. Program localizare_precizare;
Uses Crt;
Const e = 1E-4;
Var a, b, h, x1, x2, y1, y2: real;
r: integer;
Function fn1(x:real):real;
Begin
fn1:=x*x*x-1.6*x*x-1.4*x+1.2;
End;
Procedure Precizare(x1,x2: real);
var c, r1: real;
Begin
while Abs(x2-x1) > e Do
Begin
c:=(x1+x2)/2;
if Fn1(x1)*Fn1(c)<0 then x2:=c else x1:=c;
End;
r1:=(x2+x1)/2;
Writeln('Radacina este = ',r1:6:2);
End;
Begin
Clrscr;
Writeln('Localizarea si precizarea radacinilor: ');
Writeln('Introduceti extremitatile segmentului a, b si pasul h');
Read(a,b,h);
x1:=a; x2:=x1+h; r:=0;
while x2 < b Do
Begin
if fn1(x1)*fn1(x2)<0 Then
Begin
r:=r+1;
Writeln(r,'.',' Radacina apartine intervalului:','[',x1:0:4,';
',x2:0:4,']');
Precizare(x1,x2);
End;
x1:=x2;
x2:=x1+h;
End;
Readkey;
End.
Localizarea si precizarea radacinilor:
Introduceti extremitatile segmentului a, b si pasul h
-1.5 2.2 0.0001
1. Radacina apartine intervalului:[-1.0000; -0.9999]
Radacina este = -1.00
2. Radacina apartine intervalului:[0.6000; 0.6001]
Radacina este = 0.60
3. Radacina apartine intervalului:[2.0000; 2.0001]
Radacina este = 2.00

2. Program localizare_precizare;
Uses Crt;
Const e = 1E-4;
Var a, b, h, x1, x2, y1, y2: real;
r: integer;
Function fn1(x:real):real;
Begin
fn1:=6*ln(x)/ln(10)-8/sqr(x);
End;
Procedure Precizare(x1,x2: real);
var c, r1: real;
Begin
while Abs(x2-x1) > e Do
Begin
c:=(x1+x2)/2;
if Fn1(x1)*Fn1(c)<0 then x2:=c else x1:=c;
End;
r1:=(x2+x1)/2;
Writeln('Radacina este = ',r1:6:6);
End;
Begin
Clrscr;
Writeln('Localizarea si precizarea radacinilor: ');
Writeln('Introduceti extremitatile segmentului a, b si pasul h');
Read(a,b,h);
x1:=a; x2:=x1+h; r:=0;
while x2 < b Do
Begin
if fn1(x1)*fn1(x2)<0 Then
Begin
r:=r+1;
Writeln(r,'.',' Radacina apartine intervalului:','[',x1:0:4,';
',x2:0:4,']');
Precizare(x1,x2);
End;
x1:=x2;
x2:=x1+h;
End;
Readkey;
End.
Localizarea si precizarea radacinilor:
Introduceti extremitatile segmentului a, b si pasul h
2 2.1 0.0001
1. Radacina apartine intervalului:[2.0606; 2.0607]
Radacina este = 2.060625
Lucrare de laborator Nr. 2
Metoda coardelor
Subiectul 1. Să se localizeze, aplicând metoda grafică, rădăcinile ecuației:
1) x 3−1.6 x 2−1.4 x +1.2=0
8
2) 6 lg x− =0.
x2

1.Construim graficul funcției x 3−1.6 x 2−1.4 x +1.2=0 pe segmentul [-1.5; 2.2]. Pentru
aceasta executăm comanda: Plot[x^3-1.6*x^2-1.4*x+1.2==0,{x,-1.5,2.2}]

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0

Observăm că ecuația x 3−1.6 x 2−1.4 x +1.2=0 intersectează axa Ox în trei puncte. Astfel
putem spune că rădăcinile ei sunt localizate pe segmentele [-1.5; -0.5], [0; 0.5], [1.5; 2.2].
Ecuația x 3−1.6 x 2−1.4 x +2.6=0 o scriem sub forma x 3=1.6 x 2+ 1.4 x−1.2. În continuare
pentru a localiza rădăcinile ecuației construim graficele următoarelor funcții:
y 1=x 3 , y 2 =1.6 x 2 +1.4 x−1.2 . Punctele de intersecție a graficelor respective vor reprezenta
soluțiile ecuației examinate.
Plot[{x^3,1.6*x^2+1.4*x-1.2},{x,-1.5,2.2}]

10

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0
2

4
Din graficul obținut observă că ecuația x 3−1.6 x 2−1.4 x +1.2=0 are trei soluții și care se
află pe localizate pe intervalele [-1.5; -0.5], [0; 0.5], [1.5; 2.2]. Aplicând softul Wolfram
Mathematica determinăm soluțiile ecuației studiate pe segmentul indicat.
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,-1.5,-0.5}]
{x→-1.}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,0,0.5}]
{x→0.6}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,1.5,2.2}]
{x→2.}

8
2.Construim graficul funcției 6 lg x− =0, pentru aceasta executăm următoare comandă:
x2
Plot[6*Log10[x]-8⁄(x^2)==0,{x,2,2.1}]
8
Observăm că ecuația 6 lg x− 2 =0intersectează axa Ox într-un punct. Astfel putem spune că
x
rădăcina, în intervalul [2; 2.1], este localizată pe segmentul: [2; 2.1].
8 8
Ecuația 6 lg x− 2
=0 o scriem sub forma 6 lg x= 2 . În continuare pentru a localiza
x x

8
rădăcinile ecuației, construim graficele funcțiilor : y 1=6 lg x, y 2= . Punctele de intersecție a
x2
graficelor funcțiilor respective vor reprezenta soluțiile ecuației examinate.
Plot[{6*Log10[x],8⁄(x^2)},{x,2,2.1},PlotStyle→{Red,Blue}]
2 .0 0

1 .9 5

1 .9 0

1 .8 5

2 .0 2 2 .0 4 2 .0 6 2 .0 8 2 .1 0
8
Din graficul obținut observă că ecuația 6 lg x−
=0a are o singură soluție pe intervalul [2;
x2
2.1]. Aplicând softul Wolfram Mathematica vom determina soluțiile ecuației studiate pe
segmentele identificate.
FindRoot[{6*Log10[x]-8⁄(x^2)==0},{x,2,2.1}]
{x→2.06064265993001}

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 met_coardei_2;
Uses crt;
Var a,b,e,x,x1,r:real;

function fn1(x:real):real;
Begin
fn1:=x*x*x-1.6*x*x-1.4*x+1.2;
End;
Begin
Clrscr;
Writeln('Introduceti a, b, e');
Readln(a,b,e);
if fn1(a)*fn1(b)>0 then Begin
writeln('Ecuatia nu are solutii pe segmentul dat');
Readkey;
Exit
End;
x:=(a+b)/2;
Repeat
x1:=x;
x:=(abs(fn1(a))*b+abs(fn1(b))*a)/(abs(fn1(a))+abs(fn1(b)));
if fn1(a)*fn1(x)<0 then b:=x else a:=x;
until abs(x1-x)<e;
r:=(x1+x)/2;
write('Radacina este: ',r:6:2);
Readkey;
End.
Introduceti a, b, e
-1.5
2.2
0.0001
Radacina este: 2.00

Program met_coardei_2;
Uses crt;
Var a,b,e,x,x1,r:real;

function fn1(x:real):real;
Begin
fn1:=6*ln(x)/ln(10)-8/sqr(x);
End;
Begin
Clrscr;
Writeln('Introduceti a, b, e');
Readln(a,b,e);
if fn1(a)*fn1(b)>0 then Begin
writeln('Ecuatia nu are solutii pe segmentul dat');
Readkey;
Exit
End;
x:=(a+b)/2;
Repeat
x1:=x;
x:=(abs(fn1(a))*b+abs(fn1(b))*a)/(abs(fn1(a))+abs(fn1(b)));
if fn1(a)*fn1(x)<0 then b:=x else a:=x;
until abs(x1-x)<e;
r:=(x1+x)/2;
write('Radacina este: ',r:6:6);
Readkey;
End.

Introduceti a, b, e
2
2.1
0.0001
Radacina este: 2.060664

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 .
Lucrare de laborator Nr. 3
Metoda tangentelor
Subiectul 1. Să se localizeze, aplicând metoda grafică, rădăcinile ecuației:
1) x 3−1.6 x 2−1.4 x +1.2=0
8
2) 6 lg x− =0.
x2

1.Construim graficul funcției x 3−1.6 x 2−1.4 x +1.2=0 pe segmentul [-1.5; 2.2]. Pentru
aceasta executăm comanda: Plot[x^3-1.6*x^2-1.4*x+1.2==0,{x,-1.5,2.2}]

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0

Observăm că ecuația x 3−1.6 x 2−1.4 x +1.2=0 intersectează axa Ox în trei puncte. Astfel
putem spune că rădăcinile ei sunt localizate pe segmentele [-1.5; -0.5], [0; 0.5], [1.5; 2.2].
Ecuația x 3−1.6 x 2−1.4 x +2.6=0 o scriem sub forma x 3=1.6 x 2+ 1.4 x−1.2. În continuare
pentru a localiza rădăcinile ecuației construim graficele următoarelor funcții:
y 1=x 3 , y 2 =1.6 x 2 +1.4 x−1.2 . Punctele de intersecție a graficelor respective vor reprezenta
soluțiile ecuației examinate.
Plot[{x^3,1.6*x^2+1.4*x-1.2},{x,-1.5,2.2}]

10

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0
2

4
Din graficul obținut observă că ecuația x 3−1.6 x 2−1.4 x +1.2=0 are trei soluții și care se
află pe localizate pe intervalele [-1.5; -0.5], [0; 0.5], [1.5; 2.2]. Aplicând softul Wolfram
Mathematica determinăm soluțiile ecuației studiate pe segmentul indicat.
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,-1.5,-0.5}]
{x→-1.}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,0,0.5}]
{x→0.6}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,1.5,2.2}]
{x→2.}

8
2.Construim graficul funcției 6 lg x− =0, pentru aceasta executăm următoare comandă:
x2
Plot[6*Log10[x]-8⁄(x^2)==0,{x,2,2.1}]
8
Observăm că ecuația 6 lg x− 2 =0intersectează axa Ox într-un punct. Astfel putem spune că
x
rădăcina, în intervalul [2; 2.1], este localizată pe segmentul: [2; 2.1].
8 8
Ecuația 6 lg x− 2
=0 o scriem sub forma 6 lg x= 2 . În continuare pentru a localiza
x x

8
rădăcinile ecuației, construim graficele funcțiilor : y 1=6 lg x, y 2= . Punctele de intersecție a
x2
graficelor funcțiilor respective vor reprezenta soluțiile ecuației examinate.
Plot[{6*Log10[x],8⁄(x^2)},{x,2,2.1},PlotStyle→{Red,Blue}]
2 .0 0

1 .9 5

1 .9 0

1 .8 5

2 .0 2 2 .0 4 2 .0 6 2 .0 8 2 .1 0
8
Din graficul obținut observă că ecuația 6 lg x−
=0a are o singură soluție pe intervalul [2;
x2
2.1]. Aplicând softul Wolfram Mathematica vom determina soluțiile ecuației studiate pe
segmentele identificate.
FindRoot[{6*Log10[x]-8⁄(x^2)==0},{x,2,2.1}]
{x→2.06064265993001}

Subiectul 2. Să se alcătuiască un program Pascal pentru metoda Newton. Să se unifice într-


un program metoda localizării rădăcinilor și metoda Newton. 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 Newton;
Uses crt;
var e,x,t:real;
function fn1(x:real):real;
Begin
fn1:=x*x*x-1.6*x*x-1.4*x+1.2;
End;
Begin
Clrscr;
Writeln('Introduceti aproximatia initiala x, precizia e');
Readln(x,e);
Repeat
t:=(e*fn1(x))/(fn1(x+e)-fn1(x));
x:=x-t;
until abs(t)<e;
Writeln('Radacina este: ',x:8:2);
Readkey;
End.
Introduceti aproximatia initiala x, precizia e
2.2
0.0001
Radacina este: 2.00

Program Newton;
Uses crt;
var e,x,t:real;
function fn1(x:real):real;
Begin
fn1:=6*ln(x)/ln(10)-8/sqr(x);
End;
Begin
Clrscr;
Writeln('Introduceti aproximatia initiala x, precizia e');
Readln(x,e);
Repeat
t:=(e*fn1(x))/(fn1(x+e)-fn1(x));
x:=x-t;
until abs(t)<e;
Writeln('Radacina este: ',x:8:6);
Readkey;
End.
Introduceti aproximatia initiala x, precizia e
2.1
0.00001
Radacina este: 2.060643
Lucrare de laborator Nr. 4
Metoda mixtă a coardelor și tangentelor
Subiectul 1. Să se localizeze, aplicând metoda grafică, rădăcinile ecuației:
1) x 3−1.6 x 2−1.4 x +1.2=0
8
2) 6 lg x− =0.
x2

1.Construim graficul funcției x 3−1.6 x 2−1.4 x +1.2=0 pe segmentul [-1.5; 2.2]. Pentru
aceasta executăm comanda: Plot[x^3-1.6*x^2-1.4*x+1.2==0,{x,-1.5,2.2}]

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0

Observăm că ecuația x 3−1.6 x 2−1.4 x +1.2=0 intersectează axa Ox în trei puncte. Astfel
putem spune că rădăcinile ei sunt localizate pe segmentele [-1.5; -0.5], [0; 0.5], [1.5; 2.2].
Ecuația x 3−1.6 x 2−1.4 x +2.6=0 o scriem sub forma x 3=1.6 x 2+ 1.4 x−1.2. În continuare
pentru a localiza rădăcinile ecuației construim graficele următoarelor funcții:
y 1=x 3 , y 2 =1.6 x 2 +1.4 x−1.2 . Punctele de intersecție a graficelor respective vor reprezenta
soluțiile ecuației examinate.
Plot[{x^3,1.6*x^2+1.4*x-1.2},{x,-1.5,2.2}]

10

1 .5 1 .0 0 .5 0 .5 1 .0 1 .5 2 .0
2

4
Din graficul obținut observă că ecuația x 3−1.6 x 2−1.4 x +1.2=0 are trei soluții și care se
află pe localizate pe intervalele [-1.5; -0.5], [0; 0.5], [1.5; 2.2]. Aplicând softul Wolfram
Mathematica determinăm soluțiile ecuației studiate pe segmentul indicat.
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,-1.5,-0.5}]
{x→-1.}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,0,0.5}]
{x→0.6}
FindRoot[{x^3-1.6*x^2-1.4*x+1.2==0},{x,1.5,2.2}]
{x→2.}

8
2.Construim graficul funcției 6 lg x− =0, pentru aceasta executăm următoare comandă:
x2
Plot[6*Log10[x]-8⁄(x^2)==0,{x,2,2.1}]
8
Observăm că ecuația 6 lg x− 2 =0intersectează axa Ox într-un punct. Astfel putem spune că
x
rădăcina, în intervalul [2; 2.1], este localizată pe segmentul: [2; 2.1].
8 8
Ecuația 6 lg x− 2
=0 o scriem sub forma 6 lg x= 2 . În continuare pentru a localiza
x x

8
rădăcinile ecuației, construim graficele funcțiilor : y 1=6 lg x, y 2= . Punctele de intersecție a
x2
graficelor funcțiilor respective vor reprezenta soluțiile ecuației examinate.
Plot[{6*Log10[x],8⁄(x^2)},{x,2,2.1},PlotStyle→{Red,Blue}]
2 .0 0

1 .9 5

1 .9 0

1 .8 5

2 .0 2 2 .0 4 2 .0 6 2 .0 8 2 .1 0
8
Din graficul obținut observă că ecuația 6 lg x−
=0a are o singură soluție pe intervalul [2;
x2
2.1]. Aplicând softul Wolfram Mathematica vom determina soluțiile ecuației studiate pe
segmentele identificate.
FindRoot[{6*Log10[x]-8⁄(x^2)==0},{x,2,2.1}]
{x→2.06064265993001}

Subiectul 2. Să se unifice într-un program Pascal metoda localizării rădăcinilor și metoda


mixtă a coardelor și tangentelor. Să se soluționeze ecuațiile cu exactitatea E=10−4 , evidențiind
numărul rădăcinilor, rădăcina și segmentul care conține rădăcina.
Program mixta;
Uses crt;
Const e = 0.0001;
Var v,y,x,a,b,c,t,k,fn1,fn2:real;
function fn(x:real):real;
Begin
fn:=x*x*x-1.6*x*x-1.4*x+1.2;
End;
Begin
Clrscr;
write('Introdu prima extremitate a segmentului a = ');
Readln(a);
Write('Introdu a doua extremitate a segmentului b = ');
Readln(b);
x:=a;
y:=b;
fn1:=(fn(x+e)-fn(x))/e;
fn2:=(fn(x+e+e)-(2*fn(x+e))+fn(x))/sqr(e);
repeat
if fn1*fn2>0 then
Begin
k:=((fn(x)*(b-x))/(fn(b)-fn(x)));
x:=x-k;
v:=x;
t:=(e*fn(x))/(fn(x+e)-fn(x));
x:=x-t;
End
Else
Begin
k:=((fn(y)*(y-a))/(fn(y)-fn(a)));
y:=y-k;
v:=y;
t:=(e*fn(x))/(fn(x+e)-fn(x));
x:=x-t;
End;
Until Abs(v-x)<=e;
c:=(x+v)/2;
if (c<a) or (c>b) then
Begin
writeln('Ecuatia nu are radacini pe acest segment');
End
Else
Begin
writeln('Radacina = ',c:5:2);
writeln('Radacina dupa tangenta = ',x:5:2);
writeln('Radacina dupa coarda = ',v:5:2);
End;
Readkey;
End.
Introdu prima extremitate a segmentului a = -1.5
Introdu a doua extremitate a segmentului b = 2.2
Radacina = -1.00
Radacina dupa tangenta = -1.00
Radacina dupa coarda = -1.00

Program mixta;
Uses crt;
Const e = 0.0001;
Var v,y,x,a,b,c,t,k,fn1,fn2:real;
function fn(x:real):real;
Begin
fn:=6*ln(x)/ln(10)-8/sqr(x);
End;
Begin
Clrscr;
write('Introdu prima extremitate a segmentului a = ');
Readln(a);
Write('Introdu a doua extremitate a segmentului b = ');
Readln(b);
x:=a;
y:=b;
fn1:=(fn(x+e)-fn(x))/e;
fn2:=(fn(x+e+e)-(2*fn(x+e))+fn(x))/sqr(e);
repeat
if fn1*fn2>0 then
Begin
k:=((fn(x)*(b-x))/(fn(b)-fn(x)));
x:=x-k;
v:=x;
t:=(e*fn(x))/(fn(x+e)-fn(x));
x:=x-t;
End
Else
Begin
k:=((fn(y)*(y-a))/(fn(y)-fn(a)));
y:=y-k;
v:=y;
t:=(e*fn(x))/(fn(x+e)-fn(x));
x:=x-t;
End;
Until Abs(v-x)<=e;
c:=(x+v)/2;
if (c<a) or (c>b) then
Begin
writeln('Ecuatia nu are radacini pe acest segment');
End
Else
Begin
writeln('Radacina = ',c:5:6);
writeln('Radacina dupa tangenta = ',x:5:6);
writeln('Radacina dupa coarda = ',v:5:6);
End;
Readkey;
End.
Introdu prima extremitate a segmentului a = 2
Introdu a doua extremitate a segmentului b = 2.1
Radacina = 2.060662
Radacina dupa tangenta = 2.060641
Radacina dupa coarda = 2.060683
Lucrarea de laborator Nr. 8
Metoda Gauss - Jordan de soluționare a sistemului de n ecuații liniare cu n
necunoscute
Subiectul 1. Aplicând metoda Gauss-Jordan să se rezolve sistemul de ecuații liniare.
3 x +2 y+ z+t=3

{ x + y−z −t=4
4 x− y+5 z +t=−3
x+ y−z−2 t=5
Scriem sistemul de mai sus sub formă de matrice:

3 2 1 1 3
A=
(
1 1 −1
4 −1 5
−1 4
1 −3
1 1 −1 −2 5
)
−1
Considerăm ca pivot elementul a 11=3. Înmulțim prima linie la și o adunăm cu a doua
3
−4 −1
linie, înmulțim prima linie cu și o adunăm la a treia, înmulțim prima linie la și o adunăm
3 3
cu a patra. Toate rezultatele le înscriem și formăm matricea A1.

2 3 1 1 3

( )
1 −4 −4
0 3
3 3 3
A1= −11 11 −1
0 −7
3 3 3
1 −4 −7
0 4
3 3 3

Considerăm ca pivot elementul a 22. Vom înmulți linia a doua cu 11 și o vom aduna la a treia
linie, apoi înmulțim a doua linie la −1 și o adunăm la a patra linie. Astfel obținem următoarea
matrice A2.
3 2 1 1 3

A2=
( 0
0
0
1
3
0
0
−4 −4
3 3
3
−1 −15 26
0 −1 1
)
Considerăm ca pivot elementul a 44. Înmulțim linia a patra la 1 și o adunăm cu prima linie.
−4
Înmulțim linia a patra la și o adunăm cu a doua linie. Înmulțim linia a patra la −15 și o
3
adunăm cu a treia linie. În urmare obținem matricea A3.

3 2 1 0 4

A3 =
( 0
0
0
1 −4
3

0
3

0
0
5
3
0 −11 0 11
−1 1
)
1
Considerăm ca pivot elementul a 33. Înmulțim linia a treia la și o adunăm cu prima linie.
11
−4
Înmulțim linia a treia la și o adunăm cu a doua linie. În urmare obținem matricea A 4.
33

3 2 0 0 5

A 4=
( 0
0
0
1
3
0 0
1
3
0 −11 0 11
0 0 −1 1
)
Considerăm ca pivot elementul a 22. Înmulțim linia a doua la −6 și o adunăm cu prima linie.
În urmare obținem matricea A5.

3 0 0 0 3

A5 =
( 0
0
0
1
3

0
0

0
0
1
3
0 −11 0 11
−1 1
)
Împărțim fiecare rând al matricei la pivotul corespunzător și obținem matricea:

1 0 0 0 1
A= 0
0
0
( 1
0
0
0
1
0
0 1
0 −1
1 −1
)
În final obținem soluțiile sistemului de ecuații b): x=1 ; y=1 ; z=−1 ; t=−1.

Subiectul 2. Să se alcătuiască un program Pascal în care utilizând-se metoda Gauss-Jordan


să se rezolve sistemul de n ecuații liniare cu n necunoscute.
Lucrarea de laborator Nr. 10
Soluționarea sistemelor de n ecuații liniare cu n necunoscute după formulele lui
Cramer
Subiectul 1. Aplicând metoda Cramer să se rezolve sistemul de ecuații liniare.
2 x1 + x 2+ x3 −x 4=1

{ 3 x1 −x2 + x 3 + x 4=2
4 x 1 +2 x 2 + x 3−x 4 =1
x 4=2

Vom scrie sistemul de ecuații sub forma Ax=b, unde


2 1 1 −1 1

(
A= 3 −1 1 1 ; b=
4 2 1 −1
0 0 0 1
) [] 2
1
2
Pasul 0. Vom calcula determinantul matricei A prin descompunerea determinantului după
rândul 1.

2 1 1 −1
∆= 3 −1
|1 1
4 2 1 −1
0 0 0 1
| −1 1 1
|
3 1 1
| |
=2∙ (−1 ) ∙ 2 1 −1 +1∙ (−1 ) ∙ 4 1 −1 +1∙ (−1 )1+3
1+1

0 0 1
1+2

0 0 1 |
3 −1 1 3 −1 1
| 0 0 1 |
1+4

| |
∙ 4 2 −1 −1 ∙ (−1 ) ∙ 4 2 1 =−6+1+10+0=5 .
0 0 0

Pasul 1. Înlocuim coloana 1 a matricei A cu vectorul b.


1 1 1 −1

(
A1= 2 −1 1 1
1 2 1 −1
2 0 0 1
)
Vom calcula determinantul matricei A1 prin descompunerea determinantului după rândul 1.
1 1 1 −1

|
1 2 1 −1
2 0 0 1
|−1 1 1

0 0 1 | |
2 1 1
|
2 0 1 |
∆ 1= 2 −1 1 1 =1 ∙ (−1 )1 +1 ∙ 2 1 −1 +1 ∙ (−1 )1+2 ∙ 1 1 −1 + 1∙

2 −1 1 2 −1 1
∙ (−1 )
1+3

| 2 0 1 | |
1+ 4

|
∙ 1 2 −1 −1∙ (−1 ) ∙ 1 2 1 =−3+3+3−6=−3
2 0 0

Pasul 2. Înlocuim coloana 2 a matricei A cu vectorul b.


2 1 1 −1
A2= 3
4
0
( 2
1
2
1 1
1 −1
0 1
)
Vom calcula determinantul matricei A2 prin descompunerea determinantului după rândul 1.

2 1 1 −1
∆ 2= 3
4
0
| 2
1
2
|
1 1 =2 ∙ (−1 )1+1 ∙
1 −1
0 1
2 1 1

2 0 1 | | 1+2

|
3 1 1
|
1 1 −1 +1 ∙ (−1 ) ∙ 4 1 −1 + 1∙
0 0 1

3 2 1 3 2 1
∙ (−1 )
1+3

| | 1+ 4

| |
∙ 4 1 −1 −1∙ (−1 ) ∙ 4 1 1 =−6+1+ 9+2=6 .
0 2 1 0 2 0

Pasul 3. Înlocuim coloana 3 a matricei A cu vectorul b.

2 1 1 −1

(
A3 = 3 −1 2 1
4 2 1 −1
0 0 2 1
)
Vom calcula determinantul matricei A3 prin descompunerea determinantului după rândul 1.
2 1 1 −1

|
4 2 1 −1
0 0 2 1
| −1 2 1

0 2 1 |
3 2 1
|
0 2 1 |
∆ 3= 3 −1 2 1 =2 ∙ (−1 )1 +1 ∙ 2 1 −1 +1 ∙ (−1 )1+2 ∙ 4 1 −1 +1∙
|
3 −1 1 3 −1 1
∙ (−1 )
1+3

| 0 0 1 | 1+ 4

| |
∙ 4 2 −1 −1∙ (−1 ) ∙ 4 2 1 =−6−9+10+2 0=1 5 .
0 0 2

Pasul 4. Înlocuim coloana 4 a matricei A cu vectorul b.


2 1 1 1

(
A 4= 3 −1 1 2
4 2 1 1
0 0 0 2
)
Vom calcula determinantul matricei A 4 prin descompunerea determinantului după rândul 1.

2 1 1 1

| | −1 1 2
|
3 1 2
|
∆ 4= 3 −1 1 2 =2∙ (−1 )1+1 ∙ 2 1 1 +1 ∙ (−1 )1+2 ∙ 4 1 1 +1 ∙
4 2 1 1
0 0 0 2
0 0 2 0 0 2 | |
3 −1 2 3 −1 1
∙ (−1 )
1+3

| | 1+4

| |
∙ 4 2 1 −1∙ (−1 ) ∙ 4 2 1 =−12+2+2 0+0=10 .
0 0 2 0 0 0

Soluția sistemului de ecuații liniare:

∆1 −3
x1 = ;

{ {
x 1= ;
∆ 5
∆ 6
x2 = 2 ; x 2= ;
∆ ⇒ 5
∆3 15
x3 = ; x3 = =3 ;
∆ 5
∆ 10
x 4= 4 . x 4= =2.
∆ 5

Subiectul 2. Să se alcătuiască un program Pascal în care utilizând-se metoda Cramer să se


rezolve sistemul de n ecuații liniare cu n necunoscute.
program Cramer;
Uses crt;
type matrice = array[1..10,1..10] of real;
vector = array[1..10] of real;
var a,c : matrice;
n,i,j,i1,j1,q1,q2: integer;
determ : real;
d,x,b : vector;
Procedure Int_Matrice (var k : matrice);
var IntM : matrice;
begin
writeln ('Introdu elementele matricei: ');
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i,',',i,']='); readln(intM[i,j]);
end;
k:=intm;
end;
Procedure Afisare_Matrice(h : matrice);
begin
for i1:=1 to n do
begin
for j1:=1 to n do
write(h[i1,j1]:8:0); writeln;
end; end;
Procedure afisare_sistem(a : matrice; b : vector; n : integer);
var i,j : integer;
begin
for i:=1 to n do
begin
write(a[i,1]:5:2,' x',1);
for j:=1 to n do
write(' + ',a[i,j]:5:2,' x',j);
writeln(' = ',b[i]:5:2);
end;
readkey;
end;

Function Determinant(h : matrice):real;


var temp, det : real; t : boolean; iv,x,f:byte;
begin
det:=1;
for j:=1 to n-1 do
begin
iv:=j; t:=true;
while(iv <= n) and t do
if h[iv,j]=0 then iv:=iv+1
else t:=false;
if t then begin det:=0; exit; end; {daca toate
elementele de pe coloana iv, de la j la n sunt 0,
atunci determinantul este 0}
if j <> iv then
begin
det:=-det;
for x:=j to n do
begin
temp:=h[j,x];
h[j,x]:=h[iv,x];
h[iv,x]:=temp;
end; end;
for f:=j+1 to n do
for x:=j+1 to n do
h[f,x]:=h[f,x]-h[j,x]*h[f,j]/h[j,j];
end;
for j:=1 to n do det:=det*h[j,j];
determinant:=det;
end;
begin
clrscr;
writeln('Metoda Cramer');
write('Introduceti numarul de linii si coloane ale matricei
sistemului: ');
readln(n);
writeln('Introduceti elementele matricei sistemului:');
for i:=1 to n do begin
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]); end;
write('b[',i,']=');
readln(b[i]); end;
writeln('sistemul initial');
afisare_sistem(a,b,n);
writeln('are solutiile: ');
writeln('matricea A');
afisare_matrice(a);
determ:=determinant(a);
writeln('Determinantul este: ',determ:10:2);
for q1:=1 to n do begin
c:=a;
for q2:=1 to n do
c[q2,q1]:=b[q2];
writeln('Matricea D',q1);
afisare_matrice(c);
d[q1]:=determinant(c);
writeln('Dx',q1,'=',d[q1]:10:2);
if determ <> 0 then x[q1]:=d[q1]/determ; end;
for i:=1 to n do
writeln('x[',i,']=',x[i]:10:2);
readkey;
end.

După lansarea programului vom obține:


Metoda Cramer
Introduceti numarul de linii si coloane ale matricei sistemului: 4
Introduceti elementele matricei sistemului:
a[1,1]=2
a[1,2]=1
a[1,3]=1
a[1,4]=-1
b[1]=1
a[2,1]=3
a[2,2]=-1
a[2,3]=1
a[2,4]=1
b[2]=2
a[3,1]=4
a[3,2]=2
a[3,3]=1
a[3,4]=-1
b[3]=1
a[4,1]=0
a[4,2]=0
a[4,3]=0
a[4,4]=1
b[4]=2
sistemul initial
2.00 x1 + 2.00 x1 + 1.00 x2 + 1.00 x3 + -1.00 x4 = 1.00

3.00 x1 + 3.00 x1 + -1.00 x2 + 1.00 x3 + 1.00 x4 = 2.00

4.00 x1 + 4.00 x1 + 2.00 x2 + 1.00 x3 + -1.00 x4 = 1.00

0.00 x1 + 0.00 x1 + 0.00 x2 + 0.00 x3 + 1.00 x4 = 2.00

are solutiile:

matricea A

2 1 1 -1

3 -1 1 1

4 2 1 -1

0 0 0 1

Determinantul este: 5.00

Matricea D1

1 1 1 -1

2 -1 1 1

1 2 1 -1

2 0 0 1
Dx1= -3.00

Matricea D2

2 1 1 -1

3 2 1 1

4 1 1 -1

0 2 0 1

Dx2= 6.00

Matricea D3

2 1 1 -1

3 -1 2 1

4 2 1 -1

0 0 2 1

Dx3= 15.00

Matricea D4

2 1 1 1

3 -1 1 2

4 2 1 1

0 0 0 2

Dx4= 10.00
x[1]= -0.60

x[2]= 1.20

x[3]= 3.00

x[4]= 2.00

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