Sunteți pe pagina 1din 5

Subiecte de realizat în cadrul examenului la disciplina Analiza numerică

Scrieţi programele de rezolvare a următoarelor probleme, în limbajul Pascal, prezentaţi textul


programelor şi rezultatele obţinute:

1. Calculul iterativ al soluţiilor algebrice şi transcendente prin metodele bisecţiei, a coardei, a lui
Newton. Rezultatele numerice le anexaţi pentru ecuaţii concrete, alese la discreţia Dvs.

2. Să se calculeze valoarea exactă a integralei I =  şi valorile aproximative a acesteia:


I1 după formula trapezului şi I2 după una din metodele dreptunghiului. Să se calculeze valorile

 şi  şi să se compare cu estimările termenilor de rest corespunzători.


3. Rezolvarea sistemelor de ecuaţii liniare prin metoda lui Gauss. Rezultatele numerice le
anexaţi pentru sistemul de ecuaţii concret, ales la discreţia Dvs.

Punctul 2-Rezolvare:

1. Să se calculeze valoarea exactă a integralei I =   .


PROGRAM p6;
var i,n:INTEGER; a,b,d:REAL; so,s:REAL;
{definirea functiei utilizator}
FUNCTION f(x:REAL):REAL;
BEGIN
f:=4-5*x*x/3*x;
END;
{programul principal}
BEGIN
a:=1; b:=2; n:=10;
d := abs(b-a)/n;
so := (f(a)+f(b))/2;
FOR i := 1 TO n-1 DO so := so+f(a+i*d);
s := d * so;
writeln (' n=',n,'I=',S:0:6);
END.
Rezultate:

n=10I=-2.262500

a)Calcularea valoarii integralei I =   şi valorile aproximative a acesteia: I2 după metoda


dreptunghiurilor de dreapta, cu o eroare de calcul ce nu depășește ε=0,001.
program P4;
var S, a, b,e, h, M : real;
j,i,n:integer;
function f(x:real): real;
begin
f:=4-5*x*x/3*x;
end;
begin
a:=1; b:=2; n:=10;e:=0.001;M:=6;
n:=trunc(M*(b-a)*(b-a)/(2*e))+1;
S:=0; n:=n*2; h:=(b-a)/n;
for i:=1 to n-1 do
S:=S+ h*f(a + i*h + h/2);
writeln (' n=',n,'I=',S:0:6);
end.
Rezultate:

n=6002I=-2.250389

b)Calcularea valoarii integralei I =   şi valorile aproximative a acesteia: I1 după metoda


trapezelor, cu o eroare de calcul ce nu depășește ε=0,001.
program P5;
var S, a, b,e, h, M : real;
j,i:integer;
n:longint;
function f(x:real): real;
begin
f:=4+5*x*x/3*x;
end;
begin
a:=1; b:=2; n:=10;e:=0.001;M:=42;
n:=trunc(M*(b-a)*(b-a)/(2*e))+1;
S:=0; n:=n*2; h:=(b-a)/n;
for i:=1 to n-1 do
S:=S+ h*f(a + i*h + h/2);
writeln (' n=',n,'I=',S:0:6);
end.
Rezultate:
n=42002I=-2.250056

= |-2.262500-(-2.250056)|= 0.012444

  =|-2.262500-(-2.250389)|= 0.012111

Ex.3 Rezolvarea sistemelor de ecuații prin metoda Gauss


User;
const
e=0.0001
var
a, a1:array [1..10, 1..10] of real;
b, b1:[1..10, 1..10] of real;
x:[1..10, 1..10] of real;
n,i,j,k:integer:z,r,g:real;
begin
crrscr;
write (´ordinea:´);
readln (n);
writeln(´introduceți coeficienții sistemei și termenii liberi´);
for i:=1 to n do
begin
forj:=1 to n do
begin
write (´a [´, i, ´.´, j, ´]= ´);
readln (a[i,j];
a1 [I,j]:a[i,j];
end;
end;
for k:=n down to 1 to
begin
r:=0
for j:=k+1 to n do
begin
g:=a[k,j]*x[j];
r:=r+g;
end;
x[k]:=b(b[k]-r)/a[k,k];
writeln (´radacinile sistemei: ´);
for I:=1 to n do
writeln;
write ( ´ verificarea in corespundere cu matricea B: ´);
for I:=1 to n do
begin
for j:=1 to n do
b1[i]:=b1[i]+a1[i,j]*x[j];
writeln (b1[b1]:3:2, ´ ´);
end;
readln;
end.
Rezolvare:
Introducerea datelor: Se introduce linia matricei A, apoi un element al matricei
B etc.

Sistemul de ecuații: { x2+3x-7=2

-2x2-5x+9=9
-3x2-2x+6=8
puncul 1. Rezolvare:

2. a) Calculul iterativ al soluţiilor algebrice şi transcendente prin metoda bisecţiei:


Să se determine o rădăcină a ecuației 2x4-x3+x-1 pe segmentul [0,1] pentru 16 divizări
consecutive.
program P1;
var s,u,t: real;
i,n:integer;
function f(x:real):real;
begin f:=2*sqr(sqr(x))-x*sqr(x)+x-1;
end;
begin s:=0; u:=1; n:=16;
for i:=1 to n do
begin t:=(u+s)/2;
writeln ('i=',i:3,' x=',c:10:8,' f(x)=',f(c):12:8);
if f(t)=0 then break;
if f(t)*f(s)>0 then s:=t else u:=t;
end;
…....................................................................
b) Calculul iterativ al soluţiilor algebrice şi transcendente prin metoda
coardei:

Fie dată funcția f(x)=ln(cosx).Să se calculeze soluția aproximativă a ecuației f(x)=0 pe segmentul
[0,5; 1] pentru 10 aproximări consecutive.
program P2;
var a,b,e,c,x: real;
n,i: integer;
function f(x:real):real;
begin f:=ln(cos(x));end;
begin a:=0.5; b:=1; 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:10:8,'',f(x):12:8);
end;
end.
c) Calculul iterativ al soluţiilor algebrice şi transcendente prin metoda Newton:

Fie dată funcția f(x)= 3x3-4x2- x-1=0.Să se calculeze soluția aproximativă a ecuației f(x)=0 pe
segmentul [2; 10] pentru 10 aproximări succesive.
program P3;
var a, b, x, c : real;
i, n: integer;
function f(z:real):real;
begin f:=3*z*z*z-4*z*z-z-1; end;
function fd1(z:real):real;
begin fd1:=3*z*z*z-4*z*z-z-1; end;
begin a:=2.1; b:=10; n:=10; i:=0;
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)/fd1(x);
writeln('i=',i:2,' x=',x:15:12, ' f=',f(x):15:12);
end;
end.

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