Laborator 1. Calcule matematice fundamentale in Matlab...

135
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ă Start All 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;

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