Sunteți pe pagina 1din 11

Exercitiul 1. Se considera ecuatia de gradul 1 cu coeficienti reali ax+b=0.

Sa se defineasca un
fisier de tip function care se genereze solutia ecuatiei de gradul 1. Sa se verifice pentru cazurile:
a) a=0; b=0
b) a=0; b=4
c) a=5; b=6
Rezolvare:
Observatii:
• Daca a≠0, atunci x=-b/a
• Daca a=0 si b=0, atunci ecuatia este nedeterminata
• Daca a=0 si b≠0, atunci ecuatia este incompatibila.
fisierul ecuatie1.m:
function x=ecuatie1(a,b)
if a==0
if b==0
x=‘ecuatie nedeterminata’
else
x=‘ecuatie incompatibila’
end
else
x=-b/a;
end

Apelul functiei:
1. >> a=0; b=0;
>>x=ecuatie1(a,b)
R: x=ecuatie nedeterminata
2. >> a=4; b=0;
>>x=ecuatie1(a,b)
R: x=ecuatie incompatibila
3. >>a=5; b=6
>>x=ecuatie1(a,b)
R: x=-1.2

Exercitiul 2. Se considera ecuatia de gradul 2 cu coeficienti reali ax2+bx+c=0, unde a ≠0. Sa se


defineasca un fisier de tip function care se genereze solutia ecuatiei de gradul 2. Sa se verifice
pentru cazurile:
a) a=2; b=5; c=2
b) a=2; b=4; c=2
c) a=2; b=4; c=3
Rezolvare:
Observatii:
Se calculeaza discriminantul: Δ=b2-4ac
−𝑏±√∆
• Daca Δ≥0, atunci 𝑥1,2 = 2𝑎

−𝑏±𝑖√∆
• Daca Δ≤0, atunci 𝑥1,2 = 2𝑎

fisierul ecuatie2.m:
function [x1,x2]=ecuatie2(a,b,c)
D=b^2-4*a*c
if D>=0
x1=(-b+sqrt(D))/(2*a);
x2=(-b-sqrt(D))/(2*a);
else
x1=(-b+i*sqrt(abs(D)))/(2*a);
x2=(-b-i*sqrt(abs(D)))/(2*a);
end
end

Apelul functiei:
1. >> a=2; b=5; c=2;
>>[x1,x2]=ecuatie2(a,b,c)
R: D=9
x1=-0.5; x2=-2;
2. >> a=2; b=4; c=2
>>[x1,x2]=ecuatie2(a,b,c)
R: D=0
x1=x2=-1;
3. >>a=2; b=4; c=3;
>>[x1,x2]=ecuatie2(a,b,c)
R: D=-8
x1=-1+0.7071i; x2=-1-0.7071i

Exercitiul 3. Se considera doua numere naturale n si m, unde n>m. Se se scrie un fisier de tip
functie care calculeaza urmatoarele valori:
• Permutari de n: 𝑃𝑛 = 𝑛!
𝑛!
• Aranjamente de n luate cate m: 𝐴𝑚
𝑛 = (𝑛−𝑚)!

𝑛!
• Combinari de n luate cate m: 𝐶𝑛𝑚 = 𝑚!∙(𝑛−𝑚)!

Rezolvare:
fisierul calcul.m:
function [P,A,C]=calcul(n,m)
if n==0 & m==0
disp(‘parametrii nu se pot calcula’)
P=[]; A=[]; C=[];
return;
end
P=fact(n);
A=fact(n)/fact(n-m);
C=fact(n)/(fact(m)*fact(n-m));
end

Apelul functiei:
>>n=8; m=5
>>[P,A,C]=calcul(n,m)
R: P=40320
A=6720
C=56

Exercitiul 4. Sa se scrie un fisier de tip functie care calculeaza suma primelor n+1 numere
naturale pare.
𝑛
𝑆𝑝 = 0 + 2 + 4 + 6 + ⋯ + 2𝑛 = ∑ 2𝑘
𝑘=0

Rezolvare:
Metoda 1:
fisierul suma1.m:
function SP1=suma1(n1)
SP1=0
for i=0:2*n1
if rem(i,2)==0
SP1=SP1+i
end
end
end

Apelul functiei:
1. >>n1=5
>>SP1=suma1(n1)
R: SP1= 30
2. >>n1=10
>>SP1= 110

Metoda 2:
fisierul suma2.m:
function SP2=suma2(n2)
SP2=0
for i=0:2:2*n2
SP=SP+i
end
end
Apelul functiei:
1. >>n2=15
>>SP2=suma2(n2)
R: SP1= 240

Exercitiul 5. Se considera un vector v cu n elemente. Sa se calculeze suma si produsul elementelor


vectorului v.
v = [a1 a2 a3 a4…an]
suma = a1+a2+a3+…+an
prod = a1*a2*a3*…*an
Rezolvare:
Metoda 1
fisierul sumaprodus1.m:
function [suma, produs]=suma1(v)
suma=0; produs=1;
n=length(v);
for i=0:n
suma=suma+v(i)
produs=produs*v(i)
end
end

Apelul functiei:
1. >>v=[1 3 5 6 8 9]
>>[suma, produs]=suma1(v)
R: suma=32
podus=6480
Metoda 2
fisierul sumaprodus2.m:
function [suma,produs]=suma2(v)
suma=0; produs=1;
i=1;
n=length(v);
while i<=n
suma=suma+v(i)
produs=produs*v(i)
end
end

Apelul functiei:
1. >>v=rand(1,9)
>>[suma, produs]=suma2(v)

Exercitiul 6. Sa se genereze doua matrici, A si B, de rang 5, definite astfel:


A(i,j)= 1, pentru i=j
1
(𝑖−𝑗)2
, pentru i≠I
B(i,j)= 1/i, pentru i>2
1/j, pentru j>2
1/(i+j), in rest
Sa se calculeze apoi suma si produsul elementelor celor doua matrici.

Rezolvare:
Fisierul script exercitul6.m
sumaA=0; produsA=1; sumaB=0; produsB=1; i=1; j=1;
disp('matricea A')
for i=1:5
for j=1:5
if i==j A(i,j)=1;
else A(i,j)=1/((i-j)^2);
endif
endfor
endfor
disp(A)
disp('matricea B')
for i=1:5
for j=1:5
if i>2 B(i,j)=1/i;
elseif j>2 B(i,j)=1/j;
else B(i,j)=1/(i+j);
endif
endfor
endfor
disp(B)
for i=1:5
for j=1:5
sumaA=sumaA+A(i,j);
sumaB=sumaB+B(i,j);
produsA=produsA*A(i,j);
produsB=produsB*B(i,j);
endfor
endfor
disp(sumaA)
disp(sumaB)
disp(produsA)
disp(produsB)
1 −1 0
Exercitiul 7. Se considera matricea C= (0 2 3)
4 0 −1
Sa se calculeze:
a) Ct, (Ct)t
b) C3-2C2-C+14I3

Rezolvare:
>> C=[1 -1 0; 0 2 3; 4 0 -1]
>> C’
1 0 4
ans −1 2 0
0 3 −1
>> (C’)’
1 −1 0
ans 0 2 3
4 0 −1
>> C^2*C^2-C+14*eye(3)
0 0 0
ans 0 0 0
0 0 0

Execitiul 8. Se considera urmatoarele matrice


1 0 9 4 1 0
a = ( 0 ) B = (1 −5) C = ( 7 0 1) d = (0 2 −7)
−2 3 8 −1 1 1
Verificati care din urmatoarele operatii au sens si efectuati-le: Ba, ad, da, dB, Bd, CB, BC, dC,
Cd, aC, Ca, C2, dBC, dCB, adC, adBC, adCa, a2.
Rezolvare:
>> a=[1;0;-2];
>>B=[0 9;1 -5;3 8];
>>C=[4 1 0;7 0 1;-1 1 1];
>>d=[0 2 -7];
>>B*a ans: nu se poate efectua
0 2 −7
>> a*d ans: 0 0 0
0 −4 14
>>d*a ans: 14
>>d*B ans: -19 -66
>>B*d ans: nu se poate efectua
1 31
>>C*B ans: 3 71
4 −6
>>B*C ans: nu se poate efectua
>>d*C ans: 21 -7 -5
>>C*d ans: nu se poate efectua
>>a*C ans: nu se poate efectua
4
>>C*a ans: 5
−3
23 4 1
>>C^2 ans: 27 8 1
2 0 2
>>d*B*C ans: nu se poate efectua
>>d*C*B ans: -22 184
21 −7 −5
>>a*d*C ans: 0 0 0
−42 14 10
>>a*d*B*C ans: nu se poate efectua
31
>>a*d*C*a ans: 0
−62
>>a^2 ans: nu se poate efectua

Exercitiul 9. Gasiti matricea A daca:


2 1
a) (𝐼 − 2𝐴)−1 = ( )
1 1
−1
1 0 1 0
b) (( ) ∙ 𝐴) = ( )
2 2 2 2
Rezolvare:
>> A=(inv([2 1;1 1])-eye(2))/(-2)
0 0.5
ans:
0.5 −0.5
>>A=inv([1 0;2 2])*inv([1 0;2 2])
1 0
ans:
−1.5 0.25

Exercitiul 10. Calculati f(-1, 2.5) pentru 𝑓 = √𝑥 2 + 𝑦 2 .


Rezolvare:
>> f=inline(‘sqrt(x^2+y^2)’)
>>f(-1,2.5)
ans: -2.6925
sau:
>>f=@(x,y)(sqrt(x^2+y^2))
>>f(-1,2.5)
ans: -2.6925

Exercitiul 11. Reprezentati grafic pe intervalul [-3,3] functia definita de expresia


𝑓 = 𝑥 2 + 4 sin(2𝑥) − 1
Rezolvare:
>>fplot(‘x^2+4*sin(2*x)-1’,[-3,3])
sau: >> fplot(@(x) x^2+4*sin(2*x)-1, [-3,3])

Exercitiul 12. Reprezentati in aceeasi fereastra, dar in grafice separate urmatoarele functii:
f=sin(x), pe intervalul [-pi,2pi]
g=cos(x), pe intervalul [-pi,2pi]
h=x2+y2-2, pe intervalul [-2,2]
i=[tg(x), sin(x), cos(x)], pe intervalul [-2pi, 2pi]
Rezolvare:
>> subplot(3,2,1);
>> fplot(@(x) sin(x),[-pi,2*pi])
>> subplot(3,2,2);
>> fplot(’cos(x)’,[-pi,2*pi])
>> subplot(3,2,3);
>> ezplot(inline('x^2+y^2-2'), [-2,2,-2,2])
>> subplot(3,2,5:6);
>> fplot(@(x)[tan(x),sin(x),cos(x)],[-2*pi,2*pi,-4,4])

Exercitiul 13. Reprezentati grafic functiile x,y=f(t), pe intervalul (0,200).


Rezolvare:
>> figure(’Name’,’Graficul a doua functii’)
>> t = linspace(0,4*pi,200);
>> x = sin(t); y = cos(t);
>> plot(t,x,’r- -’)
>> hold on
>> plot(t,y,’b:’)
>> grid
>> axis([-pi 6*pi -2 2])
>> title(’Am desenat evolutia in timp’)
>> xlabel(’Axa Ot (axa timpului)’)
>> ylabel(’Axa Ox (axa valorilor)’)
>> legend(’x = sin(t)’,’x = cos(t)’)
>>hold off

Exercitiul 14. Rezprezentati grafic ecuatia ρ=a+bϴ in coordinate polare.


Rezolvare:
fisierul grafic_polar.m
theta = 0:.01:6*pi;
a = input(‘Introduceti coeficientul a =’)
b = input(’Introduceti coeficientul b =’)
rho = a+b*theta;
figure(’Name’,’O curba in coordonate polare’)
polar(theta,rho)
title(’Spirala lui Arhimede’)

Exercitiul 15. Reprezentati grafic suprafata data de expresia


2 +𝑦 2
𝑧 = 1.8−1.5√𝑥 sin⁡(𝑥)cos⁡(0.5𝑦), cu (x,y) definite pe intervalul [-3,3].
Rezolvare:
>>x = -3:0.1:3; y =x;
>> [X,Y] = meshgrid(x,y);
>> Z = 1.8.^(-1.5*sqrt(X.^2+Y.^2)).*sin(X).*cos(0.5*Y);
>> figure(’Name’,’Graficul facut cu diverse comenzi’)
>> grid
>> subplot(2,4,1)
>> mesh(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’mesh’)
>> subplot(2,4,2)
>> ezmesh(’1.8^(-1.5*sqrt(x^2+y^2))*sin(x)*cos(0.5*y)’ ,[-3,3])
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’ezmesh’)
>> subplot(2,4,3)
>> meshz(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’meshz’)
>> subplot(2,4,4)
>> meshc(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’meshc’)
>> subplot(2,4,5)
>> surf(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’surf’)
>> subplot(2,4,6)
>> ezsurf(’1.8^(-1.5*sqrt(x^2+y^2))*sin(x)*cos(0.5*y)’ ,[-3,3])
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’ezsurf’)
>> subplot(2,4,7)
>> surfc(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’surfc’)
>> subplot(2,4,8)
>> surfl(X,Y,Z)
>> xlabel(’Axa Ox’); ylabel(’Axa Oy’); zlabel(’Axa Oz’)
>> legend(’surfl’)

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