Sunteți pe pagina 1din 22

Laborator 3

MATLAB

polinoame
calcul simbolic
Polinoame- Exercitiul 1
Fie polinoamele:

P[x] = x5 - 7x3 -8x2 + 2x +12 ;


Q[x] = x4 -5x2 + 4 ;
T [x] = x6 + 4x4 - x2 – 4

a) Sa se determine produsul P[x]*T[x]*Q[x] (scrieti


comanda intr-o singura linie)

b) Sa se determine catul si restul impartirii P[x]:Q[x] si


T[x]:Q[x]

c) Sa se determine radacinile polinoamelor P[x], Q[x] si


T[x].
Polinoame- Rezolvare Exercitiu 1

Introducerea polinoamelor:
>>p=[1 0 -7 -8 2 12];
>> q=[1 0 -5 0 4];
>> t=[1 0 4 0 -1 0 -4];

Produsul p*t*q:
>> conv(conv(p,t),q)

Catul si restul impartirii p/q si t/q:
>> [c,r]=deconv(p,q) c=x; r = -2× x3 -8x2 - 2x +12
>>[c1,r1]=deconv(t,q); c1 = x2 + 9 ; r1 = 40 x2 – 40

Radacinile polinoamelor p, q si t:
>>roots(p) x1=3, x2=-2, x3=-1+i, x4=-1-i, x5=1
>>roots(q); x1=1, x2=-1, x3=2, x4=-2
>>roots(t); x1=2i, x2=-2i, x3=1, x4=-1, x5=i, x6=-i
Polinoame -Exercitiul 2
A) Sa se determine polinomul S[x] ale carui radacini
sunt:
x1=1, x2=2, x3=3, x4=-4, x5=-5
Sa se afle valorile S(0) si S(-7); S’(1) si S’(-1)

B.
1) x=0: pi/10 :pi si y=sin(x). Sa se determine polinomul
P4[x] de gradul 4 care aproximeaza datele din
vectorii x si y.
2) Sa se compare valorile P4 [pi/2] cu valoarea exacta
sin(pi/2)
3) Sa se calculeze valoarea in pi/2 - utilizati tipuri de
interpolare
Polinoame - Rezolvare Exercitiu 2
A)
>> v=[1 2 3 -4 -5]; s=poly(v);
s (x) = x5 + 3x4 - 23x3 - 27x2 +166x -120
>>polyval(s,0)=-120 polyval(s,-7)=-4320
>>polyval(polyder(s),1)=60
>>polyval(polyder(s),-1)=144
B)
1)>> x=0:pi/10:pi; y=sin(x);
>>p4=polyfit(x,y,4);
P4 x = 0.0368x4 -0.2309x3 + 0.0485x2 + 0.9874x+ 0.0002
2) polyval(p4,pi/2)-sin(pi/2)=0.00053993<10 -3
c) >>interp1(x,y,pi/2,'nearest'); 1
>> interp1(x,y,pi/2,'linear'); 1
Calcul simbolic -Rezolvare exercitiul 1

1)>>u=sym(1);d=sym(2); t=sym(3);c=sym(5);s=sym(7)
>> (u/d+u/t)/(u/c+u/s)
>> u+u/(u+u/(u+u/(u+u/d)))
2) >> x=sym( 'x'); collect((x-2)^3*(x+1)^2) sau
>> expand((x-2)^3*(x+1)^2)
3) >>a=sym( 'a'); [sus,jos]=numden(a/(1-1/a)+
(1-1/a)/(1/(1-a))+ (1/(1-a))/a)
>>simplify(sus/jos)
Calcul simbolic -Exercitiul 2

1) Sa se calculeze limitele:

2)Daca f(x) = 2xsin x -(x2 - 2)cos (x) sa se calculeze f ' (x)

3) Sa se calculeze primitiva funxctiei f (x) = x 2ex3

4) Sa se rezolve ecuatia: x3 + 2ax2 - a2 x - 2a3 = 0


Calcul simbolic -Rezolvare exercitiul 2

1) syms x t a
>>limit((sqrt(x+1)-1)/((x+1)^(1/3)-1))
>> limit((x^3-1)/(x^3+1),x,-inf,'right')
>> limit(((x-1)/(x+1))^x,x,inf,'left')

2) >> diff(2*x*sin(x)-(x^2-2)*cos(x))

3) >> int(x^2*exp(x^3))

4) >> solve(x^3+2*a*x^2-a^2*x-2*a^3)
Rezolvarea sistemelor de ecuatii liniare -Exercitiul 1

Sa se rezolve urmatorul sistem folosind metoda


inversarii matriceale:

5x1+4x2+x3=0
6x1+3x2+2x3=5
x1+x2+x3=-7
Sisteme de ecuatii liniare -Rezolvare exercitiul 1
Se creaza fisierul rez1.m:
>> edit rez1.m
Se creaza matricea coeficientilor:
A=[5 4 1; 6 3 2; 1 1 1];
Rezolvarea sistemului
if det(A)~=0 % daca sistemul este compatibil determinat
b=[0; 5; -7]; % vectorul-coloana al termenilor liberi
X=inv(A)*b
else
disp('Sistemul nu este compatibil determinat.')
end
In urma executiei se obtine:
x1 = 6.25 , x2 = -6 , x3 = –7.25
Rezolvarea sistemelor de ecuatii liniare -Exercitiul 2

Sa se rezolve urmatorul sistem folosind metoda


impartirii la stanga:

2x1-3x2=7
-6x1+8x2-x3=-5
3x2+4x3=1
Sisteme de ecuatii liniare -Rezolvare exercitiul 2
Se creaza fisierul rez2.m:
>> edit rez2.m
Se creaza matricea coeficientilor:
A=[2 -3 0; -6 8 -1; 0 3 4];
Rezolvarea sistemului
if det(A)~=0
b=[7; -5 ;1]'; % vectorul-coloana al termenilor liberi
X=A\b
else
disp('Sistemul nu este compatibil determinat.')
end
In urma executiei se obtine:
x1 = -94 , x2 = -65 , x3 = 49.
Rezolvarea sistemelor de ecuatii liniare -Exercitiul 3

Pentru urmatorul sistem sa se determine solutiile


particulare folosind metodele pseudo-inversarii si a
impartirii la stanga:

3x-y+z-2t=6
-4x+4y+2z+t=0
Sisteme de ecuatii liniare -Rezolvare exercitiul 3
Se creaza fisierul rez3.m:
>> edit rez3.m
Se creaza matricea coeficientilor si vectorul coloana al
termenilor liberi:
A=[3 -1 1 -2; -4 4 2 1];
b=[6; 0];
Rezolvarea sistemului
if rank(A)==rank([A b])
disp('metoda pseudo-inversarii')
X=pinv(A)*b
disp('metoda impartirii la stanga')
X=A\b
else
disp('Sistemul nu este compatibil.')
end
Sisteme de ecuatii liniare -Rezolvare exercitiul 3
In urma executiei se obtin rezultatele:
metoda pseudo-inversarii
X=
0.9431
0.5418
1.3846
-1.1639
metoda impartirii la stanga
X=
1.2000
0
2.4000
0
Rezolvarea sistemelor de ecuatii liniare -Exercitiul 3
Observatii:
1. Pentru testarea compatibilitatii s-a folosit teorema lui
Kronecker-Capelli. Matricea extinsa s-a obtinut in
Matlab prin concatenarea matricei A cu vectorul-
coloana b.
2. Daca sistemul era compatibil determinat se obtineau,
solutii identice prin utilizarea celor doua metode.
Sistemul este compatibil nedeterminat, prin utilizarea
celor doua metode s-au obtinut doua solutii particulare
distincte.
3. Sistemul de ecuatii liniare din exemplul 3 este un
sistem subdeterminat. El poate fi rezolvat doar pe cale
simbolica. Acest sistem nu poate fi rezolvat complet pe
cale numerica - rezultate diferite, care corespund unor
valori particulare ale solutiei.
Sisteme de ecuatii liniare -Rezolvare exercitiul 4
>> clc % clear command window

Se creaza matricea coeficientilor si se determina
rangul matricei sistemului
A=[3 -1 1 -2; -4 4 2 1];
r=rank(A);
% se obtine 2, prin urmare, 2 variabile sunt
independente, si 2 variabile sunt dependente de primele

Se cauta un minor de ordinul 2 nenul, pentru a stabili
variabilele dependente
rminor=rank(A(:,[1 2]))
% se obtine 2; x,y devin variabilele dependente, in
raport cu care se rezolva sistemul rescris sub forma:
3x-y=6-z+2t; -4x+4y=-2z-t;
disp('sistemul este compatibil nedeterminat')
Sisteme de ecuatii liniare -Rezolvare exercitiul 4

Se rezolva sistemul de mai sus
syms z t;
Aredus=A(:,[1 2])
bredus=[6-z+2*t; -2*z-t];

Rezolvarea sistemului cu metoda inversarii
s=inv(Aredus)*bredus

Rezolvarea sist. cu operatorul de impartire la stanga
ss=Aredus\bredus
disp(blanks(1)') %creeaza spatii intre şirurile de
caratere.
pause % oprirea momentana a executiei
disp('Solutia sistemului dat este:')
x=s(1)
y=s(2)
disp('z,t numere reale oarecare')
Sisteme de ecuatii liniare -Rezolvare exercitiul 4

Se obtin rezultatele:
r =2 rminor =2
sistemul este compatibil nedeterminat
s=
3-3/4*z+7/8*t
3-5/4*z+5/8*t
ss =
3-3/4*z+7/8*t
3-5/4*z+5/8*t

Solutia sistemului dat este:
x=
3-3/4*z+7/8*t
y=
3-5/4*z+5/8*t
z,t numere reale oarecare
Rezolvarea sistemelor de ecuatii liniare -Exercitiul 5

Sa se comparare metodele studiate de rezolvare a


sistemelor din punct de vedere al timpului de executie si
al preciziei solutiei in cazul unui sistem patratic
compatibil determinat de ecuatii liniare de dimensiuni
mari.
Sisteme de ecuatii liniare -Rezolvare exercitiul 5

Se genereaza matricea sistemului, solutia exacta,
vectorul termenilor
>>A=rand(700); x=rand(700,1); b=A*x;

Timpii de executie
>> tic; y=inv(A)*b; t1=toc t1 =0.1671
>> tic; z=A\b; t2=toc t2 =0.0685

Precizia solutiilor calculate:
n1=norm(A*y-b) n1 = 3.3005e-010
n2=norm(A*z-b) n2 = 5.9342e-012
n1/n2
ans =
55.6182
Bibliografie


Calcul numeric-grafica-aplicatii M. Ghinea, V
Fireteanu. Mathlab. Ed. Teora 2001

http://www.mathworks.com/help/pdf_doc/matlab/getstart
.pdf

http://www.mathworks.com/academia/student_center/tutori
launchpad.html

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