Sunteți pe pagina 1din 24

Curs Matematici Aplicate

1. Probleme de matematica rezolvate cu Octave/Matlab


2. Ecuatii diferentiale de ordinul I
3. Metode numerice pentru ecuatii diferentiale de ordinul I
4. Sisteme de ecuatii liniare de ordinul I cu coeficienti constanti
5. Ecuatii diferentiale de ordin superior afine cu coeficienti con-
stanti
6. Dezvoltari in serii Fourier
7. Ecuaţii cu derivate parţiale liniare de ordinul doi: ecuatia
undelor, ecuatia caldurii
Bibliografie:
1. Boacă, T., Ecuaţii diferenţiale, Editura U. P. G. Ploieşti, 2004.
2. Pascu M., Ecuaţii diferenţiale, Editura U. P. G. Ploieşti,, 2004
3. Pascu M., Ecuaţii cu derivate partiale, Editura U. P. G. Ploieşti, 2011
4. Şabac, I. Gh., Matematici speciale, Editura didactică şi pedagogică,
Bucureşti, 1981
5. GNU Octave, https://octave.org/doc/v6.4.0/index.html, accesat la data
de 27.11.2021
6. I. P. Mihu, C. Neghină, Prelucrarea Digitală a Semnalelor Aplicaţii
didactice ı̂n Matlab, Editura Universităţii ”Lucian Blaga” Sibiu, 2014
7. Iancu L., Tehnici de optimizare cu Octave, Editura UPG, Ploiesti, 2021
Capitolul 1

Probleme de matematica
rezolvate cu Octave/Matlab

1.1 Utilizarea matricelor


Precizăm că:
-un vector linie este o matrice cu o singură linie,
-un vector coloană este o matrice cu o singură coloană,
-un scalar (număr) este o matrice cu o singură linie şi o singură coloană.
Instrucţiuni legate de matrici
• Introducerea unei matrice ı̂n Octave se face astfel:
-elementele de pe fiecare linie se separă prin spaţii,
-liniile se separă ı̂ntre ele prin punct si virgulă,
-la ı̂nceputul s, i finalul scrierii elementelor matricei se folosesc paranteze
pătrate.
• Elementul de pe linia i şi coloana j al matricei A se accesează prin
identificatorul A(i, j), indexarea se face de la 1.
• Instrucţiunea:
l=length(x)

atribuie variabilei l valoarea lungimii vectorului x (numărul componentelor


vectorului x).
• Cu instrucţiunea
vector=vstart:pas:vstop

se obţine vectorul ce are prima componentă egală cu vstart şi fiecare compo-
nentă se construieşte din precedenta adăugând valoarea pas. Ultima compo-

2
Probleme de matematica rezolvate cu Octave/Matlab

nentă este mai mică sau egală cu vstop.


• Pentru un j fixat instrucţiunea
Coloana=A(:,j)

creeaza matricea Coloana ı̂n care se salvează coloana j a matricei A.


• Instrucţiunea următoare efectuează suma tuturor elementelor de pe linia
2.
S=sum(A(2,:))

• zeros(m, n) generează o matrice de dimensiune m×n cu toate elementele


nule.
• eye(m) generează matricea unitate de dimensiune n,
 
1 0 ... 0
 
 
 0 1 ... 0 
 
In = 
 
 (1.1)
 ... ... ... ... 
 
 
0 0 ... 1

In reprezintă elementul neutru la ı̂nmulţirea matricelor, In A = AIn ∀A ∈


Mn (R).

Operaţii cu matrici

Operaţie Simbol Observaţii


Adunare + A + B, A si B au aceleaşi dimensiuni
Scădere − A − B, A si B au aceleaşi dimensiuni
Înmult, ire ∗ A ∗ B, nr. de coloane din A =nr. de linii din B
Înmult, ire element cu element .∗ A. ∗ B, A si B au aceleaşi dimensiuni
Împart, ire element cu element ./ A./B, A si B au aceleaşi dimensiuni
Ridicare la putere ˆ Aˆn=A*A*...*A (de n ori), A matrice pătratică
Ridicare la putere element .ˆ A.ˆn, se ridică fiecare element al matricei A
cu element la puterea n
Transpusa unei matrice .′ A.′ reprezintă transpusa unei matrice,
A.′ (i, j) = A(j, i)
Conjugata transpusă a unei ′ A′ , A′ (i, j) = A(j, i)
matrice (conjugatul numărului complex A(j, i))
Determinantul unei matrice det(A) A este matrice pătratică
Inversa unei matrice inv(A) A este inversabilă ⇔ det(A) ̸= 0

3
Probleme de matematica rezolvate cu Octave/Matlab

În exemplul de mai jos sunt folosite operat, iile cu matrici. Este de remarcat
faptul că ı̂n cazul utilizării operat, iei de ı̂nmult, ire, dacă numărul de coloane
al primei matrici nu coincide cu numărul de linii al celei de-a doua, atunci ı̂n
fereastra de comandă va apărea un mesaj de eroare.

Exemplu:
Se consideră matricele A, B ∈ M3 (R), C ∈ M3,2 (R).
Să se derermine A + B, AC, transpusa matricei A. Să se calculeze det(A)
şi inversa matricei A, A−1 .
clc
clear all
close all
A=[2 -1 3;
0 2 -3;
2 4 0];
B=[1 3 2;
-1 -5 2;
0 -2 4];
C=[2 -1;
-2 3;
0 1];
% Suma A+B
S=A+B
%Produsul A*C
P=A*C
% det(A)
determinant=det(A)
% Inversa matricei A
Inversa=inv(A)
%A*A^{-1}=I_{3}?
test=A*Inversa
%Observatie
%Produsul C*A nu se poate efectua
C*A

Rezultatele rulării acestui program sunt:


S =
3 2 5
-1 -3 -1
2 2 4
P =
6 -2
-4 3

4
Probleme de matematica rezolvate cu Octave/Matlab

-4 10
determinant = 18

Inversa =
0.6667 0.6667 -0.1667
-0.3333 -0.3333 0.3333
-0.2222 -0.5556 0.2222

test =
1.0000e+00 -2.2204e-16 -2.7756e-17
-2.7756e-17 1.0000e+00 2.7756e-17
-2.2204e-16 -2.2204e-16 1.0000e+00
error: operator *: nonconformant arguments (op1 is 3x2, op2 is 3x3)
error: called from
Operatii_matrici at line 21 column 3

Observaţia 1.1. În programul de mai sus a fost calculat produsul test =
A ∗ A−1 . Se observă că test ≈ I3 .

1.2 Declararea funcţiilor


Funcţiile sunt subprograme care acceptă atât parametri de intrare cât s, i parametri
de ies, ire s, i se scriu ı̂n fis, iere cu extensia .m.
Sintaxa unei funcţii este:
[out1, out2, ...] =numefunctie(in1, in2, ...)
instructiune1;
instructiune2;
....
end

• numef unctie reprezintă numele funct, iei,


• numele functiei trebuie să fie diferit de numele funcţiilor predefinite din
Octave,
• când este salvată se va folosi acelaşi nume pentru fis, ierul script,

• in1, in2, . . . sunt parametrii de intrare ai funcţiei,

• out1, out2, . . . sunt parametrii de ieşire ai funcţiei.


Valorile parametrilor de ieşire se calculează ı̂n corpul funct, iei, este necesar
ca printre instruct, iuni să fie instruct, iuni de atribuire de tipul:

5
Probleme de matematica rezolvate cu Octave/Matlab

[out1, out2, ...] =numefunctie(in1, in2, ...)


out1=.....;
out2=....;
....

Funcţiile se pot defini fără parametrii de intrare şi/sau parametrii de ieşire.


Funcţiile se pot apela fie dintr-un alt fişier script, fie direct din fereastra
”command window”.
Apelarea se face folosind instrucţiunea:
[out1, out2, ...] = numef unctie(argument1, argument2, ...),
variabilele argument1, argument2, . . . având valori atribuite anterior.
Exemplele următoare sunt sugestive pentru utilizarea funcţiilor.

Exemplul 1:
Se consideră matricea A cu m linii si n coloane cu componente reale. Să
se construiască funcţia cu numele ”transformare” care are ca parametru de
intrare matricea iar ca parametrii de ieşire:
-vectorul vcomponente ı̂n care se vor copia toate componentele matricei A
parcurgându-le pe linii,
-vectorul aparitii construit astfel: aparitii(i) = numărul de aparit, ii al
elementului vcomponente(i) ı̂n vectorul vcomponente.
clc
clear all
A=[1 3 3 4;
-1 2 5 3;
0 2 5 1;
2 4 6 -1;
3 0 0 5];
function [vcomponente,aparitii]=transformare(A,m,n)
m=length(A(:,1))
n=length(A(1,:))
k=1;
for i=1:m
for j=1:n
vcomponente(k)=A(i,j);
aparitii(k)=0; k=k+1;
endfor
endfor
k=1;
while k<m*n+1
for i=1:m*n
if vcomponente(k)==vcomponente(i)

6
Probleme de matematica rezolvate cu Octave/Matlab

aparitii(k)=aparitii(k)+1;
endif
endfor
k=k+1;
end
endfunction
[vcomponente,aparitii]=transformare(A);
vcomponente
aparitii

Rezultatele obţinute sunt:


m = 5
n = 4
vcomponente =
1 3 3 4 -1 2 5 3 0 2 5 1 2 4 6 -1 3 0
0 5
aparitii =
2 4 4 2 2 3 3 4 3 3 3 2 3 2 1 2 4 3
3 3

Exemplul 2:
Se consideră o matrice pătratică A. Să se construiască o funct, ie cu nu-
mele ”determinant, i” care are drept parametru de intrare matricea A iar ca
parametru de ieşire vectorul vdeterminanti cu componentele vdeterminanti(i) =
determinantul matricei formate cu primele i linii şi i coloane ale matricei A.

Programul care apelează funcţia ”determinanti” este:


A=[1 3 2 6 2;
-1 2 5 -4 0;
-3 4 8 3 3;
0 2 -3 4 -1;
3 2 4 -5 1]
[vdeterminanti]=determinanti(A);
format long
vdeterminanti

Funcţia ”determinanti”:
function [vdeterminanti]=determinanti(A);
n=length(A(:,1))
vdeterminanti(1)=A(1,1);
B(1,1)=A(1,1);
B

7
Probleme de matematica rezolvate cu Octave/Matlab

for i=2:n
for j=1:i
B(i,j)=A(i,j);
B(j,i)=A(i,j);
endfor
B
vdeterminanti(i)=det(B);
endfor
endfunction

Rezultatele sunt:
A =
1 3 2 6 2
-1 2 5 -4 0
-3 4 8 3 3
0 2 -3 4 -1
3 2 4 -5 1
n = 5
B = 1
B =
1 -1
-1 2

B =
1 -1 -3
-1 2 4
-3 4 8

B =
1 -1 -3 0
-1 2 4 2
-3 4 8 -3
0 2 -3 4

B =
1 -1 -3 0 3
-1 2 4 2 2
-3 4 8 -3 4
0 2 -3 4 -5
3 2 4 -5 1
vdeterminanti =
Columns 1 through 3:
1.000000000000000e+00 1.000000000000000e+00 -2.000000000000000e+00
Columns 4 and 5:
-2.500000000000000e+01 2.475000000000000e+03

8
Probleme de matematica rezolvate cu Octave/Matlab

Observaţia 1.2. Pentru afis, area vectorului vdeterminanti a fost folosită instruct, iunea
f ormat long care conduce la scrierea ı̂n formatul cu 16 zecimale. Formatul cu
4 zecimale se obt, ine utilizând instruct, iunea f ormat short.

Observaţia 1.3. Determinanţii calculaţi mai sus se numesc determinant, i di-


agonali. Dacă A reprezintă matricea asociată unei funcţionale pătratice şi
toţi aceşti determinanţi sunt nenuli, atunci poate fi scrisă o formă canonică a
funcţionalei folosind metoda Jacobi.
Detalii privind funcţionale pătratice şi caracterizarea lor se găsesc ı̂n [?].

9
Probleme de matematica rezolvate cu Octave/Matlab

1.3 Reprezentări grafice


Software-ul Octave permite mai multe tipuri de reprezentări grafice printre
care:
1) Reprezentarea unei curbe ı̂n sistemul cartezian de axe Oxy (curbă plană)
se realizează folosind instrucţiunea plot,
2) Reprezentarea unei curbe ı̂n sistemul cartezian de axe Oxyz (curbă ı̂n
spaţiu) se realizează folosind instrucţiunea plot3,
3) Reprezentarea unei suprafeţe ı̂n sistemul cartezian de axe Oxyz se real-
izează folosind instrucţiunea mesh,
4) Reprezentarea unui set de date sub forma unor bare verticale se real-
izează folosind instrucţiunea bar,
5) Reprezentarea unui set de date sub forma unor segmente verticale se
realizează folosind instrucţiunea stem.
În cele ce urmează se va face o scurtă prezentare a acestor instrucţiuni, mai
multe detalii se găsesc ı̂n [?] şi [?].

1) Reprezentarea unei curbe ı̂n sistemul cartezian de axe Oxy (curbă plană)
se realizează folosind instructiunea plot,
Sintaxa:
plot(x,y);

Descriere:
• x si y sunt vectori care au aceeaşi lungime n,
• se reprezintă grafic punctele de coordonate (x(i), y(i)), i = 1, n, şi acestea
sunt unite prin linii,
• pentru reprezentarea graficului unei funcţii de o variabilă definită pe un
interval, f : [a, b] → R:
-se construieşte vectorul x ca fiind o diviziune a intervalului [a, b] folosind
instrucţiunea x = a : pas : b
-se calculează y ca fiind vectorul valorilor funcţiei ı̂n punctele diviziunii,
y = f (x) şi
-se foloseşte instrucţiunea plot.
Instrucţiunea plot permite schimbarea unor caracteristici precum culoarea
şi grosimea liniei, tipul liniei, tipul şi culoarea marker-ului folosit la reprezentarea
punctului.

10
Probleme de matematica rezolvate cu Octave/Matlab

În tabelele următoare se găsesc tipuri de linii, markere s, i culori ce pot fi


folosite.
Marker Simbol Culoare Simbol
Linie Simbol Semnul plus ’+’ Albastru ’b’
Continuă ’-’ Cerc ’o’ Negru ’k’
Intreruptă ’–’ Pătrat ’s’ Roşu ’r’
Punctată ’:’ Romb ’d’ Verde ’g’
Linie-punct ’-.’ Asterisc ’*’ Mov ’m’
Ori ’x’ Galben ’y’
Exemple:
plot(x,y,’*g’)

figurează punctele cu steluţe de culoare verde fără a le mai uni prin linii.
plot(x,y,’linewidth’,2)

uneşte punctele prin linii de grosime 2.


plot(x,y,’:’,2)

reprezintă curba prin linie punctată.

2) Reprezentarea unei curbe ı̂n sistemul cartezian de axe Oxyz (curbă ı̂n
spaţiu) se realizează folosind instrucţiunea plot3,
Sintaxa:
plot3(x,y,z);

Descriere:
• x, y si z sunt vectori care au aceeaşi lungime n,
• se reprezintă grafic punctele de coordonate (x(i), y(i), z(i)), i = 1, n, şi
acestea sunt unite prin linii,
• pentru reprezentarea graficului unei curbe ı̂n spaţiu se pot folosi ecuaţiile
parametrice ale curbei. Dacă se cunosc expresiile coordonatelor x, y, z ca
funcţii de o variabilă t numită parametru, x, y, z : [a, b] → R, atunci reprezentarea
curbei se obţine astfel:
-se construieşte o diviziune a intervalului [a, b] folosind instrucţiunea
tv = a : pas : b,
-se calculează vectorii xv, yv, zv, xv = x(tv), yv = y(tv), zv = z(tv),
-se foloseşte instrucţiunea plot3.

11
Probleme de matematica rezolvate cu Octave/Matlab

3) Reprezentarea unei suprafeţe ı̂n sistemul cartezian de axe Oxyz se real-


izează folosind instrucţiunea mesh,
Sintaxa:
mesh (x, y, z);

Descriere:
• x, y si z sunt matrici care au m linii şi n coloane,
• suprafaţa este obţinută prin unirea punctelor Pij (x(i, j), y(i, j), z(i, j)),
• mulţimea perechilor (i, j) reprezintă nodurile unei diviziuni a dreptun-
ghiului [1, m] × [1, n].
• pentru reprezentarea graficului unei funcţii de două variabile f : [a, b] ×
[c, d] → R:
-se construiesc mai ı̂ntâi doi vectori coloană tx, ty ce reprezintă o diviziune
a intervalului [a, b], respectiv [c, d],
-se construiesc matricele x şi y astfel: x(i, j) = tx(j) y(i, j) = ty(i) cu
i = 1, m, j = 1, n,
-matricea z se obţine folosind expresia funcţiei f ,
-se foloseşte instrucţiunea mesh.

În cazul funct, iei f : [−5, 5] × [−5, 5] → R, f (x, y) = x2 + y2 instrucţiunile


sunt:
tx =(-5:1:5)’
ty=(-5:1:5)’
[x, y] = meshgrid (tx, ty)
dimx=length(x(:,1))
dimy=length(y(1,:))
z=zeros(dimx,dimy);
z=x.*x+y.*y;
figure(1)
mesh (x, y, z);

4) Reprezentarea unui set de date sub forma unor bare verticale se real-
izează folosind instrucţiunea bar,
Sintaxa:
bar(x,y)

12
Probleme de matematica rezolvate cu Octave/Matlab

Descriere:
• x şi y sunt vectori linie ce au aceeaşi lungime n,
• elementele vectorului x trebuie să fie egal depărtate şi crescătoare.
• datele se reprezintă sub forma unor bare verticale.

5) Reprezentarea unui set de date sub forma unor segmente verticale se


realizează folosind instrucţiunea stem.
Sintaxa:
stem(x,y)

Descriere:
• x si y sunt vectori linie ce au aceeaşi lungime n,
• elementele vectorului x trebuie să fie egal depărtate şi crescătoare,
• datele se reprezintă sub forma unor segmente verticale care au ı̂n capătul
ce reprezintă poziţia punctului P (x(i), y(i)) un cerculeţ.

Exemplul 1:
Să se reprezinte grafic funcţiile:
-f : [0, π] → R, f (x) = 2 sin(3x) folosind culoarea verde
-g : [0, π] → R, g(x) = 2 cos(3x) folosind culoarea roşie.

%se construieste o diviziune a intervalului [0,\pi]


xvector=0:pi/1000:pi;
% se calculeaza valoarea functiei in fiecare punct
yvectorf=2*sin(3*xvector);
yvectorg=2*cos(3*xvector);
%reprezentarea grafica:
figure(1)
axes(’fontsize’,10)
hold on
plot(xvector,yvectorf,’linewidth’,2,’g’)
hold on
plot(xvector,yvectorg,’linewidth’,2,’r’)
xlabel(’x’,’fontsize’,10)
ylabel(’f(x), g(x)’,’fontsize’,8)
%alegerea intervalelor pentru axe
axis([0, pi, -3, 3])

13
Probleme de matematica rezolvate cu Octave/Matlab

În fig. 1.1 sunt reprezentate graficele funcţiilor f şi g.

Figura 1.1: Graficele funcţiilor f (x) = 2 sin(3x) (verde) si g(x) = 2 cos(3x) (rosu)

Exemplul 2:
Să se reprezinte grafic curba descrisă prin ecuaţiile parametrice:


 x(t) = sin(t)




y(t) = cos(t)

(1.2)


z(t) = 2t, t ∈ [0, 6π].




t=0:pi/10:6*pi;
x=sin(t);
y=cos(t);
z=2*t;
figure(1)
plot3(x,y,z,’linewidth’,2)
hold on
xlabel(’x’,’fontsize’,8); hold on
ylabel(’y’,’fontsize’,8); hold on
zlabel(’z’,’fontsize’,8); hold on
end

În fig. 1.2 este reprezentată curba de mai sus numită elice cilindrică.

14
Probleme de matematica rezolvate cu Octave/Matlab

Figura 1.2: Elicea cilindrică

Exemplul 3:
Să se reprezinte grafic funct, ia f : [−5, 5] × [−5, 5] → R, f (x, y) = x2 + y 2 .
%construirea diviziunilor
tx =(-5:1:5)’
ty=(-5:1:5)’
%construirea matricelor nodurilor
[x, y] = meshgrid (tx, ty)
dimx=length(x(:,1))
dimy=length(y(1,:))
z=zeros(dimx,dimy);
%calculul matricei valorilor functiei
z=x.*x+y.*y;
z

figure(1)
mesh (x, y, z);
xlabel (’x’,’fontsize’,8);
ylabel (’y’,’fontsize’,8);
zlabel (’f(x,y)’,’fontsize’,8);

În fig. 1.3(a) este reprezentat graficul funct, iei f pentru o diviziune a inter-
valului [−5, 5] cu pasul p = 1 iar ı̂n fig. 1.3(b) este reprezentat graficul funct, iei
f pentru o diviziune a intervalului [−5, 5] cu pasul p = 0, 1.

15
Probleme de matematica rezolvate cu Octave/Matlab

(a) (b)

Figura 1.3: Graficul functiei f pentru o diviziune cu pas p=1 (a) si respectiv pentru
o diviziune cu pas p=0.1 (b)
Mai jos sunt redate matricele pentru pasul p = 5, mai mare decât cel folosit
la reprezentările grafice din fig. 1.3.
• Vectorul tx cont, ine nodurile diviziunii intervalului variabilei x.
• Vectorul ty cont, ine nodurile diviziunii intervalului variabilei y.
• Matricele x si y se construiesc cu instrucţiunea meshgrid şi reprezintă
coordonatele x respectiv y ale nodurilor domeniului [−5, 5] × [−5, 5].
• Matricea z reprezintă matricea valorilor funcţiei f ı̂n nodurile domeniului.
tx = -5
0
5
ty = -5
0
5
x = -5 0 5
-5 0 5
-5 0 5
y = -5 -5 -5
0 0 0
5 5 5
z = 50 25 50
25 0 25
50 25 50

16
Calcul simbolic in Matlab

Exemplul 5:
Într-o clasă sunt 29 de elevi care au obt, inut la un test notele din tabelul
următor:
Notă 4 5 6 7 8 9 10
Număr de elevi 2 3 3 4 8 6 3
Să se reprezinte sub formă de bare verticale rezultatele elevilor.

function reprezentarenote;
x=[4 5 6 7 8 9 10];
y=[2 3 3 4 8 6 3]
figure(1)
bar(x,y)
xlabel ("Nota",’fontsize’,8);
ylabel ("Numar de elevi",’fontsize’,8);

figure(2)
stem(x,y)
xlabel ("Nota",’fontsize’,8);
ylabel ("Numar de elevi",’fontsize’,8);
endfunction

În fig. 1.4 sunt reprezentate rezultatele elevilor.

(a) (b)

Figura 1.4: Rezultatele elevilor

17
Calcul simbolic in Matlab

1.4 Calcul simbolic in Matlab


Software-ul Matlab permite rezolvarea unei game mai largi de probleme matem-
atice in comparatie cu Octave. Exemplificam in cele ce urmeaza urmatoarele
probleme ce se bazeaza pe calcul simbolic:
• calcul de derivate
• calcul de derivate partiale
• calcul de primitive si integrale definite
• calcul de integrale duble pe domenii dreptunghiulare
• calcul de integrale triple pe domenii paralelipipedice

Calcul de derivate:
function derivare;

syms f(x)

f(x)=x^3;
der1(x)=diff(f,x)
der2(x)=diff(der1,x)

x=[1:0.1:2]
valder1=der1(x)
valder2=der2(x)
valf=f(x)

figure (1)
plot(x,valf,"b")
hold on
plot(x,valder1,"r");
hold on
plot(x,valder2,"g")

end

Rezultatele rulării acestui program sunt:


der1(x) =3*x^2

der2(x) =6*x

x = Columns 1 through 11

18
Calcul simbolic in Matlab

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000


1.7000 1.8000 1.9000 2.0000

Columns 12 through 21

2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000


2.8000 2.9000 3.0000

valf =
[1, 1331/1000, 216/125, 2197/1000, 343/125, 27/8, 512/125,
4913/1000, 729/125, 6859/1000, 8, 9261/1000, 1331/125,
12167/1000, 1728/125, 125/8, 2197/125, 19683/1000, 2744/125,
24389/1000, 27]

valder1 =
[3, 363/100, 108/25, 507/100, 147/25, 27/4, 192/25, 867/100, 243/25,
1083/100, 12, 1323/100, 363/25, 1587/100, 432/25, 75/4, 507/25,
2187/100, 588/25, 2523/100, 27]

valder2 =
[6, 33/5, 36/5, 39/5, 42/5, 9, 48/5, 51/5, 54/5, 57/5, 12, 63/5,
66/5, 69/5, 72/5, 15, 78/5, 81/5, 84/5, 87/5, 18]

Figura 1.5: Reprezentarea functiei si a derivatelor

19
Calcul simbolic in Matlab

Calcul de derivate partiale


function derivatepartiale;
clc
syms f(x,y)

f(x,y)=sin(x)*cos(y);
dfx(x,y)=diff(f,x)
dfy(x,y)=diff(f,y)
d2fxx=diff(dfx,x)
d2fyy=diff(dfy,y)
d2fxy=diff(dfy,x)

tx=[0:pi/100:3*pi]
ty=[0:pi/100:3*pi]

[x, y] = meshgrid (tx, ty)

z=f(x,y)
figure(1)
mesh (x, y, z);

z=dfx(x,y)

figure (2)
mesh (x, y, z);

z=dfy(x,y)

figure (3)
mesh (x, y, z);

end

O parte din rezultatele rularii sunt:


f(x, y) =cos(y)*sin(x)

dfx(x, y) =cos(x)*cos(y)

dfy(x, y) =-sin(x)*sin(y)

d2fxx(x, y) =-cos(y)*sin(x)

d2fyy(x, y) =-cos(y)*sin(x)

20
Calcul simbolic in Matlab

d2fxy(x, y) =-cos(x)*sin(y)

Figura 1.6: Reprezentarea functiei

Figura 1.7: Reprezentarea derivatei de ordinul I in raport cu x

21
Calcul simbolic in Matlab

Figura 1.8: Reprezentarea derivatei de ordinul I in raport cu y


Calcul de primitive si integrale definite

function primitive
syms f(x)
f(x)=3*x^4
% o primitiva:
intf(x)=int(f,x)

% integrala definita pe intervalul [a,b]:


a=0; b=5;
intdef=int(f,x,a,b)
end

Rezultatele rularii acestui program:


primitive

f(x) =3*x^4

intf(x) =(3*x^5)/5

intdef =1875

Calcul de integrale duble pe domenii dreptunghiulare

function intfunctiide2var
clc
syms f(x,y)

22
Calcul simbolic in Matlab

f(x)=3*x^4+x*y
% o primitiva in raport cu x
intfx(x,y)=int(f,x)

% integrala definita pe intervalul [a,b], in raport cu x:


a=0; b=5;
intdefx(y)=int(f,x,a,b)

% integrala dubla pe domeniul dreptunghiular [a,b]X[c,d]:


a=0; b=5; c=1; d=3;
intdreptunghi=int(int(f,x,a,b),y,c,d)
end

Rezultatele rularii acestui program:


f(x) =3*x^4 + y*x

intfx(x, y) =(3*x^5)/5 + (y*x^2)/2

intdefx(y) =(25*y)/2 + 1875

intdreptunghi =3800

Calcul de integrale triple pe domenii paralelipipedice

function intfunctiide3var
clc
syms f(x,y,z)
f(x,y,z)=3*x^4+x*y*z
% o primitiva in raport cu x
intfx(x,y,z)=int(f,x)

% integrala definita pe intervalul [a,b], in raport cu x:


a=0; b=5;
intdefx(y,z)=int(f,x,a,b)

% integrala tripla pe domeniul paralelipipedic [a,b]X[c,d]X[g,h]:


a=0; b=5; c=1; d=3;g=1;h=2;
intparalelipiped=int(int(int(f,x,a,b),y,c,d),z,g,h)
end

23
Calcul simbolic in Matlab

f(x) =3*x^4 + y*z*x

intfx(x, y, z) =(3*x^5)/5 + (y*z*x^2)/2

intdefx(y, z) =(25*y*z)/2 + 1875

intparalelipiped =3825

>>
>>

24

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