Curs9_Micu

57
 Curs 9. Deri va rea numerică Calculul aproxima ti v al derivatelor cu aplicaţii în ingineria electrică METODE NUMERICE

description

curs mn 9

Transcript of Curs9_Micu

  • Curs 9. Derivarea numeric

    Calculul aproximativ al derivatelor

    cu aplicaii n ingineria electric

    METODE NUMERICE

  • n domeniul ingineriei electrice exist situaii practice cnd este necesar evaluarea numeric a valorilor derivatelor unor funcii pentru care derivarea analitic este greoaie sau chiar imposibil

    Trebuie inut cont c n tehnic de obicei nu se cunoate expresia analitic a funciei care trebuie derivat, ci doar valorile ei n anumite puncte (determinate experimental sau prin calcule).

    Se dorete determinarea aproximativ a derivatei n punctele unde se cunoate valoarea funciei, ct i n alte puncte.

  • Exemple:

    determinarea distribuiei de sarcindeterminarea potenialelor curbelor de sarcindeterminarea consumului de energie pe baza curbelor de sarcindeterminarea valorilor maxime ale puterilor consumate de un receptorcalculul intensitii cmpurilor electromagnetice, etc.

  • Exemplu practic: prelucrarea curbelor de sarcin

    012345

    0 2 4 6 8 10 12 14 16 18 20 22 24t

    P

    Curba de sarcin activ zilnic a unui consumator

    Se consider un receptor de energie electric pentru care se cunoate curba de sarcin zilnic referitoare la puterea activ consumat.

  • Derivarea numeric bazat pe polinoame de interpolare

    Pentru simplitate vom considera doar derivata de ordinul I. Se pot aplica tehnici analoage i pentru derivate de ordin superior.

    Vom rezolva problema prin interpolare: functia dat tabelar o determinm prin interpolare si vom deriva polinomul su de interpolare!!!

    .

    De regul se aproximeaz derivatele n punctele x0, x1,,xn (noduri) n care valoarea funciei este cunoscut, dar se pot utiliza i pentru alte puncte din intervalul [a,b]!!!

  • ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )( )

    ( ) ( ) ( )( ) ))((!2

    ''

    ))((!2

    ''

    000

    00

    0

    10110011

    hxxxxxfhxxhxf

    hhxxxf

    xxxxxfxlxfxlxfxRxLxf

    +++=

    =++=+=

    ( ) [ ]b,ax

    Derivarea numeric bazat pe polinomul de interpolare LagrangeInterpolarea lui f s-a facut prin polinomul de interpolare Lagrange i vom construi funcia pe baza polinomului Lagrange de ordin I i a erorii (funcia este cunoscut experimental n nodurile x0 i x1):

    ( ) ( ) ( )( )( )

    ( ) ( ) ( ) ( )( ) ( )( )( )dx

    x''fd2

    )hxx)(xx(x''f2

    hxx2h

    xfhxfdx

    )hxx)(xx(!2x''fd

    hxfhxfx'f

    00000

    0000

    +++=

    =

    ++=

    ( ) ( ) ( )h

    xfhxfx'f 00 +

    Derivnd se obine:

    Deci:

    ( ) [ ] hxxbaCfbax += 0120 ,,,,

  • ( )( )( )dx

    x''fd

    ( ) ( ) ( ) ( )++= ''f2h

    hxfhxfx'f 000

    Un inconvenient al formulei este c nu avem informaii despre termenul

    Cnd x=x0 coeficientul termenului problem este zero deci formula se simplific :

    deci eroarea de trunchiere nu poate fi estimat.

    ( ) ( )h

    xfhxf 00 +

    ( ) Mx''f,M2h

    Er [ ]b,ax

    0h >0h calculul derivatei cu operatorul definit in Mathcad;

    Dv4 2.048 104= x4 5.1= y4 1.711 10

    4=

  • j 0 N 1..:= Def j f' xj( ):=xT 0 1 2 3 4 5 6 7

    0 5 5.025 5.05 5.075 5.1 5.125 5.15 5.175=

    yT 0 1 2 3 4 50 1.51610 4 1.56310 4 1.61110 4 1.6610 4 1.71110 4 1.76210 4

    =

    DvT 0 1 2 3 4 50 1.85310 4 1.910 4 1.94810 4 1.99810 4 2.04810 4 2.09910 4

    =

    DT 0 1 2 3 4 50 1.85310 4 1.910 4 1.94810 4 1.99810 4 2.04810 4 2.09910 4

    =

    DefT 0 1 2 3 4 50 1.85310 4 1.910 4 1.94810 4 1.99810 4 2.04810 4 2.09910 4

    =

  • eri f' xi( ) Dvi( ):= eroare max er( ):=eroare 5.815 10 6= \\ referinta considerat operatorul

    Mathcad.

    er_reli f' xi( )( ):= er_rel min er_rel( ):= eroare_rel eroareer_rel:=\\ eroarea relativa arata pana la a catea zecimala rezultatul este corect.

    eroare_rel 3.139 10 8 %=

  • Derivarea numerica utilizand dezvoltarea in serie Taylor (derivata de ordinul I, pentru functii date in puncte)

    Fie un set de puncte N, cu pasul h intre ele, in care se cunosc valorile unei functii, y:

    N 102:= h 10 2:= i 0 N..:=

    x0 1:= xi 1+ xi i h+:= y0 20:= yi 1+ yi i2 h:=

    Aproximarea numerica a derivatei

    der1 i( ) Ai1

    i 1+( ) h yi 1+ yi 1( )Ai

    := \\ elementele unui vector se incarca cu relatia dependenta de variabila i, care schimba nodurilesi y

  • der

    Bj der1 j( )j 1 N..for

    B

    := \\ elementele individuale ale vectorului anterior se stocheaza in alt vector, numit der

    length der( ) 101=length y( ) 102=

    Valorile numerice obtinute sunt:

    x

    0

    01

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    11

    1.01

    1.03

    1.06

    1.1

    1.15

    1.21

    1.28

    1.36

    1.45

    1.55

    = y

    0

    01

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    2020

    19.99

    19.95

    19.86

    19.7

    19.45

    19.09

    18.6

    17.96

    17.15

    16.15

    = der

    0

    01

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    0-0.5

    -1.667

    -3.25

    -5

    -6.833

    -8.714

    -10.625

    -12.556

    -14.5

    -16.455

    -18.417

    =

  • Sa se determine numeric campul electric pe suprafata unui cilindru, dupa o directie in situatia in care se cunoaste expresia analitica a fluxului electric care strabate suprafata si coordonatele cilindrice care o definesc. Date numerice:

    -- campul scalar flux electric: x y, z,( ) 1012 x2 z 3x( ) y 3z:= Wb

    -- raza cilindrului: r 5:= cm 2:=

    -- inaltimea cilindrului: ab 6:= cm a 0:= b 6:= cm

    (coordonatele cilindrice cunoscute: r, , z=ab)

  • A. Avand data o forma analitica pentru fluxul electric, se poate determina campul electric care produce acel flux prin derivare numerica dupa directia z, cand valorile x si y ale suprafetei si, implicit, ale campului de flux sunt impuse de raza cilindrului , r, si unghiul din coordonatele cilindrice. -- fluxul electric el -- campul electric (camp vectorial) Ev-- elementul de suprafata scris in coordonate cilindrice dS r dz

    el SEv

    d (se aplica operatorul de derivare)

    EvS eld

    d(care devine) Ev

    1r z el

    dd

    B. Formula matematica care sta la baza rezolvarii problemei se exprima prin teorema lui Gauss:

    -- dependenta variabilelor x si y de coordonatele cilindrice

    x r cos ( ):= y r sin ( ):=

  • Pentru rezolvarea problemei se alege o metoda numerica de derivare utilizand dezvoltarea in serie Taylor. Aceasta metoda aproximeaza valorile derivatelor functiei intr-un sir de puncte in care valoarea functiei este cunoscuta.

    -- sirul de puncte in care se evalueaza derivata se defineste in felul urmator:

    m' 50:= (numarul de elemente din sir) i 0 m' 1..:= (numarul de iteratii)

    a 0:= b 6:= (limitele intervalului din care face parte sirul)

    hb a

    m':= h 0.12= (pasul sirului, distanta dintre doua valori consecutive)

    z0 a:= zm' b:= (valorile initiala si finala ale sirului)

    zi 1+ zi h+:= (relatia generala intre elementele sirului)

  • Observatie: Derivarea numerica prin aceasta metoda poate conduce la erori semnificative, in anumite conditii, datorita imposibilitatii reducerii pasului h sub o anumita valoare limita.

    -- functia matematica de derivat, dupa modelul completat este urmatoarea:

    f z( ) x y, z,( )

    r :=-- iar derivarea numerica are loc in cadrul formulei deduse din seria Taylor:

    f' z i,( )f zi 1+( ) f zi 1( )

    2h:=

    -- versorul directiei campului electric dupa axa z: rz

    0

    0

    1

    :=

    -- identificarea completa a punctelor in care se analizeaza campul electric, dupa axa z se face tinand cont de parametrii r si :

    r 5= cm 7

    := x 5= cm y r sin ( ):= y 2.169= cm

  • -- expresia campului electric scrisa vectorial dupa directia z:

    Ez z i,( ) f' z i,( ) rz:=

    -- punctele sirului considerat in care se doreste aflarea campului (derivatei numerice):

    zi z i,( ) (echivalenta)

    z18 2.16= mm Ez z 18,( )0

    0

    0.003422280488564

    = V

    m

    (valoarea campului electric)

    Observatie: Metoda numerica expusa, pentru problema de fata se dovedeste eficace la un numar restrans de argumente ale functiei, adica pentru o valoare limitata de coordonate z pentru care se doreste cunoasterea marimii campului electric.

  • D. In continuare, se va apela operatorul predefinit de derivare din utilitarul Mathcad. Dupa aplicarea acestuia functiei, la valorile campului electric se ajunge prin inlocuirea coordonatei z cu punctele de interes.

    z 2.16:= mm f' z( )zf z( )d

    d:= f' z( ) 0.028=

    -- valoarea campului electric calculata in acest fel: Ez z( ) f' z( ) rz:=

    Ez z( )

    0

    0

    0.028376055249965

    = V

    m

    E. Raportarea celor doua valori obtinute, prin metoda numerica, respectiv prin functia definita in toolbox-ul Mathcad, evidentiaza acuratetea metodei numerice. Problema, prin referirea metodei numerice, face posibila exprimarea valorilor campului electric la suprafata de separatie a doua medii, dupa directia tangentiala. Prin alegerea corespunzatoare a valorilor r, si z se poate acoperi intreg domeniul suprafetei cilindrului, ceea ce inseamna determinarea valorilor campului electric pe toata suprafata considerata.

  • Un acumulator cu tensiune electromotoare si rezistenta interna date alimenteaza "n" rezistente egale, R. Cate rezistente R trebuie legate in serie si cate in paralel pentru ca in grupul de "n" rezistente astfel montate sa se dezvolte puterea maxima?

    n 150:= R 20:= Ri 30:= Ue 100:= V

    A. Puterea maxima obtinuta in rezistoare se determina efectuand derivata expresiei puterii dupa rezistenta echivalenta a circuitului de disipare. Matematic, in punctul in care derivata se anuleaza, exista un maxim pentru puterea disipata. B. Expresia analitica a puterii disipate are urmatoarea forma:

    P n R Ip2 Ip --> curentul printr-un grup de rezistente conectate in serie.

    --> se noteaza cu ns numarul de rezistente legate in serie si cu np

    numarul de grupuri serie legate in paralel.

  • --> prin aplicarea teoremelor lui Kirchhoff pe unul din noduri si pe un ochi se deduce formula curentului electric printr-un grup de rezistente conectate in serie in functie de curentul electric total debitat de acumulator:

    I np Ip 0 I Ri ns R Ip+ Ue --> dupa inlocuiri in formule se ajunge la expresia finala a puterii electrice debitate pe circuitul rezistiv:

    Pnsnp

    RUe

    2

    Rinsnp

    R+

    2 x

    nsnp

    --> notatie a raportului de numere intregi;

    Rech x R --> rezistenta echivalenta a circuitului din rezistente R;

    --> asadar, puterea electrica poate fi considerata ca o functie cu variabila rezistenta echivalenta direct dependenta de raportul x:

    P x( ) x RUe

    2

    Ri x R+( )2:=

  • C. In vederea solutionarii problemei, se considera o metoda numerica pentru derivare, care foloseste aproximarea derivatei de ordinul I a functiei putere electrica cu o formula recurenta dupa 4 puncte vecine, cunoscute prin calcularea valorilor functiei intr-un set de noduri, care se atribuie a fi chiar valorile raportului x. Pentru aceasta se alege un interval posibil de situare a raportului, devenit variabila, x, un numar de noduri de calcul si o formula de salt in noduri:

    a 0:= b 5:= --> capetele intervalului de situare pentru x;

    N 102:= i 0 N..:= --> numarul de noduri de calcul;

    hb a2 N:= xi a h i+:=

    --> formula de salt in noduri dupa pasul h calculat;

  • --> formula de aproximare a derivatei:

    Dvi

    Ai

    P xi h( ) 8 P xi h2 8 P xi h2+ + P xi h+( )6 h

    n 1 N 1..for

    Ai

    :=

    xP x( )

    =>

    --> se reprezinta grafic ajustat la intervalul de interes valorile calculate cu formula de aproximare a derivatei puterii:

  • --> cu optiunea Trace x-y din paleta grafica a utilitarului Mathcad se citeste valoarea x in care derivata se anuleaza:

    x 1.5:= D. Utilitarul Mathcad ofera un operator pentru derivarea functiilor analitice, care va fi folosit in continuare spre a se evalua posibilele erori introduse de efectuarea derivarii numerice.

    DP x( )x

    P x( )

    := si reprezentarea grafica:

    --> citirea graficului cu optiunea indicata ofera aceeasi informatie, adica x 1.5:=

  • Ramane de rezolvat sistemul de doua ecuatii cu doua necunoscute cu blocul Given - Find indicat intr-o problema anterioara:

    ns 1:= np 1:=Given

    ns np n

    nsnp

    x

    ns

    np

    Find ns np,( ):= nsnp

    15

    10

    = --> solutia problemei

    E. Se propune o varianta grafic-numerica pentru stabilirea configuratiei de montare a rezistentelor intr-un circuit, astfel incat puterea sa fie maxima, fara a se continua mersul analitic al rezolvarii, pornit in paragraful B, dedicat modelului matematic al problemei. Varianta se justifica din punct de vedere al expresivitatii numerice directe a rezultatului.

  • Reprezentarea grafica a gradientului

    Introducem functia f(x,y): f x y,( ) 2 sin x( )2 cos y 2( ):=

    Introducem valorile de capat (punctele finale) pentru x si y:xmin 2:= xmax 2:= ymin 4:= ymax 4:=

    Introducem numarul valorilor lui x, y in sir: xn 20:= y n 20:=

    Gradientul functiei:

    i 0 xn 1..:=grad x y,( ) x

    f x y,( )dd

    yf x y,( )d

    d

    :=

    j 0 yn 1..:=

    xindi xmin ixmax xmin

    xn 1+:=

    yind j ymin jymax ymin

    yn 1+:=

  • Vi j, grad xindi yind j,( ):= \\ se stocheaza intr-o matrice valorile gradientului in punctele de calcul ale functiei;Mi j, Vi j,( )0:= Ni j, Vi j,( )1:= Fi j, f xindi yind j,( ):=

    M N,( )Campul vectorial:

    F

    Reprezentarea grafica pe suprafata:

  • Jacobianul unei functii vectoriale

    Fie o functie vectoriala de valori x, y si z: A x y, z,( )x z 2y+

    y2 x+2 x3 y

    :=

    J A x, y, z,( )

    xtr A x y, z,( )T( ) 0 d

    d

    xtr A x y, z,( )T( ) 1 d

    d

    xtr A x y, z,( )T( ) 2 d

    d

    ytr A x y, z,( )T( ) 0 d

    d

    ytr A x y, z,( )T( ) 1 d

    d

    ytr A x y, z,( )T( ) 2 d

    d

    ztr A x y, z,( )T( ) 0 d

    d

    ztr A x y, z,( )T( ) 1 d

    d

    ztr A x y, z,( )T( ) 2 d

    d

    T

    :=

    Jdet A x, y, z,( ) J A x, y, z,( ):= \\ determinantul matricei jacobian;

  • Evaluare simbolica din paleta Evaluation

    J A x, y, z,( )z

    2

    x

    1

    2 y0

    6 x2 y2 x3

    0

    Jdet A x, y, z,( ) x 2 x3 12 x2 y2+( )Evaluare numerica

    J A 1, 3, 2,( )2

    2

    1

    1

    60

    18

    2

    0

    =

    Jdet A 1, 3, 2,( ) 110=

  • Evaluarea numerica a derivatelor unei functii intr-un punct

    Introducem functia pe care dorim sa o derivam:

    f x( ) x3 ln x( ) 3 x2+ cos x( )2+:=Evaluarea simbolica a derivatei din paleta Evaluation:

    xf x( )d

    d3 x2 ln x( ) x2+ 6 x 2 cos x( ) sin x( )+

    n 3:= nxf x( )d

    d

    n6 ln x( ) 11+ 8 cos x( ) sin x( )+

  • Punctul in care calculam derivata: x 4:=

    Derivata de ordin n:Prima derivata:

    n 3:= nxf x( )d

    d

    n23.275=

    xf x( )d

    d105.553=

    Dupa copierea functiei de derivat, prin selectarea variabilei in functie de care se face derivarea, daca se trece in meniul Symbolics-Variable-Differentiatese genereaza expresia derivatei:

    x3 ln x( ) 3 x2+ cos x( )2+ by differentiation

    3 x2 ln x( ) x2+ 6 x 2 cos x( ) sin x( )+

  • Fie functia: f x( ) 3 x4 x2+ x+ 1+:= sa se evalueze derivatele in punctele (ca un sir):

    n 1 5..:= D f w,( )w

    f w( )dd

    := f n( )6

    55

    256

    789

    1.90610 3

    = D f n,( )15

    101

    331

    777

    1.51110 3

    =

    D f w,( ) 12 w3 2 w+ 1+

  • Introducem punctele in care dorim calculul ca si componentele unui vector :

    v

    i

    3 2i+sin 3 ( )

    e2 0.123

    ln e3( )1.123

    :=

    vT i 3 2i+ 0 535.492 0.123 3 1.123( )=n 0 rows v( ) 1..:= rows v( ) 7=

    f vn( )3+1i

    -348+374i

    1

    2.46710 11

    1.139

    256

    8.155

    = D f vn,( )1-10i

    -101+556i

    1

    1.84310 9

    1.268

    331

    20.241

    =

  • Daca avem o functie de doua variabile si dorim calcularea derivatei partiale:

    f u w,( ) 2 u3 w 5 sin u( ) cos 2 w( )+:=

    Du f u, w,( )u

    f u w,( )dd

    := Dw f u, w,( )w

    f u w,( )dd

    :=

    Du f u, w,( ) 6 u2 w 5 cos u( ) cos 2 w( )+Dw f u, w,( ) 2 u3 10 sin u( ) sin 2 w( )

    u 1 2..:= w 4 5..:= Du f u, w,( )23.60796.303

    27.733

    121.746

    = Dw f u, w,( )-6.3257.004

    6.578

    20.947

    =

  • Consideram o functie scalara: f x y, z,( ) x y x2 z3+ 3 y3 z:=

    Introducem o functie sub forma unui vector: A x y, z,( )2 x2 y3

    y2 z3 x4 z2

    :=

    Dorim calcularea simbolica si numerica a gradientului, divergentei si rotorului.

    Gradientul: Grad f x', y', z',( )

    x'f x' y', z',( )d

    d

    y'f x' y', z',( )d

    d

    z'f x' y', z',( )d

    d

    :=

  • Evaluare simbolica: Grad f x', y', z',( )y' 2 x' z'3+x' 9 y'2 z'

    3 x'2 z'2 3 y'3

    Evaluare numerica: Grad f 2, 1, 4,( )257

    34189

    = Daca Grad ,

    atunci Div A .

    Div A x', y', z',( )x'

    tr A x' y', z',( )T( ) 0 dd y'

    tr A x' y', z',( )T( ) 1 dd

    +

    z'tr A x' y', z',( )T( ) 2 d

    d+

    ...

    :=

    Evaluare simbolica: Div A x', y', z',( ) 4 x' y'3 2 y' z' 6 x'4 z'+Evaluare numerica: Div A 2, 1, 4,( ) 384=

  • Daca Grad , atunci Curl A . (rotor)

    Curl A x', y', z',( )

    y'tr A x' y', z',( )T( ) 2 d

    d z'tr A x' y', z',( )T( ) 1 d

    d

    z'tr A x' y', z',( )T( ) 0 d

    d x'tr A x' y', z',( )T( ) 2 d

    d

    x'tr A x' y', z',( )T( ) 1 d

    d y'tr A x' y', z',( )T( ) 0 d

    d

    :=

    Evaluare simbolica: Curl A x', y', z',( )y'2

    12 x'3 z'26 x'2 y'2

    Evaluare numerica: Curl A 2, 2, 3,( )4

    86496

    =

  • B x' y', z',( ) f x' y', z',( ) A x' y', z',( ):= B x' y', z',( )2 x'2 y'3 x' y' x'2 z'3 3 y'3 z'+( )

    y'2 z' x' y' x'2 z'3 3 y'3 z'+( )3 x'4 z'2 x' y' x'2 z'3 3 y'3 z'+( )

    fA x' y', z',( )x'3 z'4 y'y'3 x'2 z'3

    2 x'4 y'2 z'3

    := Div fA x', y', z',( ) 3 x'2 z'4 y' 3 y'2 x'2 z'3 6 x'4 y'2 z'2+

    Curl fA x', y', z',( )4 x'4 y' z'3 3 y'3 x'2 z'2+4 x'3 z'3 y' 8 x'3 y'2 z'3

    2 y'3 x' z'3 x'3 z'4