Laborator 1. Calcule matematice fundamentale in Matlab...
Transcript of Laborator 1. Calcule matematice fundamentale in Matlab...
-
1
Laborator 1. Calcule matematice fundamentale in Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
MATLAB 7.0 este un pachet de programe de o performanţă remarcabilă care are o
vastă aplicabilitate atât în domeniul ştiinţei cât al ingineriei.
Pentru lansarea în execuţie a programului se acţionează dublu click pe pictograma
Matlab 7.0 de pe Desktop sau se selectează StartAll Programs Matlab 7.0.
In figura 1 se observa aparitia a trei tipuri de ferestre cu care lucreaza Matlab 7.0.
Fig. 1. Ferestrele din Matlab 7.0.
Ferestrele din Matlab 7.0 sunt:
1. fereastra de comenzi Command Window;
2. fereastra Command History în care sunt stocate comenzile lansate în execuţie în
fereastra de comenzi;
-
2
3. fererastra Workspace, ce prezintă atât variabilele curente din memorie cu
numele, valoarea şi tipul acestora (dacă alegem subfereastra Workspace) cât şi
directorul current, împreună cu subdirectoarele şi fişierele acestuia (dacă
alegem subfereastra Current Directory).
Dintre funcţiile utilizate pentru controlul general al Matlab-ului 7.0 menţionăm
help nume funcţie furnizează informaţii “on-line” despre funcţia intitulată
nume funcţie;
who listează variabilele curente din memorie.
Pentru a obţine informaţii “on-line” despre toate funcţiile din Matlab 7.0 şi despre
operatorii utilizaţi de acest program vom accesa:
HelpMatlab HelpFunctions In Alphabetical Order.
Matlab 7.0 utilizează următorii operatori aritmetici între doi scalari:
Nume operator Forma algebrică Forma Matlab 7.0
Adunarea yx yx
Scăderea yx yx
Înmulţirea yx yx
Împărţirea la dreapta yx : yx /
Împărţirea la stânga xy : yx \
Ridicarea la putere yx yx^
Ordinea operaţiilor din Matlab 7.0 este aceeaşi cu cea a operaţiilor aritmetice,
cunoscute din matematica elementară, adica se efectuează întâi operaţiile cuprinse în
paranteze, apoi ridicarea la putere, înmulţirea şi împărţirea, adunarea şi scăderea.
Vom prezenta cateva funcţii din Matlab 7.0 utilizate în calcule matematice
fundamentale.
Funcţia Semnificaţie
abs(x) Determină modulul unui număr real sau complex x
acos(x) Calculează xarccos
asin(x) Calculează xarcsin
base2dec('strn',base) Converteşte nr. strn din baza base în baza 10
[th,rho]=cart2pol(x,y) Transformă coordonatele carteziene (x,y) în coordonate polare
-
3
Matlab 7.0 dispune de funcţia unitsratio, pe care nu o au versiunile precedente de
Matlab. Unitsratio recunoaşte următorii identificatori pentru convertirea unităţilor de
lungime: metrul- „m‟, centimetrul- „cm‟, milimetrul- „mm‟, micronul- „micron‟,
kilometrul- „km‟, mila nautică- „nm‟, piciorul- „ft‟, inch- „in‟, yard- „yd‟, mila
internaţională- „mi‟.
(unghiul th este returnat în radiani)
[x,y]=pol2cart( th,rho) Transformă coordonatele polare (th,rho) în coordonate
carteziene (unghiul th este dat în radiani)
[th,phi,r]=cart2sph(x,y,z) Transformă coordonatele carteziene (x,y,z) în coordonate sferice
(unghiurile th şi phi sunt returnate în radiani)
[x,y,z]=sph2cart(th,phi,r) Transformă coordonatele sferice (th,phi,r) în coordonate
carteziene (unghiurile th şi phi sunt date în radiani)
complex(a,b) Construieşte ibaz
conj(z) Determină conjugatul numărului complex z
cos(x) Calculează xcos
cot(x) Calculează xcot
dec2base(d,base) Converteşte numărul d din baza 10 în baza base
dms2deg(d,m,s) Converteşte în grade un unghi dat în grade(degree), minute(m),
secunde(second)
dms2rad(d,m,s) Converteşte în radiani un unghi dat în grade(degree), minute(m),
secunde(second)
exp(x) Calculează xe
log(x) Calculează xln
log2(x) Calculează x2log
pow2(x) Calculează x2
rats(d) Aproximează d printr-o fracţie raţională
sin(x) Calculează xsin
sqrt(x) Calculează x
tan(x) Calculează xtg
unitsratio(to, from) Converteşte unităţi de măsură pentru lungimi şi unghiuri
-
4
Unitsratio recunoaşte următorii identificatori pentru convertirea unghiurilor:
gradul- „deg‟, radianul- „rad‟; 1 rad este unghiul pentru care raportul dintre lungimea
arcului şi rază este egal cu 1.
Din punct de vedere al formatului extern de afişare a numerelor pe ecran, Matlab
7.0 pune la dispoziţia utilizatorului funcţia format, a cărei sintaxă este: format(„type‟).
Principalele formate de afişare sunt:
Valoare
a pentru
type
Rezultat Exemplu
long 15 cifre pentru double (numere reprezentate în dublă
precizie) şi 8 cifre pentru single (numere reprezentate
în simplă precizie)
>>format long
>> a=5/6
a=
0.83333333333333
>>single(a)
ans=
0.8333333
long e 15 cifre pentru double şi 8 cifre pentru single+exp >> format(„long‟,‟e‟)
>>b=0.32/8799
b=
3.636776906466644e-005
>>single(b)
b=
3.6367768e-005
short 5 cifre >>format short
>> a=32/89
a=
0.3596
short e
5 cifre+exp >> format(„short‟,‟e‟)
>> a=32/89
a=
3.5955e-001
-
5
Dintre variabilele speciale şi constantele din Matlab 7.0 menţionăm:
Aplicaţii
1. Determinaţi numărul complex z cunoscând partea sa reală şi partea imaginară:
.5Im
2Re
z
z
2. Să se aproximeze prin fracţii raţionale numerele: 6543 6,5,4,3,2
>> rats([2^(1/2),3^(1/3),4^(1/4),5^(1/5),6^(1/6)]);
3. Să se calculeze cu 14 zecimale valoarea fracţiei 3700
8959.
4. Să se scrie numărul 6562 din baza 7 în baza 10 .
>> base2dec('6562',7)
ans =
2347
5. Determinaţi câţi metri are 1 yard.
>>to=‟m‟;
>>from=‟yd‟;
>>unitsratio(to, from)
ans=
0.9144
6. Câţi inci au 0.254 m?
>>0.254*unitsratio(„in‟,‟m‟)
ans variabilă creată automat atunci când unei expresii nu i-a fost asignat un nume
realmax cea mai mare valoare pozitivă în virgulă mobilă, care poate fi folosită în calcule,
adică 1.7977e+308
realmin cea mai mică valoare pozitivă în virgulă mobilă, care poate fi folosită în calcule,
adică 2.2251e-308
inf variabilă ce semnifică
pi PI 3.1415926535897....
i sau j variabile folosite pentru introducerea numerelor complexe
nan Variabilă care reprezintă un Not-a-Number .
-
6
ans=
10
7. Determinaţi câte grade are un radian
>>unitsratio(„deg‟,‟rad‟);
8. Transformaţi în grade unghiul de 547157 .
>>dms2deg(57,17,45);
9. Calculaţi 43.113tg .
>> tan(dms2rad(113.43,0,0));
10. Determinaţi coordonatele sferice ale punctului 12,4,3 P .
>> [th,phi,r] = cart2sph(3,-4,-12);
11. Să se calculeze expresiile următoare:
a. 33 25172517
b. 53
74
53
74
c. 37266 e35log36
7log7log A
d. 33221 xxxM , pentru 4x
e. 32 111 zzzN , pentru iz
f.
33
1
1
1
1
i
i
i
i
g. 2
13
3
2
x
xxF , pentru 1x
h. 53log xB , pentru 7x
i. xxxx cossin1
)ctgtg2( , pentru 5
x ;
j. xxxxC 7cos5cos3coscos 4444 , pentru 8
x
-
7
Tema
1. Calculaţi:
a) 324221
b)
4
3loglog
3
1
2
1
c) 777
d) 331 i
e) 39.320coslg
f) 7362ctg .
2. Determinaţi valoarea expresiilor următoare:
a) 1
2arcsin
22
x
xu
, pentru 2.2x
b) xee
xxxxx sin2
cossin
, pentru 6.1x
c) 2
2
1
1
zz
zz
, pentru iz
3. Verificaţi dacă:
a) 3x este soluţie a ecuaţiei xxxx 6543 ;
b) 331 347347 x este soluţie a ecuaţiei 01433 xx ;
c) iu 11 este soluţie a ecuaţiei 03212 ixix ;
d) 8
71
x şi
22
212
x sunt soluţii ale ecuaţiei 0sin
7
3cos xx .
4. Să se efectueze următoarele operaţii:
a) 22 1111110000110000010
b) 66 1442:12201200 .
5. Determinaţi câţi radiani reprezintă unghiul de 547157 .
-
1
Laborator 2. Definirea tablourilor si a functiilor (in linia de comanda)
in Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
În Matlab 7.0 definirea tablourilor se poate face prin una din următoarele
modalităţi:
1. introducerea listei de elemente componente,
2. generarea lor cu ajutorul unor instrucţiuni şi funcţii,
3. crearea de fişiere cu extensia .m,
4. încărcarea lor din fişiere de date externe.
În cazul primei metode, cea mai utilizată dintre toate, elementele unei linii dintr-un
tablou sunt separate prin spaţii sau virgule iar liniile se separă prin punct-virgulă.
Elementele tabloului sunt cuprinse între paranteze drepte şi pot fi atât numere reale
sau complexe cât şi orice expresie din Matlab 7.0.
Elementele
unui vector x pot fi identificate prin notaţia ix , semnificând componenta a i-a
din vectorul x , ni ,1 , n fiind numărul total de componente ;
unei matrice A pot fi identificate prin notaţia jiA , , semnificând elementul
aflat în A , la intersecţia dintre linia i şi coloana j , mi ,1 , nj ,1 , m fiind
numărul de linii iar n numărul de coloane ale matricei A .
Matlab 7.0 utilizează următorii operatori aritmetici între două matrici:
Nume operator Forma algebrică Forma Matlab 7.0
Adunarea YX YX
Scăderea YX YX
Înmulţirea YX YX
Împărţirea la dreapta 1* YX YX /
-
2
Împărţirea la stânga YX *1 YX \
Ridicarea la putere pX , p scalar pX ^
Observaţie. Produsul a două matrici este posibil dacă şi numai dacă numărul
coloanelor matricei X este egal cu numărul liniilor matricei Y .
Transpunerea unui tablou se realizează folosind operatorul apostrof.
Dintre funcţiile folosite pentru generarea tablourilor menţionăm:
Observaţie. Transformarea numerelor r distribuite uniform pe intervalul 1,0 în
numerele x distribuite uniform pe intervalul ba, se realizează prin intermediul relaţiei
arabx .
Vom prezenta câteva funcţii din Matlab 7.0 utilizate în calcule cu tablouri.
eye(n) Generează o matrice unitate cu n linii şi n coloane
eye(m,n) Generează o matrice unitate cu m linii şi n coloane
ones(n) Generează o matrice de unu-ri cu n linii şi n coloane
ones(m,n) Generează o matrice de unu-ri cu m linii şi n coloane
rand(m,n) Generează o matrice ale cărei elemente sunt numere aleatoare, cu distribuiţie
uniformă în intervalul 1,0
randn(m,n) Generează o matrice ale cărei elemente sunt numere aleatoare, cu distribuiţie
normală, de medie 0 şi varianţă 1
zeros(n) Generează o matrice nulă cu n linii şi n coloane
zeros(m,n) Generează o matrice nulă cu m linii şi n coloane
Funcţia Semnificaţie
cross(x,y) Calculează produsul vectorial al vectorilor x şi y
dot(x,y) Calculează produsul scalar al vectorilor x şi y
u=find(x==a) Returnează în u indicii elementelor din vectorul x , care au
valoarea egală cu a
[u,v]=find(X==a) Returnează indicele liniei(vectorul u ) şi al coloanei (vectorul v )
matricei argument X , care conţin elemente ce au valoarea egală
cu a
sort(x) Sortează în ordine crescătoare elementele vectorului x
-
3
Observaţii. Specific pentru Matlab 7.0 este opţiunea descend a funcţiei sort; pentru
versiunile precedente de Matlab, sortarea poate fi realizată numai în ordine crescătoare,
neeexistând această opţiune.
Ca orice mediu de programare, Matlab 7.0 lucrează fie în modul linie de comandă,
fie cu programe conţinute în fişiere.
O funcţie poate fi definită în Matlab 7.0 atât în modul clasic (întâlnit şi în versiunile
precedente), adică într-un fişier function cât şi în linia de comandă, facilitate care nu
este posibilă la variantele precedente lui Matlab 7.0.
Sintaxa de definiţie a unei funcţii în linia de comandă, în Matlab 7.0 este
nume_funcţie=@(var1,…,varn) expresie_funcţie
Aplicaţii
1) Să se sorteze în ordine descrescătoare elementele vectorului
7820176.0 x , cu precizarea indicelui fiecărui element.
>> x=[-0.76 -1 20 8 -7];
>> [y,I]=sort(x,’descend’);
2) Să se determine indicii elementelor din vectorul 186176.0 x , a
căror valoare este egală cu 1 .
>> x=[-0.76 -1 -6 8 -1];
>> u=find(x==-1);
3) Să se formeze matricea
33
22
11
a pe baza vectorilor
3
2
1
u şi
3
2
1
v .
>> u=[1 2 3]';
>> v=[-1 -2 -3]';
>> a=[u v];
[y,I]= sort(x) Returnează în vectorul y elementele sortate în ordine
crescătoare ale vectorului x iar în I indicii elementelor sortate
sort(x,’descend’) Sortează în ordine descrescătoare elementele vectorului x
-
4
4) Se consideră matricea
34.71278
78547.5
79.007.4
39971
A .
Se cere:
a) Transformaţi matricea A într-un vector coloană b ;
>> A=[1 -7 99 3;4.7 0 0.9 -7;5.7 4 5 78;-78 12 -7.4 3];
>> b=A(:);
b) Să se extragă submatricea D de dimensiune 23x , ce constă din elementele situate
pe ultimele trei linii şi primele două coloane ale matricei A .
>> D=A(2:4,1:2);
5) Să se calculeze produsul scalar şi cosinusul unghiului dintre vectorii
kjia 2 şi ax2
1̀ .
>> a=[2 1 -1];
>> x=a/2;
>> s=dot(a,x);
>> u=s/(norm(a)*norm(x));
Rezultă că axax ,0, sunt coliniari.
6) În spaţiu se dau punctele 1,2,3A , 0,4,4B , 5,5,5C , 1,5,1 D . Să se verifice
dacă DCBA ,,, sunt coplanare.
Pasul 1. Scriem Matlab în vectorii A , B , C , D coordonatele punctelor 1,2,3A ,
0,4,4B , 5,5,5C , 1,5,1 D .
>> A=[3 2 1];
>> B=[4 4 0];
>> C=[5 5 5];
>> D=[-1 5 -1];
Pasul 2. Determinăm expresiile analitice ale vectorilor AB , AC , AD .
>> a=B-A;
>> b=C-A;
-
5
>> c=D-A;
Pasul 3. Calculăm produsul mixt al vectorilor AB , AC , AD .
>> M=[a;b;c];
>> v=det(M);
Pasul 4. Calculăm volumul tetraedrului ABCD
>> v=abs(v)/6;
Deoarece 0ABCDV rezultă A , B , C , D necoplanare.
7) Calculaţi produsul vectorial al vectorilor kjiu 23 , kjv 4 .
>> u=[3 -2 1];
>> v=[0 -1 4];
>> cross(u,v);
Deci: kjivu 3127 .
8) Definiţi în linia de comandă funcţia xxxf2
3sin22sin şi apoi calculaţi f .
>> f=@(x) sin(2*x)+2*sin(3*x/2)
f =
@(x) sin(2*x)+2*sin(3*x/2)
>> f (pi)
ans =
-2.0000
Tema
1. Să se genereze:
a) o matrice identitate 77x ;
b) o matricea nulă 1010x ;
c) o matrice aleatoare 1110x cu elemente distribuite uniform şi normal.
2. Să se sorteze în ordine crescătoare elementele vectorului
7820176.0 x , cu precizarea indicelui fiecărui element.
-
6
3. Se consideră matricea
104
320
011
C .
Calculaţi: 323 I142 CCC .
4. Se consideră matricele:
2
0
1
a ,
83
51
90
B ,
111
107
014
C , 720 d .
Verificaţi care dintre următoarele produse au sens şi în acest caz efectuaţi-le: Ba ,
ad , da , dB , Bd ,CB , BC , dC , Cd , aC , Ca , 2C , dBC , dCB , adC , adBC , adCa ,
2a .
5. Să se determine indicii elementelor din matricea
33
31X a căror valoare
este mai mare sau egală cu 3 .
6. Fie matricea
02376.05
32431A . Să se extragă din matricea A
submatricea
2376.0
43B .
7. Calculaţi 5.2,1f cu ajutorul unei funcţii Matlab 7.0, definită în linia de
comandă, pentru 22, yxyxf .
8. Să se calculeze produsul mixt al vectorilor
kjia 2 , kjib 23 , kjc 2 .
-
1
Laborator 3. Calcul simbolic în Matlab 7.0 cu aplicaţii în Algebră
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Algebră.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Funcţia Semnificaţie
det(A) Calculează determinantul simbolic al matricei A
inv(A) Calculează inversa simbolică a matricei A
transpose(A) Determină transpusa simbolică a matricei A
simplify(E) Simplifică simbolic o expresie E
simple(A) Simplifică simbolic o expresie sau o matrice; afişează
rezultatele intermediare ale calculelor, în timp ce funcţia
simplify prezintă rezultatul final
factor(E) Factorizează expresia E
[r,p,k]=residue(B,A) Se obţine descompunerea în fracţii simple pe baza
parametrilor de ieşire: r (vectorul coloană al rezidurilor),
p (vectorul coloană al polilor), k (vectorul linie al
termenilor liberi)
expand(E) Realizează expandarea expresiei E
collect(P,x) Colectează termenii asemenea din polinomul P în raport
cu variabila precizată x
coeffs(P,x) Determină coeficienţii polinomului P în raport cu x
subs(S,new) Înlocuieşte variabila liberă din expresia S cu new
subs(S,old,new) Înlocuieşte variabila simbolică old din expresia S cu
variabila numerică sau simbolică new
solve(eq) Rezolvă ecuaţia 0eq în raport cu variabila din expresia
eq
-
2
Observaţie. Descompunerea în fracţii simple se obţine astfel:
xknpx
nr
px
r
px
r
xA
xB
2
2
1
1.
Dacă polul jp este de ordinul m , atunci în descompunere vor apare termeni de
forma
xk
jpx
mjr
jpx
jr
jpx
jr
m
11
2 .
Variabilele utilizate în calcule simbolice se declară prin comada “scurtă” syms:
syms var1 var2… este notaţia scurtă pentru
var1 = sym('var1');
var2 = sym('var2'); ...
syms var1 var2 ... real
este notaţia scurtă pentru
var1 = sym('var1,’real');
var2 = sym('var2',’real'); ...
syms var1 var2 ... positive
este notaţia scurtă pentru
var1 = sym('var1,’positive');
var2 = sym('var2',’positive'); ...
Aplicaţii
1) Scrieţi sub o formă simplificată matricea
2ln
222
cossin2
sincos
xexx
xxxxA .
Pasul 1. Declarăm pe x ca variabilă simbolică
>> syms x
Pasul 2. Scriem matricea A
>> A=[cos(x)^2+sin(x)^2 x^2/x; 2*sin(x)*cos(x) exp(log(x^2))];
solve(eq,var) Rezolvă ecuaţia 0eq în raport cu variabila var din
expresia eq
solve(eq1,..,eqn,var1,..,varn) Rezolvă sistemul format din ecuaţiile 0,,01 eqneq
în raport cu variabilele nvar,,1var
-
3
Pasul 3. Scriem sub formă simplificată matricea A
>>u=simple(A)
u =
[ 1, x]
[ sin(2*x), x^2]
2) Simplificaţi expresia
nnnn
nnnn
E53253
5353
11
12
.
Pasul 1. Declarăm pe n ca variabilă simbolică
>> syms n
Pasul 2. Scriem expresia E
>> E=(3^(n+2)*5^n+3^n*5^(n+1))/(3^(n+1)*5^n+2*3^(n+1)*5^n);
Pasul 3. Simplificăm expresia E
>> simplify(E)
ans =
14/9
3) Calculaţi determinantul, transpusa şi inversa simbolică pentru următoarea matrice:
xx
xxA
cossin
sincos.
Pasul 1. Declarăm pe x ca variabilă simbolică
>> syms x
Pasul 2. Scriem matricea A
>> A=[cos(x) -sin(x);sin(x) cos(x)];
Pasul 3. Calculăm determinantul simbolic al matricei A
>> det(A)
ans =
cos(x)^2+sin(x)^2
Pentru simplificarea rezultatului vom folosi
>> simplify(det(A))
ans =
1
-
4
Pasul 4. Determinăm transpusa simbolică a matricei A
>> transpose(A)
ans =
[ cos(x), sin(x)]
[ -sin(x), cos(x)]
Pasul 5. Determinăm inversa simbolică a matricei A
>> inv(A)
ans =
[ cos(x)/(cos(x)^2+sin(x)^2), sin(x)/(cos(x)^2+sin(x)^2)]
[ -sin(x)/(cos(x)^2+sin(x)^2), cos(x)/(cos(x)^2+sin(x)^2)]
4) Să se factorizeze expresia
322223 333232 yxyxyyxyxxE .
>> syms x y
>> E=x^3+y*x^2-2*sqrt(3)*x^2*y-2*sqrt(3)*x*y^2+3*y^2*x+3*y^3;
>> factor(E)
ans =
(x+y)*(x-3^(1/2)*y)^2
5) Calculaţi suma
nS
nn,
2
11
4
5
2
32
1 .
>> syms k n
>> S=simplify(symsum(1+1/(2^(k-1)),k,1,n))
S =
n+2-2^(1-n)
6) Să se dezvolte determinantul
cbacbca
cabacba
cbcbaba
iar rezultatul să fie pus sub formă de produs.
>> syms a b c
-
5
>> A=[a+b -a+b-c b+c;a-b-c a+b a+c;a+c b+c -a-b+c];
>> factor(det(A))
ans =
-3*(b+a+c)*(b^2+a^2+c^2)
7) Descompuneţi în fracţii simple expresia:
9157
1
23
xxx
x.
Pasul 1. Scriem vectorul linie ce conţine coeficienţii polinomului de la numărătorul
fracţiei.
>> B=[1 1];
Pasul 2. Scriem vectorul linie ce conţine coeficienţii polinomului de la numitorul
fracţiei.
>> A=[1 -7 15 -9];
Pasul 3. Apelăm funcţia residue.
>> [r,p,k]=residue(B,A)
r =
-0.5000
2.0000
0.5000
p =
3.0000
3.0000
1.0000
k =
[]
Deci:
- există doi poli: primul de ordinul doi, 31 p şi cel de-al doilea de ordinul
întâi, 12 p ;
- descompunerea nu conţine termeni liberi (deoarece k este vectorul nul).
-
6
Pe baza rezultatelor obţinem următoarea descompunere în fracţii simple:
121
3
2
32
1
2
xxx
8) Colectaţi coficienţii expresiei
2332 yyyxyxxy
în raport cu variabila y .
>>syms x y
>> collect(x*y+x^2*y^3+x^3*y+y-y^2,y)
ans =
x^2*y^3-y^2+(x+x^3+1)*y
9) Expandaţi expresia:
2222 52532532 xxxxxE . >>syms x
>>E=(x^2*sqrt(2)-x*sqrt(3)+sqrt(5))*(x^2*sqrt(2)+x*sqrt(3)+sqrt(5))-
(x^2*sqrt(2)+sqrt(5))^2;
>> expand(E)
ans =
-3*x^2
10) Fie axxp 1 , cbxxxp 2
2 . Calculaţi determinantul:
3231
2221
1211
1
1
1
xpxp
xpxp
xpxp
scriind rezultatul sub formă de produs.
>> syms x a b c x1 x2 x3
>>p1=x+a;
>>p2=x^2+b*x+c;
>> A=[1 subs(p1,x,x1) subs(p2,x,x1); 1 subs(p1,x,x2) subs(p2,x,x2); 1 subs(p1,x,x3)
subs(p2,x,x3)]
A =
-
7
[ 1, x1+a, x1^2+b*x1+c]
[ 1, x2+a, x2^2+b*x2+c]
[ 1, x3+a, x3^2+b*x3+c]
>> factor(det(A))
ans =
-(-x3+x2)*(x1-x3)*(x1-x2)
11) Rezolvaţi ecuaţia
0122 22 mxmx
în raport cu variabila x .
>> syms x m
>> x=solve('x^2-2*(m+2)*x+m^2-1',x)
x =
[ m+2+(4*m+5)^(1/2)]
[ m+2-(4*m+5)^(1/2)]
12) Rezolvaţi sistemul de ecuaţii următor în raport cu zyx ,, :
m
mzymx
zmyx
mzyx
,
343
634
043
.
>> syms x y z m
>> [x,y,z]=solve('3*x+4*y+m*z','4*x+m*y+3*z-6','m*x+3*y+4*z-3-m',x,y,z)
x =
(3*m^2+60-30*m+m^3)/(-36*m+m^3+91)
y =
(2*m^2-45-3*m)/(-36*m+m^3+91)
z =
-(3*m^2+17*m-102)/(-36*m+m^3+91)
13) Determinaţi matricea A astfel încât:
TTT AA 112302132 .
Pasul 1. Fie cbaA .
-
8
>> syms a b c
>> A=[a b c];
Pasul 2. Calculăm TTT AAX 112302132 .
>> X=transpose(2*A-3*[1 2 0])-3*transpose(A)-transpose([2 1 -1])
X =
[ -a-5]
[ -b-7]
[ -c+1]
Pasul 3. Determinăm cba ,, astfel încât
0
0
0
X .
>> [a b c]=solve(X(1),X(2),X(3))
a =
-5
b =
-7
c =
1
Tema
1. Se consideră matricea
dc
baX .
Calculaţi:
2222 I)(2 baaXX ,
unde 2I semnifică matricea unitate de ordinul doi.
2. Fie matricele pătrate
00
00
00
A ,
000
100
010
B .
-
9
Calculaţi
100)( BA .
3. Simplificaţi expresiile:
a) xx
xxxE
2
23
2
23
b)
42:
442 2
2
2
32
x
x
x
x
xx
x
x
xF
c)
14
sin
34
sin2
x
xx
G .
4. Calculaţi suma
nnSn ,237413333 .
5. Se dau polinoamele
343 3456 xxxxxxP ,
6862 24 xxxxQ , x .
Să se transforme fracţia xQxP
xF într-o fracţie ireductibilă.
6. Descompuneţi în fracţii simple expresia:
a) 1
1
5 xx
b) 1892
132
23
2
xxx
xx
c) 2
234
13
1033
xx
xxx.
7. Expandaţi expresia:
a) 32 32 xxx
-
10
b) 3223 33 qpqpqpqpqpqp .
8. Factorizaţi expresia:
a) zyzxyxzyxE 3333
b) 324132 2 mmmF .
9. Să se scrie sub forma unui singur polinom produsul a două polinoame:
a) 11 223 XXXX
b)
222222 22 XXXX .
10. Să se calculeze determinantul
222
222
222
21
21
21
ccc
bbb
aaa
scriind rezultatul sub formă de produs.
11. Să se calculeze determinantul Vandermonde de ordinul patru:
34
33
32
31
24
23
22
21
4321
1111
xxxx
xxxx
xxxxV .
12. Înlocuiţi variabila simbolică b din expresia
4382 32 baba
cu valoarea 4 .
13. Se consideră expresia
nmxxE , nm, , 0m .
Calculaţi:
13221 xExExE .
14. Fiind dat polinomul
1234 XXXXXP
-
11
să se calculeze suma:
2
1
2
1
2
1
2
1
4321
xxxxS ,
unde 4,1, ixi sunt rădăcinile ecuaţiei 0xP .
15. Rezolvaţi ecuaţia
a) 0123 3 mmxx , m
b) 232
32
xx
xx
a
a, a
în raport cu variabila x .
16. Rezolvaţi sistemul de ecuaţii următor în raport cu zyx ,, :
a
aazyx
azayx
zyax
,
1
2
.
17. Determinaţi ba, şi c astfel încât sistemul
52
13
0
bzyax
zcybx
czayx
are soluţia 3x , 1y , 2z .
18. Determinaţi matricea A astfel încât:
83
50
12
421
0113
T
A .
-
1
Laborator 4. Calcul simbolic în Matlab 7.0 cu aplicaţii în Analiză
matematică
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Analiză
matematică.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Aplicaţii
1) Calculaţi următoarele limite:
Funcţia Semnificaţie
limit(f,x,a) Calculează limita expresiei simbolice f când ax
limit(f,x,a,’right’) Calculează limita expresiei simbolice f când ax , ax
limit(f,x,a,’left’) Calculează limita expresiei simbolice f când ax , ax
symsum(s,v,a,b) Calculează simbolic
b
av
s
diff(f,’x’) Calculează simbolic xf
diff(f,’x’,n) Calculează simbolic xf n
diff(f,n,’x’) Calculează simbolic xf n
int(f) Calculează simbolic xxf d
jacobian(F,v) Determină matricea Jacobiană ataşată funcţiei vectoriale F în
raport cu vectorul v . Atunci când F este o funcţie scalară,
funcţia jacobian returnează gradientul lui F
taylor(f,n,x) scrie primii n termeni din dezvoltarea în serie MacLaurin a
funcţiei f
taylor(f,n,x,a) scrie primii n termeni din dezvoltarea în serie Taylor a funcţiei
f în jurul punctului ax
-
2
a) x
exx
1
lim0,0
>> syms x
>> limit(exp(1/x),x,0,'left')
ans =
0
b) x
exx
1
lim0,0
>> limit(exp(1/x),x,0,'right')
ans =
Inf
c)
n
knnk
nnn
nn 122 sinlimlim
1sin1sin
1
>> syms k n
>> u=symsum(sin(k),k,1,n);
>> limit(1/(n+n^2)*u,n,inf);
d)
n
n n
n2)!(
!2lim
>> limit(('(2*n)!/(n!^2)')^(1/n),n,inf)
ans =
4
2) Să se determine raza de convergenţă pentru următoarea serie de puteri:
a) 1
2ln
n
nn xn
Pentru a determina raza de convergenţă a unei serii de puteri 0n
nn xa putem vom
folosi una din formulele:
nn
n
aR
lim
1
, (1)
sau
-
3
n
n
n a
aR
1lim
1
. (2)
Vom folosi formula (1).
>> syms n
>> 1/limit((n^(log(n)^2))^(1/n),n,inf)
ans =
1
b) nn
nx
nn
n
12 1
11
Vom folosi formula (2).
>> a=@(n) (-1)^n*(n+1)/(n^2+n+1);
>> 1/simplify(limit(abs(a(n+1)/a(n)),n,inf))
ans=
1
3) Calculaţi
n
k kk
kkn
12
2
23
13.
>>syms k n
>>s=(k^2+3*k+1)/(k^2+3*k+2);
>> simplify(n-symsum(s,k,1,n))
ans =
1/2*n/(n+2)
4) Calculaţi suma seriei:
a)
1
11ln
n n
>> a=simple(symsum(log(1+1/n),n,1,inf))
a =
Inf
b)
122 1
12
n nn
n
-
4
>> symsum((2*n+1)/(n^2*(n+1)^2),n,1,inf)
ans =
1
c)
1
2
!1
1
n n
nn
>> symsum((n^2+n-1)/'(n+1)!',n,1,inf)
ans =
2
5) Să se calculeze următoarele derivate:
a) xxf 2cos ; ? xf
>> diff(cos(sqrt(x))^2)
ans =
-cos(x^(1/2))*sin(x^(1/2))/x^(1/2)
sau
>> f=@(x) cos(sqrt(x))^2;
>> diff(f(x))
ans =
-cos(x^(1/2))*sin(x^(1/2))/x^(1/2)
b) 21lnarctg xxxxf , ? xf
>> diff(diff(x*atan(x)-log(1+x^2)))
ans =
2*x^2/(1+x^2)^2
c) 6116
123
xxx
xf , ?11 xf
>> diff(1/(x^3+6*x^2+11*x+6),11);
6) Dezvoltaţi în serie Taylor funcţia
22x
exf
,
în jurul punctului 5.0x , pentru 4n .
>>syms x
>> taylor(exp(-x^2)/2,4,0.5);
-
5
7) Scrieţi primii şapte termeni din dezvoltarea în serie de puteri a funcţiei
x
xxf
1
1ln
2
1, 1,1x .
>>syms x
>> taylor(1/2*log((1+x)/(1-x)),7)
ans =
x+1/3*x^3+1/5*x^5
8) Să se calculeze derivatele parţiale de ordinul întâi şi al doilea pentru funcţia
0,,,, yxyzyxfzx .
Pasul 1. Declarăm zyx ,, ca variabile simbolice
>> syms x y z
Pasul 2. Scriem expresia lui f
>> f=y^(x^z);
Pasul 3. Calculăm derivatele parţiale de ordinul întâi al lui f , adică x
f
,
y
f
şi
z
f
.
>> s=diff(f,x)
s =
y^(x^z)*x^z*z/x*log(y)
>> t=diff(f,y)
t =
y^(x^z)*x^z/y
>> u=diff(f,z)
u =
y^(x^z)*x^z*log(x)*log(y)
Pasul 4. Calculăm derivatele parţiale de ordinul doi al lui f , adică
2
2
x
f
,
2
2
y
f
,
2
2
z
f
,
xy
f
2,
xz
f
2 şi
yz
f
2.
>> simplify(diff(s,x))
ans =
y^(x^z)*z*log(y)*(x^(2*z-2)*z*log(y)+x^(z-2)*z-x^(z-2))
-
6
>> simplify(diff(t,y))
ans =
y^(x^z-2)*x^(2*z)-y^(x^z-2)*x^z
>> simplify(diff(u,z))
ans =
y^(x^z)*log(x)^2*log(y)*(x^(2*z)*log(y)+x^z)
>> simplify(diff(s,y))
ans =
y^(x^z-1)*z*(x^(2*z-1)*log(y)+x^(z-1))
>> simplify(diff(s,z))
ans =
y^(x^z)*log(y)*(x^(2*z-1)*log(x)*log(y)*z+x^(z-1)*log(x)*z+x^(z-1))
>> simplify(diff(t,z))
ans =
y^(x^z-1)*log(x)*(x^(2*z)*log(y)+x^z)
9) Se dă câmpul vectorial
kzjyixzyxv y 2cosesin,,2
.
Să se determine:
a) vdiv ;
b) vrot .
Observatie. În analiză vectorială, câmpurile de vectori, asociază un vector fiecărui
punct din spațiu.
a) Divergenţa unui câmp vectorial
kzyxRjzyxQizyxPzyxv ,,,,,,,,
se calculează conform formulei
z
R
y
Q
x
Pv
div , (3)
Observatie. În analiza vectorială, divergența este un operator care măsoară cât de
mult un câmp vectorial iese din sau intră într-un punct; divergența unui câmp vectorial
este un scalar. Pentru un câmp vectorial care reprezintă viteza de expandare a aerului
http://ro.wikipedia.org/wiki/C%C3%A2mp_vectorialhttp://ro.wikipedia.org/wiki/Calcul_vectorialhttp://ro.wikipedia.org/wiki/C%C3%A2mp_vectorialhttp://ro.wikipedia.org/wiki/Viteza
-
7
atunci când acesta este încălzit, divergența câmpului de viteze are o valoare pozitivă
deoarece aerul se dilată. Dacă aerul se răcește și se contractă, divergența este negativă.
>> syms x y z
>> P=sin(x);
>> Q=y*exp(y^2);
>> R=cos(2*z);
>> div=diff(P,x)+diff(Q,y)+diff(R,z)
div =
cos(x)+exp(y^2)+2*y^2*exp(y^2)-2*sin(2*z)
b) Rotorul câmpului vectorial v este
ky
P
x
Qj
x
R
z
Pi
z
Q
y
Rv
rot . (4)
>> r1=diff(R,y)-diff(Q,z);
>> r2=diff(P,z)-diff(R,x);
>> r3=diff(Q,x)-diff(P,y);
>> rot=[r1 r2 r3]
rot =
[ 0, 0, 0]
Deci
0000rot kjiv .
Observatie. În analiza vectorială, rotorul este un operator vectorial care evidențiază
"rata de rotație" a unui câmp vectorial, adică direcția axei de rotație și magnitudinea
rotației.
10) Să se calculeze gradientul următorului câmp scalar:
1,, 2324 zxyxyxzyxf .
Observatie. În analiză vectorială, câmpurile de scalari, asociază un scalar fiecărui
punct din spațiu. Campurile scalare se pot reprezenta prin suprafete de nivel
const,, zyx sau prin linii de nivel .const, yx
Gradientul unui câmp scalar zyx ,, este vectorul
http://ro.wikipedia.org/wiki/Calcul_vectorialhttp://ro.wikipedia.org/wiki/Operatorhttp://ro.wikipedia.org/wiki/Vectorhttp://ro.wikipedia.org/wiki/C%C3%A2mp_vectorialhttp://ro.wikipedia.org/wiki/C%C3%A2mp_vectorial
-
8
kz
jy
ix
grad .
Vectorul grad este perpendicular pe suprafetele de nivel corespunzatoare campului
scalar .
>> syms x y z
>> f=x^4+x*y^2+y^3+x^2*z+1;
>>v=[x y z];
>> jacobian(f,v)
ans =
[ 4*x^3+y^2+2*x*z, 2*x*y+3*y^2, x^2]
Deci
kxjyxyixzyxf 2223 3224grad .
11) Fie
2: DF , ,0D , sin,cos,,,,, 21 baffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff .
Observație. Determinantul funcţional (jacobianul) al funcţiilor 321 ,, fff în raport
cu variabilele ,, se calculează conform formulei:
333
222
111
321
,,D
,,D
fff
fff
fff
fff
(1)
>> syms rho th a b
>> x=a*rho*cos(th);
>> y=b*rho*sin(th);
>> F=[x y];
>> v=[rho th];
-
9
>> J=jacobian(F,v)
J =
[ a*cos(th), -a*rho*sin(th)]
[ b*sin(th), b*rho*cos(th)]
>> simplify(det(J))
ans =
a*b*rho
Deci,
abff
,D
,D 21 .
12) Fie 3: DF , 2,0 D ,
cos,sinsin,cossin,,,,,,,,,, 321 fffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , 3f , adică
,,D
,,D 321 fff .
>> syms rho th phi
>> F=[rho*sin(th)*cos(phi) rho*sin(th)*sin(phi) rho*cos(th)];
>> v=[rho th phi];
>> J=jacobian(F,v);
>> simplify(det(J))
ans =
sin(th)*rho^2
Deci
sin,,D
,,D 2321 r
fff.
13) Fie 3: DF , 2,0 D ,
zzfzfzfzF ,sin,cos,,,,,,,,,, 321 .
-
10
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , 3f , adică
z
fff
,,D
,,D 321
.
>> syms rho phi z
>> x=rho*cos(phi);
>> y=rho*sin(phi);
>> F=[x y z];
>> v=[rho phi z];
>> J=simplify(det(jacobian(F,v)))
J =
rho
Aşadar,
z
fff
,,D
,,D 321 .
14) Să se determine matricea Jacobiană
1,0,1 fJ
ataşată funcţiei vectoriale
33: f , zyxzxyxzyxzyxzyxf 181223,22,,, 22 . Observație. Pentru o functie vectoriala 33: f
zyxfzyxfzyxfzyxf ,,,,,,,,,, 321 ,
unde 3,1,: 3 ifi , matricea Jacobiană ataşată funcţiei vectoriale f în
punctul 3a este matricea
az
fa
y
fa
x
f
az
fa
y
fa
x
f
az
fa
y
fa
x
f
af
333
222
111
J
(6)
>> syms x y z
-
11
>> u=[x y z];
>> J=jacobian(f,u)
J =
[ 2*x+2*y+2*z, 2*x+2*y+2*z, 2*x+2*y+2*z]
[ 2, 1, -2]
[ 6*x+2*y-12*z, 2*x-18*z, -12*x-18*y]
>> v=[-1 0 -1];
>> subs(J,u,v)
ans =
-4 -4 -4
2 1 -2
6 16 12
Aşadar,
12166
212
444
1,0,1fJ .
15) Calculati
a) xxx d1 2
324
>> syms x
>> a=simplify(int(x^(-4)*(1-x^2)^(3/2)));
b)
xe
xxx d
1sin
11
2
>> int((1/x^2)*sin(1/x)*exp(1/x))
ans =
1/2*exp(1/x)*cos(1/x)-1/2*sin(1/x)*exp(1/x)
c) x
xxx
xd
)sincos( 2
2
>> int(x^2/(x*cos(x)-sin(x))^2)
ans =
(-1-2*x*tan(1/2*x)+tan(1/2*x)^2)/(-x+x*tan(1/2*x)^2+2*tan(1/2*x))
-
12
d)
x
xxx
xxd
11
1
122
2
>>simple( int(sqrt((x^2-x+1)/(x^2+x+1))*(1-1/x^2)))
ans =
-1/4*(3*log(2*x^2+1+2*(1+x^4+x^2)^(1/2))*x-
asinh(1/3*3^(1/2)*(2*x^2+1))*x+2*atanh(1/2*(2+x^2)/(1+x^4+x^2)^(1/2))*x-
4*(1+x^4+x^2)^(1/2))/x
e)
xx
xd
13 4
>> int(((1+x^(1/4))^(1/3))/sqrt(x))
ans =
12/7*(1+x^(1/4))^(7/3)-3*(1+x^(1/4))^(4/3)
Tema
1. Calculaţi:
a) x
x
xxlim
0,0
b) x
x
xxlim
0,0
c) x
x x
xx2
1
0,0 tg
elim
d) nnn
nn !!11lim
e) xx
xxxx
x2costgln
sincoscossinlim
33
4
.
2. Calculaţi suma seriei:
a)
1
2
6
23
nn
nnn
-
13
b)
1 21
32
n nnn
n
c)
1 3
21ln
n nn
3. Să se determine raza de convergenţă pentru următoarele serii de puteri:
a) 1 32n
nn
nx
b)
1
21
1n
nnn
xn
4. Dezvoltaţi în serie Taylor funcţia 21 xxf în jurul lui 2x , pentru
4n .
5. Scrieţi primii opt termeni din dezvoltarea în serie de puteri a funcţiei
xxf 3cos , x .
6. Să se calculeze următoarea derivată:
a) xf dacă 21
2arcsin
x
xxf
,
b) xg dacă 21
arccos
x
xxg
.
7. Să se calculeze derivatele parţiale de ordinul întâi şi al doilea pentru funcţia
a) xy
yxyxf
1arctg,
b) yxyxf 22 sin,
c) zzyxf xy sine,, .
8. Să se calculeze gradientul următoarelor câmpuri scalare:
a) 222
e,, zyxxyzzyxf
b)
222ln,, zyxzyxg
-
14
c) xzyzxy
xyzzyxzyxh
1arctg,, .
9. Se dă câmpul vectorial kzyjyzixxzyxv 2323,, 22 . Să se determine divergenţa şi rotorul lui v .
10. Fie
2: DF , ,0D , sin,cos,,,,, 21 ffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff .
11. Fie
2: DF , ,0D ,
sin,cos,,,,, 21 baffF .
Calculaţi determinantul funcţional (jacobianul) al funcţiilor 1f , 2f , adică
,D
,D 21 ff .
12. Calculaţi:
a)
4 341
d
x
x
b)
x
x
x xdecos1
sin1
c) xx dtg1ln
d)
x
xxx
xxd
1036
2574
23
2
e)
x
x
xxd
1
14.
-
1
Laborator 5. Calcul numeric în Matlab 7.0 cu aplicaţii în Algebră
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor numerice, ce au aplicaţii în Algebră.
Funcţiile utilizate în vederea efectuării acestor calcule numerice în Matlab 7.0 sunt:
Funcţia Semnificaţie
chol(A) Determină descompunerea Cholesky a matricei simetrică şi
pozitiv definită A
eig(A) Returnează un vector, ce conţine valorile proprii ale matricei A
[V,D]=eig(A) Returnează matricea diagonală D, ce conţine valorile proprii ale
matricei A şi matricea V, ale cărei coloane sunt vectorii proprii
corespunzători valorilor proprii
eigs(A) Returnează un vector, ce conţine cele mai mari şase valori
proprii ale matricei A
[V,D]=eigs(A) Returnează matricea diagonală D, ce conţine cele mai mari şase
valori proprii ale matricei A şi matricea V, ale cărei coloane
sunt vectorii proprii corespunzători acestor valori proprii
eigs(A,k) Returnează un vector, ce conţine cele mai mari k valori proprii
ale matricei A
[V,D]=eigs(A,k) Returnează matricea diagonală D, ce conţine cele mai mari k
valori proprii ale matricei A şi matricea V, ale cărei coloane
sunt vectorii proprii corespunzători acestor valori proprii
fsolve(F,I) Rezolvă sisteme de ecuaţii neliniare conţinute în funcţia
vectorială F , considerând I ca punct iniţial (vector de start).
Găseşte toate rădăcinile unei ecuaţiei neliniare conţinută în
funcţia F , ce se află în intervalul I
fzero(f,I) Găseşte o rădăcină a unei ecuaţiei neliniare conţinută în funcţia
-
2
Aplicaţii
1) Verificaţi dacă numerele 87 şi 41 sunt prime între ele.
>> gcd(87,41)
ans =
1
Deoarece 141,87c.d.m.m.c rezultă că numerele 87 şi 41 sunt prime între ele.
2) Aflaţi cel mai mic multiplu comun al numerelor : 40, 36, 126.
>> lcm(lcm(40,36),126)
ans =
2520
REZOLVAREA ECUATIILOR ALGEBRICE
Forma canonică a unei ecuaţii algebrice, cu o singură necunoscută este
0XP , (1)
unde:
011
1 aXaXaXaXPn
nn
n
, 0na ,
n este gradul polinomului, adică gradul ecuaţiei algebrice,
f , ce se află în intervalul I
gcd(A,B) Calculează cel mai mare divizor comun corespunzător lui A şi
B , care pot fi vectori sau scalari
lcm(A,B) Calculează cel mai mic multiplu comun corespunzător lui A şi
B , care pot fi vectori sau scalari
linsolve(A,b) Rezolvă sistemul de ecuaţii liniare bAX , nnA ,
1 nb , 1 nX
lu(A) Determină descompunerea LU a matricei pozitiv definită A
norm(X) Calculează norma vectorului (matricei ) X
roots(p) Determină rădăcinile polinomului ai cărui coeficienţi sunt
conţinuţi (în ordinea descrescătoare a puterilor variabilei) în
vectorul linie p
[ v1,..,vn]=solve(„eq1‟,..,‟eqn‟) Rezolvă sistemul format din ecuaţiile 0,,01 eqneq
-
3
ka coeficienţii polinomului, care pot fi numere reale sau complexe.
Numărul real sau complex constituie soluţie sau rădăcină a ecuaţiei (1) dacă şi
numai dacă este rădăcină a polinomului P , adică dacă are loc egalitatea 0P .
3) Determinaţi rădăcinile polinomului
a) 263410 234 XXXXXP
>> p=[1 1 -10 -34 -26];
>> x=roots(p)
x =
4.0105
-1.9342 + 1.3911i
-1.9342 - 1.3911i
-1.1422
b) 155 XXXP
>> p=[1 0 0 0 5 1];
>> x=roots(p)
x =
1.1045 + 1.0598i
1.1045 - 1.0598i
-1.0045 + 1.0609i
-1.0045 - 1.0609i
-0.1999
REZOLVAREA ECUATIILOR NELINARE
Toate ecuaţiile care nu sunt algebrice se numesc transcendente (neliniare), deci acele
ecuaţii care nu pot fi reduse la ecuaţii algebrice folosind operaţiile: adunare, scădere,
înmulţire, împărţire, ridicare la putere. Ecuaţiile transcendente importante sunt: ecuaţiile
exponenţiale, ecuaţiile logaritmice şi ecuaţiile trigonometrice.
Orice ecuaţie transcendentă se poate scrie sub forma
xgxf
sau sub forma canonică:
0 xgxf . (2)
-
4
Spre deosebire de ecuatiile algebrice pentru care se pot obtine forme generale ale
solutiilor, pentru ecuatiile transcendente nu mai este posibil acest lucru. Desi nu exista
metode matematice generale de rezolvare pentru aceste ecuatii, ele pot fi rezolvate grafic
sau prin metode de aproximare. Funcţia care trebuie reprezentată grafic într-un interval
ba, (în care există cel puţin o rădăcină a ecuaţiei (2), adică avem cel puţin o schimbare
de semn) este
xgxfxh . (3)
4) Rezolvaţi ecuaţiile neliniare:
a) arctgx1 x
>> f=@ (x) 1+x-atan(x);
>> x=fzero(f,[-3 3])
x =
-2.1323
>> f(x)
ans =
2.2204e-016
b) 0cos2 xx
>> f=@ (x) x.^2-cos(pi*x);
>> s=fsolve(f,[-0.5,0.5])
s =
-0.4384 0.4384
>> f(s)
ans =
1.0e-011 *
0.0962 0.1001
Observatie. Operatia de ridicare la putere element cu element într-un tablou este
simbolizata cu operatorul .^
-
5
REZOLVAREA SISTEMELOR DE ECUATII LINARE
Un sistem liniar de n ecuaţii cu n necunoscute de forma:
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
2211
22222121
11212111
poate fi exprimat matriceal astfel:
BAX , (4)
unde:
nnnn
n
n
aaa
aaa
aaa
A
21
22221
11211
este matricea sistemului (de ordinul n ),
nx
x
x
X2
1
este matricea necunoscutelor (matrice coloană),
nb
b
b
B2
1
este matricea termenilor liberi (matrice coloană).
5) Un rezervor poate fi umplut cu apă de la un robinet de apă caldă şi de la un
robinet cu apă rece. Dacă robinetul de apă caldă este deschis 3 min şi de apă rece
1 min, atunci în rezervor sunt l50 . Dacă apa caldă curge 1 min şi apa rece 3 min,
atunci în rezervor vor fi l40 . Câţi litri de apă curg într-un minut din fiecare
robinet?
Notând cu x minl debitul robinetului de apă caldă şi cu y minl debitul
robinetului de apă rece rezultă sistemul
.402
503
yx
yx
Rezolvarea în Matlab 7.0 a sistemului cu secvenţa de instrucţiuni
-
6
>> A=[3 1;1 2];
>> b=[50 40]';
>> s=linsolve(A,b);
s=
12
14
conduce la concluzia că robinetul de apă caldă furnizează 12 minl şi robinetul de apă
rece min14l .
6) Găsiţi curenţii din circuitul următor.
10V
A
5V
C D
10
5
20
B
5
10V
20V
1I 6I
2I
3I
4I
5I
Aplicând legile lui Kirchhoff şi legea lui Ohm obţinem sistemul
45
43
1
453
642
516
321
5510
510205
20510
II
II
I
III
III
III
III
ale cărui necunoscute sunt 61 ,, II .
>>[i1 i2 i3 i4 i5 i6]=solve('i1=i2+i3','i6=i1+i5','i2+i4=i6','i3+i5=i4','10+5=20*i1','-
5+20=10*i3+5*i4','-10=-5*i5-5*i4')
-
7
REZOLVAREA SISTEMELOR DE ECUATII NELINARE
Un sistem de ecuaţii de forma
0,,,
0,,,
21
211
nn
n
xxxf
xxxf
în care cel puţin una din funcţiile nifi ,1, nu este liniară se numeşte sistem de ecuaţii
neliniare.
Din punct de vedere matematic, acest sistem poate fi rezolvat folosind metode
numerice precum metoda lui Newton sau metoda gradientului.
7) Rezolvaţi sistemele neliniare:
a.
026
036
33
33
yyx
xyx (considerând ca punct iniţial 5.0,5.0 )
Pasul 1. Definim funcţia vectorială f .
>>f=@(x) [x(1)^3+x(2)^3-6*x(1)+3;
x(1)^3-x(2)^3-6*x(2)+2];
Pasul 2. Rezolvăm sistemul neliniar.
>> s = fsolve(f,[0.5 0.5])
s =
0.53237037226762 0.35125744755245
Pasul 3. Efectuăm verificarea soluţiei pe care am obţinut-o.
>> f(s)
ans =
1.0e-009 *
0.29623858921468
0.19358559200100
b.
0
1
9
2
222
zyx
xyz
zyx
(considerând ca punct iniţial 6.1,2.0,5.2 ).
>> f=@(x) [x(1)^2+x(2)^2+x(3)^2-9;x(1)*x(2)*x(3)-1;x(1)+x(2)-x(3)^2]
f =
-
8
@(x) [x(1)^2+x(2)^2+x(3)^2-9;x(1)*x(2)*x(3)-1;x(1)+x(2)-x(3)^2]
>> s = fsolve(f,[2.5 0.2 1.6])
s =
2.49137569683072 0.24274587875742 1.65351793930053
>> f(s)
ans =
1.0e-011 *
0.11226575225010
0.13493650641294
-0.05244693568329
DETERMINAREA VALORILOR SI VECTORILOR PROPRII
Fie V un spaţiu vectorial peste corpul K şi VT End . Spunem că scalarul
K este o valoare proprie pentru T dacă există 0\Vx astfel încât
xxT .
Vectorul 0\Vx pentru care există K astfel încât xxT se numeşte vector propriu pentru T corespunzător valorii proprii .
8) Determinati vectorii si valorile proprii ai matricei
011
321
001
A .
>> A=[1 0 0; 1 2 -3; 1 -1 0];
>> [V,D]=eig(A);
REZOLVAREA SISTEMELOR DE ECUATII LINARE FOLOSIND FACTORIZAREA LU
O descompunere a unei matrice A de forma
ULA ,
unde L este o matrice inferior triunghiulară iar U este o matrice superior triunghiulară
se numeşte factorizare LU a matricei A .
După ce am determinat descompunerea LU a matricei A :
AUL lu, ,
-
9
astfel încât AUL , pentru a rezolva sistemul de ecuaţii liniare, scris sub forma
matriceală BAX se procedează astfel:
- rezolvăm sistemul inferior triunghiular
BLYBYL 1 ;
- rezolvăm sistemul superior triunghiular
YUXYXU 1 .
9) Folosind factorizarea LU să se rezolve sistemul de ecuaţii liniare următor:
7.31223
2.126
5.0210
3.228
4321
431
432
321
xxxx
xxx
xxx
xxx
>> A=[8 -1 -2 0;0 10 1 2;-1 0 6 2;3 -1 2 12];
>> B=[2.3 -0.5 -1.2 3.7]';
>> [L,U]=lu(A);
>> L*U
ans =
8 -1 -2 0
0 10 1 2
-1 0 6 2
3 -1 2 12
>> Y=inv(L)*B;
>> X=inv(U)*Y
X =
0.21168679392287
-0.08223607323724
-0.26213478768991
0.29224776003116
>> A*X
ans =
2.30000000000000
-0.50000000000000
-
10
-1.20000000000000
3.70000000000000
REZOLVAREA SISTEMELOR DE ECUATII LINARE FOLOSIND METODA CHOLESKY
În cazul unui sistem cu matrice simetrică şi pozitiv definită, factorizarea LU are
forma particulară
UUA t (5),
în care U este o matrice superior triunghiulară.
Descompunerea din (5) se numeşte factorizare Cholesky.
După ce am determinat descompunerea Cholesky a matricei A :
AU chol ,
astfel încât AUU ' , pentru a rezolva sistemul de ecuaţii liniare, scris sub forma
matriceală BAX se procedează astfel:
- rezolvăm sistemul inferior triunghiular
BUYBYU 1'' ;
- rezolvăm sistemul superior triunghiular
YUXYXU 1 .
10) Rezolvaţi sistemul de ecuaţii liniare următor folosind metoda Cholesky:
.78
1211
89
910
4321
4321
4321
4321
xxxx
xxxx
xxxx
xxxx
Pasul 1. Scriem matricea A , asociată sistemului de ecuaţii liniare.
>> A=[10 1 -1 -1;1 9 1 1;-1 1 11 1;-1 1 1 8];
Pasul 2. Scriem vectorul coloană B , al termenilor liberi.
>> B=[9 8 12 -7]';
Pasul 3. Determinăm descompunerea Cholesky a matricei A .
>> R=chol(A);
Pasul 4. Verificăm că ARR .
>> R'*R
ans =
-
11
10.00000000000000 1.00000000000000 -1.00000000000000 -1.00000000000000
1.00000000000000 9.00000000000000 1.00000000000000 1.00000000000000
-1.00000000000000 1.00000000000000 11.00000000000000 1.00000000000000
-1.00000000000000 1.00000000000000 1.00000000000000 8.00000000000000
Pasul 5. Rezolvăm sistemul inferior triunghiular BYR .
>> Y=inv(R')*B;
Pasul 6. Rezolvăm sistemul superior triunghiular YXR .
>> X=inv(R)*Y;
Pasul 7. Verificăm că vectorul X este soluţie a sistemului.
>> A*X
ans =
9.00000000000000
8.00000000000000
12.00000000000000
-7.00000000000000
Tema
1. Determinaţi rădăcinile polinomului
a) 22 34 XXXXP
b) 8765432 234567 XXXXXXXXP
2. Rezolvaţi ecuaţiile neliniare
a) 01xxe (căutaţi soluţia în intervalul 7.0,7.0 )
b) xx 1ln2.0 (căutaţi soluţiile în intervalul 6.0,6.0 ).
3. Să se afle matricea necunoscută X din ecuaţia matriceală
521
234
311
111
012
111
X .
4. Rezolvaţi sistemele neliniare:
a)
0cos
0)sin(
yxy
yxx (considerând ca punct iniţial 1,0 )
-
12
b)
01010
0120
3
3
yxyx
xy (considerând ca punct iniţial 3.0,5.0 )
c)
0152
0lg3
12121
2211
xxxx
xxx (considerând ca punct iniţial 2,3 )
d)
043
042
0
22
22
222
zyx
zyx
zyx
(considerând ca punct iniţial 5.0,5.0,5.0 )
5. Folosind factorizarea LU să se rezolve sistemul de ecuaţii liniare următor:
.97
46
55
321
321
321
xxx
xxx
xxx
6. Determinaţi vectorii şi valorile proprii corespunzători matricei
1000
0010
0100
0001
A .
7. Determinaţi cele mai mari trei valori proprii (in modul) şi vectorii proprii
coresponzători acestora, ai matricei
036.008
120346
856.700
065.010
106.143
A .
8. Determinati vectorii si valorile proprii ai matricei
456
122
223
A .
-
1
Laborator 7. Calcul numeric în Matlab 7.0 cu aplicaţii în Analiză
matematică
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
Matlab 7.0 permite realizarea calculelor simbolice, ce au aplicaţii în Analiză
matematică.
Funcţiile utilizate în vederea efectuării acestor calcule simbolice în Matlab 7.0 sunt:
Observaţie. Funcţia triplequad din Matlab 7.0 nu poate fi regăsită în versiunile
precedente de Matlab.
Aplicaţii
1) Calculaţi derivatele de mai jos, în punctele indicate:
a) x
xxf
1
2arcsin , ?7.5 f
>> syms x
>> f=diff(asin(2*sqrt(x)/(1+x)),2)
f =
Funcţia Semnificaţie
dblquad(f,a,b,c,d) Calculează valoarea aproximativă a integralei
b
a
d
c
yxyxf dd,
int(f(x),a,b) Calculează
b
a
xxf d
quad(f,a,b) Calculează valoarea aproximativă a integralei
b
a
xxf d
triplequad(f,a,b,c,d,e,f) Calculează valoarea aproximativă a integralei
b
a
d
c
f
e
zyxzyxf ddd,,
-
2
(-1/2/x^(3/2)/(x+1)-2/x^(1/2)/(x+1)^2+4*x^(1/2)/(x+1)^3)/(1-4*x/(x+1)^2)^(1/2)-
1/2*(1/x^(1/2)/(x+1)-2*x^(1/2)/(x+1)^2)/(1-4*x/(x+1)^2)^(3/2)*(-
4/(x+1)^2+8*x/(x+1)^3)
>> subs(f,x,5.7)
ans =
0.0148
b) xxxf 22
2 , ?2.03 f
>>syms x
>> f=diff(2^(x^2-2*x),3)
f =
2^(x^2-2*x)*(2*x-2)^3*log(2)^3+6*2^(x^2-2*x)*(2*x-2)*log(2)^2
>> subs(f,x,-0.2)
ans =
-15.6311
2) Calculaţi derivatele parţiale de ordinul al doilea ale funcţiei următoare în punctul
indicat:
23 e2, xyxyxf , 1,1 .
syms x y
>> s=diff(2*x^3*y-exp(x^2),x)
s =
6*x^2*y-2*x*exp(x^2)
>> ss=subs(subs(s,x,-1),y,1)
ss =
11.4366
>> t=diff(2*x^3*y-exp(x^2),y)
t =
2*x^3
>> tt=subs(subs(t,x,-1),y,1)
tt =
-2
-
3
>> k=diff(s,x)
k =
12*x*y-2*exp(x^2)-4*x^2*exp(x^2)
>> k1=subs(subs(k,x,-1),y,1)
k1 =
-28.3097
>> p=diff(t,y)
p =
0
>> p1=subs(subs(p,x,-1),y,1)
p1 =
0
>> j=diff(s,y)
j =
6*x^2
>> j1=subs(subs(j,x,-1),y,1)
j1 =
6
3) Fie câmpul scalar
22
arcsin,,
yx
zzyx
.
Să se calculeze derivata lui în punctul 1,1,1M după direcţia MN ştiind că
2,3,2 N .
Derivata unui câmpul scalar într-un punct 000 ,, zyxM după o direcţie s este
cos,,cos,,cos,,d
d000000000 zyx
zzyx
yzyx
xM
s
,
unde cos , cos şi cos semnifică cosinusurile directoare ale direcţiei s .
Pasul 1. Determinăm expresia analitică a direcţiei MNs :
kzzjyyixxMN MNMNMN .
-
4
>> M=[1 1 1];
>> N=[2 3 -2];
>> s=N-M
s =
1 2 -3
Deci,
kjiMN 32 .
Pasul 2. Determinăm cosinusurile directoare ale direcţiei s .
>> w=norm(s);
>>u=s/w
u=
0.2673 0.5345 -0.8018
Aşadar, 2673.0cos , 5345.0cos şi 8018.0cos .
Pasul 3. Determinăm derivata lui în punctul M după direcţia s .
>> syms x y z
>> phi=asin(z/sqrt(x^2+y^2));
>> d1=diff(phi,x);
>> g=subs(subs(subs(d1,x,1),y,1),z,1);
>> d2=diff(phi,y);
>> h=subs(subs(subs(d2,x,1),y,1),z,1);
>> d3=diff(phi,z);
>> k=subs(subs(subs(d3,x,1),y,1),z,1)
>> d=dot(u,[g h k])
d =
-1.2027
Rezultă
2027.11,1,1d
d
s
.
4) Calculaţi următoarele integrale simple:
-
5
a)
2
02
dsin1
2sin
xx
x
>> syms x
>> f=@(x) sin(2*x)/(1+sin(x)^2);
>> int(f(x),0,pi/2)
ans =
log(2)
>> log(2)
ans =
0.6931
sau
>> syms x
>> f=@(x) sin(2*x)./(1+sin(x).^2);
>> quad(f,0,pi/2)
ans =
0.6931
b) xxx d11
0
22
>> syms x
>> f=@(x) x^2*sqrt(x^2+1);
>> int(f(x),0,1)
ans =
3/8*2^(1/2)+1/8*log(2^(1/2)-1)
>> 3/8*2^(1/2)+1/8*log(2^(1/2)-1)
ans =
0.4202
5) Calculaţi valoarea următoarelor integrale improprii
a)
1
132
1
d
x
x
>>syms x
-
6
>> int(1/((x+1)^(2/3)),-1,1)
ans =
3*2^(1/3)
b)
1
0 1
d
xx
x
>>syms x
>> int(1/((x*(1-x))^(1/2)),0,1)
ans =
pi
c)
21
d
x
x
>>syms x
>> int(1/(1+x^2),-inf,inf)
ans =
pi
6) Calculaţi lungimea arcului de curbă:
a) xy sinln ,
2,
3
x
Utilizând formula
xxfLb
a
d1 2 , baf ,:
rezultă că
xxx
L dsinln12
3
2
ce poate fi calculată în Matlab astfel:
>> simplify(int(sqrt(1+diff(log(sin(x)))^2),pi/3,pi/2))
ans =
1/2*log(3)
-
7
b)
2,0,
4
sin3
cos3
t
tz
ty
tx
Pentru o curbă în spaţiu dată parametric
battzz
tyy
txx
,,
lungimea arcului de curbă este
ttztytxLb
a
d222 .
Secvenţa de comenzi Matlab 7.0 necesare calculului lungimii arcului de curbă este
următoarea:
>> syms t
>> x=diff(3*cos(t));
>> y=diff(3*sin(t));
>> z=diff(4*t);
>> L=int(sqrt(x^2+y^2+z^2),0,pi/2);
c) 3
sin3
,
2,0
Pentru o curbă plană dată în coordonate polare: , ba, , lungimea
arcului de curbă este
d22 b
a
L .
Secvenţa de comenzi Matlab 7.0, ce ne permite să calculăm lungimea acestui arc de
curbă plană este:
>> syms t
>> ro=sin(t/3)^3;
>> L=eval(int(sqrt(ro^2+diff(ro)^2),0,pi/2))
L =
0.1359
-
8
7) Calculaţi aria marginită de curbele xy ln , xy 2ln .
Aria mărginită de două curbe care se intersectează în punctele 11, yx şi 22 , yx
se calculează folosind formula 2
1
dx
x
xxgxf .
Fig. 6.8
>>syms x
>> f=@(x) log(x);
>> g=@(x) log(x)^2;
>> syms y
>> u=solve(log(y)-log(y)^2,y)
u =
1
exp(1)
>> A=eval(int(f(y)-g(y),y,u(1),u(2)))
A =
0.2817
-
9
8) Se consideră domeniul plan xyxyxF sin0,0|, . Să se
determine coordonatele centrului de greutate al unei plăci omogene ce are forma lui
F .
Coordonatele centrului de greutate GG yxG , al unei plăci omogene de forma unui
domeniu plan xfybxayxF 0,|, se determină conform formulelor:
.
d
d2
1
d
d
2
b
a
b
aG
b
a
b
aG
xxf
xxf
y
xxf
xxxf
x
>> syms x
>> I1=int(x*sin(x),0,pi);
>> I2=int(sin(x),0,pi);
>> I3=int(sin(x)^2,0,pi)/2;
>> xg=I1/I2
xg =
1/2*pi
>> yg=I3/I2
yg =
1/8*pi
9) Calculaţi următoarele integrale duble:
a) yxyx
ydd
sinsin1
cos2
0
2
0
>> syms x y
>> f=@(x,y) cos(y)./(1+sin(x)*sin(y))
f =
@(x,y) cos(y)./(1+sin(x)*sin(y))
-
10
>> dblquad(f,0,pi/2,0,pi/2)
ans =
1.2337
b) yxy
xdd
2
1
2
13
>> syms x y
>> f=@(x,y) sqrt(x./(y.^3));
>> dblquad(f,1,2,1,2)
ans =
0.7140
sau
>> syms x y
>> eval(int(int(1/sqrt(y^3),1,2)*sqrt(x),1,2))
ans =
0.7140
Tema
1. Calculaţi derivatele de mai jos, în punctele indicate:
a. 1
1arctg
x
xxf , ?3 f
b. 1
x
xxxf , ?24 f
2. Calculaţi derivatele parţiale de ordinul al doilea ale funcţiilor următoare în
punctele indicate:
a. 3 2, yxyxf , 2,2
b. yxxyxf sin, ,
0,
4
c. yzxzyxf e,, , 1,1,1
3. Fie câmpul scalar
-
11
xyyxyx 22, .
Să se calculeze derivata lui în punctul 2,2M după direcţia s care face în
direcţa pozitivă a axei xO un unghi de 30 .
4. Se dă câmpul vectorial
kyzjyzxixzzyxv 423 22,, .
Să se determine:divergenţa şi rotorul lui v în punctul 1,1,1 M .
5. Calculaţi următoarele integrale simple:
a. 1
0
2 dcose xxx
b. xx
xd
1
25
1
2
.
6. Calculaţi valoarea următoarelor integrale improprii
a.
1
0 21
d
x
x;
b.
3 1
d
xx
x
7. Calculaţi următoarele integrale duble:
a. yxxy ddsin0 0
2
b.
yx
yx
xydd
1
3
1
1
0 322
-
1
Laborator 8. Rezolvarea ecuatiilor diferentiale în Matlab 7.0
Bibliografie
I. Iatan - “Îndrumător de laborator în Matlab 7.0”, Ed. Conspress, Bucureşti, 2009.
ECUATII CU VARIABILE SEPARABILE
O ecuaţie diferenţială cu variabile separabile este de forma
yqxpy , (8.1)
unde baqp ,:, continue, 0q .
Formal dacă scriem
x
yy
d
d
atunci ecuaţia (8.1) devine
xxp
yq
yd
d
şi admite soluţia unică definită implicit prin egalitatea
Cxxp
yq
y d
d. (8.2)
1) Rezolvaţi ecuaţia diferenţială cu variabile separabile:
a) 1
2
x
x
e
eyy
>> y=dsolve('Dy=exp(x)/(2*y*(exp(x)+1))','x')
y =
(log(1+exp(x))+C1)^(1/2)
-(log(1+exp(x))+C1)^(1/2)
b) 2
3
11
yx
xyy
>> y=dsolve('Dy=y*(x^3+1)/x*(1-y^2)','x')
-
2
y =
1/(x^2+exp(-2/3*x^3)*C1)^(1/2)*x
-1/(x^2+exp(-2/3*x^3)*C1)^(1/2)*x
ECUATII OMOGENE
Numim ecuaţie diferenţială omogenă o ecuaţie de forma
yxfy , , (8.3)
f fiind o funcţie continuă şi omogenă (de grad zero).
Ecuaţiile omogene se reduc la ecuaţii cu variabile separabile folosind schimbarea
de variabile
x
yxu . (8.4)
2) Să se rezolve ecuaţia diferenţială omogenă:
a) xy
ex
yy
>> y=dsolve('Dy=y/x+exp(y/x)','x')
y =
log(-1/(log(x)+C1))*x
b) 0dd xxyyxy
>> y=dsolve('Dy=-(y-x)/(y+x)','x')
y =
(-x*C1-(2*x^2*C1^2+1)^(1/2))/C1
(-x*C1+(2*x^2*C1^2+1)^(1/2))/C1
ECUATII NEOMOGENE
O ecuaţie diferenţială neomogenă este de forma
xqyxpy , (8.5)
unde qp, sunt două funcţii continue.
Soluţia generală a ecuaţiei neomogene (8.5) are expresia analitică:
xxqCxyxxpxxpdee
d1
d, 1C . (8.6)
-
3
3) Să se rezolve ecuaţia diferenţială neomogenă:
a) 2
22 xxexyy
>> y=dsolve('Dy=2*x*y+2*x*exp(x^2)','x')
y =
(x^2+C1)*exp(x^2)
b) xxyyx cos2 , 0x
>> y=dsolve('x*Dy-y=x^2*cos(x)','x')
y =
x*sin(x)+x*C1
ECUATII DIFERENTIALE TOTALE
O ecuaţie diferenţială totală este de forma
0d,d, yyxgxyxf , 2:, Dgf . (8.7)
Dacă membrul stâng al ecuaţiei (8.7) este diferenţiala totală a unei funcţii
D: , adică
yyxgxyxf d,d,d , (8.8)
atunci ecuaţia diferenţială se numeşte ecuaţie diferenţială totală exactă.
Condiţia necesară şi suficientă ca ecuaţia (8.7) să fie diferenţială totală exactă este
ca
x
g
y
f
(8.9)
Soluţia generală a ecuaţiei diferenţială totală exactă este
Cyx , , (8.10)
unde
ttxgtytfyxy
y
x
x
d,d,,
00
0 , Dyx 00 , . (8.11)
Dacă nu este îndeplinită condiţia (8.9) atunci ecuaţia diferenţială (8.7) trebuie
înmulţită cu un factor integrant yx, astfel încât ecuaţia să devină o ecuaţie
diferenţială totală exactă.
-
4
Se disting două cazuri:
Cazul 1. Dacă x atunci condiţia (8.9) devine
xg
x
g
y
f
gx
g
y
fg
xf
y
iar
xxx de . (8.12)
Cazul 2. Dacă y atunci raţionând precum în cazul 1, condiţia (8.9) devine:
yf
x
g
y
f
iar
yyy de . (8.13)
4) Să se integreze ecuaţiile diferenţiale totale:
a) 0d2ed4e 2 yxxxxyy xyxy Rezolvând în Matlab 7.0 ecuaţia diferenţială propusă, distingem următorii paşi.
Pasul 1. Verificăm dacă ecuaţia dacă este o ecuaţie diferenţială totală exactă.
>> syms x y t y0 x0 C
>>f=y*exp(x*y)-4*x*y;
>> g=x*exp(x*y)-2*x^2;
>> d1=diff(f,y);
>> d2=diff(g,x);
>> d1==d2
ans =
1
Pasul 2. Deoarece ecuaţia este o ecuaţie diferenţială totală exactă, putem aplica
formula (8.11) pentru a determina soluţia sa.
>> phi=int(subs(subs(f,x,t),y,y0),t,x0,x)+int(subs(g,y,t),t,y0,y)-C
phi =
-exp(y0*x0)+2*y0*x0^2+exp(y*x)-2*x^2*y-C
-
5
b) 0dd1 yxxxyy
Pasul 1. Verificăm dacă ecuaţia dacă este o ecuaţie diferenţială totală exactă.
>> syms x y t y0 x0
>> f=y*(1+x*y);
>> g=-x;
>> d1=diff(f,y);
>> d2=diff(g,x);
>> d1==d2
ans =
0
Pasul 2. Deoarece ecuaţia nu este o ecuaţie diferenţială totală exactă trebuie să
determinăm factorul integrant cu (8.13),
>> phi=simple((diff(f,y)-diff(g,x))/(-f))
phi =
-2/y
>> miu=exp(int(phi,y))
miu =
1/y^2
Pasul 3. Putem aplica formula (8.11) pentru a determina soluţia ecuaţiei.
>> Phi=int(subs(subs(f*miu,x,t),y,y0),t,x0,x)+int(subs(g*miu,y,t),t,y0,y)-C
Phi =
1/2*x^2-1/2*x0^2+1/y0*(x-x0)+x*(-y+y0)/y/y0-C
>> Phi=simple(Phi);
>> Phi
Phi =
1/2*x^2-1/2*x0^2-1/y0*x0+x/y-C
ECUATII BERNOULLI
Ecuaţia diferenţială de forma
yxqyxpy (8.14)
constituie ecuaţia lui Bernoulli, qp, fiind funcţii continue.
-
6
Dacă
0 ecuaţia (8.14) devine o ecuaţie diferenţială liniară neomogenă;
1 ecuaţia (8.14) devine o ecuaţie diferenţială cu variabile separabile.
Altfel, adică pentru 1,0\ , folosind schimbarea de funcţie
1
1
zy , (8.15)
ecuaţia (8.14) se reduce la o ecuaţie diferenţială liniară neomogenă.
5) Să se rezolve ecuaţia diferenţială de tip Bernoulli:
a) 04 yxx
yy , 0x , 0y
>> y=dsolve('Dy-4*y/x-x*sqrt(y)','x')
y =
y^(1/2)-(1/2*log(x)+C1)*x^2 = 0
b) 22xyx
yy
>> y=dsolve('Dy=y/x-2*x*y^2','x')
y =
3*x/(2*x^3+3*C1)
c)
11
42 22
y
yxyyx
>> y=dsolve('2*x^2*Dy-4*x*y=y^2','y(1)=1',’x’)
y =
2*x^2/(-x+3)
Observaţie. Nu pot fi rezolvate probleme Cauchy decât în Matlab 7.0 nu şi în
versiunile precedente.
ECUATII RICCATI
O ecuaţie diferenţială, care este de forma
xryxqyxpy 2 (8.16)
reprezintă ecuaţia lui Riccati, rqp ,, fiind funcţii continue.
-
7
Dacă se cunoaşte o soluţie particulară xy p a sa, atunci folosind substituţia
zyy p
1 (8.17)
ecuaţia (8.17) devine o ecuaţie diferenţială liniară neomogenă.
6) Să se integreze ecuaţia de tip Riccati:
a) xxyxyyx 212 22 , 0x
>> y=dsolve('x*Dy=y^2-(2*x+1)*y+x^2+2*x','x')
y =
(-x-1+x^2*C1)/(-1+x*C1)
b) 01
22
2 x
yy
>> y=dsolve('2*Dy+y^2+1/(x^2)=0','x')
y =
(-2-log(x)+C1)/x/(-log(x)+C1)
c) 022 22 xyyxyxxx , 0x >> y=dsolve('2*(x-x^2*sqrt(x))*Dy+2*sqrt(x)*y^2-y-x=0','x')
y =
-(x+C1*x^(1/2))*(x-x^(5/2))/(x^(1/2)-1)/(x+x^(1/2)+1)/x/(C1*x+1)
ECUATII OMOGENE CU COEFICIENTI CONSTANTI
O ecuaţie diferenţială de forma
011
10 yayayaya nn
nn . (8.18)
unde naaa ,,, 10 sunt constante reale, 00 a se numeşte ecuaţie diferenţială liniară
omogenă de ordinul n , cu coeficienţi constanţi.
Soluţiile ecuaţiei diferenţiale (8.18) depind de tipul rădăcinilor ecuaţiei
caracteristice.
0P ,
unde
nnnn aaaaP
11
10
-
8
reprezintă polinomul caracteristic ataşat ecuaţiei diferenţiale liniară omogenă de ordinul
n , cu coeficienţi constanţi din (8.18).
Cazul 1. Considerăm mai întâi cazul când rădăcinile ecuaţiei caracteristice sunt
reale şi analizăm pe rând subcazul când rădăcinile sunt distincte şi apoi cazul când
ecuaţia caracteristică are şi rădăcini multiple.
a) Presupunem că ecuaţia caracteristică are toate rădăcinile reale distincte n ,,1 .
Solutia generala a ecuatiei (8.18) este de forma
xnnxx
eCeCeCxy
2211 . (8.19)
b) Dacă ecuaţia caracteristică are rădăcina 1 reală, multiplă, de ordinul p ,
np atunci solutia generala a ecuatiei (8.18) este de forma
xppxx
exCxeCeCxy 11121
1 ; (8.20)
această expresie a lui tx se mai numeşte contribuţia rădăcinii reale, multiple de ordinul
p , 1 , a ecuaţiei caracteristice la soluţia generală a ecuaţiei omogene.
c) Ecuaţia caracteristică are k rădăcini reale k ,,1 cu ordinele de multiplicitate
kpp ,,1 , npp k 1 . Solutia generala a ecuatiei (8.18) este de forma
xkkp
xp
xp exQexQexQxy
1
212
111
, (8.21)
unde
1211
ip
ipipxCxCCxQ (8.22)
este un polinom de grad cel mult 1ip .
Cazul 2. Presupunem că rădăcinile ecuaţiei caracteristice sunt complexe şi
analizăm pe rând subcazul când rădăcinile sunt distincte şi apoi cazul când ecuaţia
caracteristică are şi rădăcini multiple.
a) Presupunem că ecuaţia caracteristică are toate rădăcinile complexe distincte; rezultă
că ele sunt două câte două complex-conjugate. Solutia generala a ecuatiei (8.18) va
fi:
,sinsinsin
coscoscos
22
211
1
22
211
1
xeCxeCxeC
xeCxeCxeCxy
kxk
kxx
kxk
kxx
(8.23)
-
9
unde iC , iC , ki ,1 sunt constante arbitrare.
b) Dacă ecuaţia caracteristică are rădăcina complexă 111 i multiplă, de
ordinul 1p rezulta ca solutia generala a ecuatiei diferentiale va fi:
.sinsinsin
coscoscos
1111
111
211
1
1111
111
211
1
xexCxxeCxeC
xexCxxeCxeCxy
xpp
xx
xpp
xx
(8.24)
c) Ecuaţia caracteristică are rădăcinile complexe
jjj i
i
111
cu multiplicitatile jpp ,,1 , unde npp j 12 .
Solutia generala a ecuatiei diferentiale (8.18) va fi:
,sincossincos 1111111xj
jjpjjpx
exxSxxRexxSxxRxy
(8.25)
unde
1
211
jp
jpjpxCxCCxR este un polinom de grad cel mult 1jp ,
1
211
jp
jpjpxCxCCxS este un polinom de grad cel mult 1jp .
Cazul 3. Presupunem că ecuaţia caracteristică are:
o radacinile reale j ,,1 , cu multiplicitatile jpp ,,1
si
o radacinile complexe
lllj
j
i
i
111
cu multiplicitatile ljj pp ,,1 , unde
npppp ljjj 11 2 .
Solutia generala a ecuatiei (8.18) va fi:
-
10
l
kkkjpkkjp
xkxij
iip
xxSxxReexQxy1
111
1 sincos
, (8.26)
unde
xQip 1
este un polinom de grad cel mult 1ip si are expresia (8.22),
1211
kp
kpkjpxcxccxR este un polinom de grad cel mult 1kp ,
1211
kp
kpkjpxcxccxS este un polinom de grad cel mult 1kp .
7) Să se determine soluţia generală a următoarelor ecuaţii diferenţiale omogene cu
coeficienţi constanţi:
a) 0 yy
>> y=dsolve('D2y=y','x')
y =
C1*exp(x)+C2*exp(-x)
b) 0454 yyy
>> y=dsolve('D4y+5*D2y+4*y=0','x')
y =
C1*sin(x)+C2*cos(x)+C3*sin(2*x)+C4*cos(2*x)
ECUATII NEOMOGENE CU COEFICIENTI CONSTANTI
O ecuaţie diferenţială de forma
xfyayayaya nnnn
11
10 , (8.27)
unde naaa ,,, 10 sunt constante reale, 00 a iar ICf 0: este o funcţie
continuă pe un interval I se numeşte ecuaţie diferenţială liniară neomogenă de
ordinul n cu coeficienţi constanţi.
Soluţia generală a acestei ecuaţii este suma dintre soluţia generală a ecuaţiei
omogene asociate şi o soluţie particulară (oarecare) a ecuaţiei neomogene; deci
xyxyxy po .
În cazul când f este o funcţie oarecare, pentru determinarea unei soluţii particulare
a ecuaţiei neomogene se utilizează metoda variaţiei constantelor (sau metoda
-
11
constantelor variabile) a lui Lagrange; soluţia particulară a ecuaţiei neomogene poate fi
găsită sub forma
xyxCxyxCxyxCxy nnp 2211 ,
unde xCxCxC n ,, 21 reprezintă soluţia sistemului algebric, liniar, de n ecuaţii,
cu n necunoscute, neomogen:
.
0
0
0
0
1122
111
2222
211
2211
2211
a
xfxyxCxyxCxyxC
xyxCxyxCxyxC
xyxCxyxCxyxC
xyxCxyxCxyxC
nnn
nn