Metode numerce pentru probleme Cauch Ecuaţ derenţale Probleme Cauch Metode unpa 4 Metode de tp Runge utta (contnuare) Conderăm problema Cauch: ' ( t) ( a) ş reţeaua de puncte: ( t a ) a t b t a h N (8) În general o metodă de tp Runge utta în r tad ete o metodă unpa de orma:
0 N h t h a (4a) unde r c h t (4b) r a h h t t t t j j j ) ( ) ( ) ( (4c) Se obervă că pentru calculul lu acem apel la dec metoda decră ma u ete o metodă explctă Pentru a pătra ordnul de aproxmare a dervate la h O e mpun condţle:
r c j a Pentru metodele cu 4 j r (5) r e poate arăta că au ordnul de exacttate r h O În general une metode Runge-utta cu r tad e aocază o un tabel numt tabelă Butcher care e poate cre matrcal: μ A T c r a a a r a a a r a a a r r rr c c c r
4 Prntre cele ma populare metode de tp Runge-utta amntm metoda lu utta având ordnul de exacttate care are tabela Butcher: 0 0 4 6 h ) ( h h h t h h t t 0-0 6 6 ar dntre cele cu 4 tad amntm:
5 ) Metoda Runge-utta tandard : 0 0 4 6 h 4 ) ( h h t h h t h h t t 0 0 0 0 0 0 6 6
6 )Metoda Runge-utta-Gll : 0 0 4 6 h 4 ) ( h h h t h h h t h h t t 0 0 0 0 6 6 6 6
7 )Metoda utta de tre optm : 0 0 4 8 h 4 ) ( h h h h t h h t h h t t 0 0 0-0 8 8 8 8
Exemplul : Rezolvaţ problema nţală ' t care are oluţa exactă t t ( t) t () Aplcăm în contnuare metoda Runge-utta tandard Programul matlab ete: %exemplu Runge utta tandard a=;b=; %capetele ntervalulu N=6; %paul retele h=(b-a)/(n-); %numarul de nodur =zero(n);%ntalzam vectorul olute pentru Euler modcat e=zero(n); %olu'a exacta _e=zero(n);%ntalzam vectorul olute pentru Euler ()=-; e()=-; _e=-; %condta ntala 8
t=a:h:b; %pa de tmp or =:N _e()=e(-)+h*ex(t(-)(-)); =Ex(t(-)(-)); =Ex(t(-)+05*h(-)+05*h*); =Ex(t(-)+05*h(-)+05*h*); 4=Ex(t(-)+h(-)+h*); ()=(-)+h/6*(+*+*+4); end e()=-/t(); plot(a:h:b'k') %reprezentam grac oluta numerca hold on plot(a:h:be'b') plot(a:h:b_e'r') unde am olot uncţa Exm dată ma jo uncton rez=ex(t) rez=/(t^)-/t-^; 9
0
Fgura 0 Soluţa exactă ş oluţle numerce obţnute olond metoda lu Euler ş metoda Runge-utta tandard Nodul (exact) R R 00-000000 -000000 0000000 0-08 -08 00000 40-0745 -07485 00000 60-064958 -065000 000004 80-0555507 -0555555 0000048 00-0499945 -0500000 0000054 Tabel 4 Comparaţe între oluţa analtcă ( ) ş valorle obţnute prn metoda Runge-utta tandard ( R )
Probleme cu valor pe ronteră Prelmnar O claă a aparte de probleme practce unt modelate de ecuaţ derenţale cu valor pe ronteră numte ş probleme cu valor pe ronteră au probleme blocale Forma generală a problemelor cu valor pe ronteră ete dată de temul de ecuaţ derenţale: d d d ( x ) :[ a b] R R d () dx
completat în capetele ntervalulu a b cu condţ de orma: g a b 0 () unde g d d d : R R R ete o aplcaţe ce poate nelnară Ca ş cazur partculare putem avea de exemplu pentru d : d dx a A (Drchlet) d dx unde A ete o contantă a A (Neumann) a a A 0 (Robn)
Exemplul: Încovoerea une bare ub propra a greutate S S 0 l x w(x) ete decră de ecuaţa: d dx w S qx x wx x l EI EI 4
unde w x reprezntă deplaarea l ete lungmea bare q ete ntentatea încărcar bare E ete modulul de elatctate S reprezntă tenunea la cele două capete ar I ete momentul de nerţe al bare Se obervă că deplaărle în capete unt nule aşadar putem pune condţle la ronteră: 0 0; wl 0 w Exemplul : Convecţa mxtă într-un canal în prezenţa une reacţ chmce (Groşan ş celalţ 009) U '' 0 '' e θ 0 U( 0) 0 (0) r U() 0 () T r T 5
unde U reprezntă vteza admenonală reprezntă temperatura admenonală ar ş r T unt parametr ce depnd de datele probleme Rezultate de extenţă ş unctate Conderăm pentru început câteva exemple(vez Agratn ş celalţ 00) Fe problema blocală: cu oluţa '' 0 (0) 0 ( b) () nh x nh b x x 0 b (4) 6
Dacă modcăm problema () atel atunc dacă: '' 0 (0) 0 ( b) (5) * b k k N atunc x b k k N ş 0 b k k N ş 0 * * n x n b (6a) atunc nu extă oluţe (6b) atunc x c n x c R (6c) Se obervă că pentru cazul (6c) avem o nntate de oluţ aşadar * b k k N ete un punct crtc 7
Modcăm dn nou ecuaţa atel: '' 0 (0) 0 ( b) (7) Dacă b atunc ) 0 extă o nntate de oluţ de orma x c n x c 0 ) 0 nu extă oluţ ) 0 extă o oluţe uncă x nh nh x b 8
Dacă Dacă b atunc extă oluţe uncă: 0 n x n b nh x nh b 0 x 0 (8) b atunc 0 ) 0 extă o oluţe uncă x 0 ) 0 nu extă oluţ 9
) 0 extă două oluţ nh x nh b x x x a b (9) n x nhb x nhx nhb x 0 x b (0) Se obervă că o chmbare mnoră a ecuaţe duce la o modcare ubtanţală a numărulu oluţlor ş a orme acetora 0
Conderăm în contnuare o problemă blocală nelnară de ordnul al dolea: x x ' x a b () '' cu condţle pe roteră a b 0 0 a a ' a b b ' b () unde a0ş a nu unt multan nule la el ş b 0 ş b Preupunem că ete contnuă pe [ b]rr a ş atace condţle Lpchtz unorme: * x u u x u u * * x u u x u u L u u L u * u x [ a b] u u R ()
O problema Cauch pentru () are oluţe uncă pe ntervalul [ b] Conderăm în contnuare problema Cauch cu condţle nţale a x x u u' x a b (4) u '' a au' a a c u' a a0u c u 0 (5) Se obervă că pentru a putea obţne cele două condţ nţale dn (5) ete necear ca temul a e nengular adcă c a c a 0 Deoarece contantele c 0 ş c unt arbtrare le xăm atel încât 0 0 c a c a (6) 0 0
Atunc condţle nţale (5) devn u u a ' a a a c 0 c 0 (7) unde parametrul trebue determnat Dec pentru ecare parametru e obţne o oluţe u x a probleme Cauch (4) ş (7) Pentru a rezolva problema cu valor pe ronteră () ş () trebue a avem: 0; : b0 ub bu' b (8) Teorema : Problema cu valor pe ronteră () ş () are atâtea oluţ dtncte câte zerour dtncte are
În general pentru un tem nelnar de d ecuaţ derenţale problema blocală cu condţ lnare pe ronteră are orma: d dx A a x x a b B b R d (9) unde A ş B unt matrc pătratce de ordnul d cu elemente contante ar ete un vector de dmenune d Preupunem că ranga B d Problema cu valor nţale aocată probleme cu valor pe ronteră (9) ete: du dx u a x u x a b u R d (0) 4
unde d R ete un vector nţal de încercare Se obervă că pentru ecare e obţne o oluţe dtnctă a probleme Cauch (0) Atunc rezolvara probleme cu valor pe ronteră e reduce la rezolvarea temulu de ecuaţ nelnare: 0 ; : A Bub () Ca în cazul partcular conderat anteror numărul oluţlor probleme blocale (9) ete acelaş cu numărul zerourlor lu 5
Metoda hootng Am văzut în ecţunea anteroară că o problemă cu valor pe ronteră e poate rezolva tranormând-o într-o problemă Cauch cărea e ma adaugă un tem de ecuaţ algebrce dn care alăm valorle nţale ce lpec În cazul în care ecuaţa au temul care trebue rezolvat nu are toate condţle nţale preczate ar o parte dntre acete condţ dn condţ unt date pe ronteră atunc aceată problemă e poate rezolva olond metoda hootng Metoda poartă aceată denumre în traducere - 6
problema trulu deoarece ete mlară cu problema unu oţer de artlere care după ce a încadrat ţnta cu două lovtur (una lungă ş una curtă) trebue ă drjeze trul în aşa el încât în cele dn urmă proectlul ă atngă ţnta Bneînţele că o înălţme ntermedară prmelor două va avea drept eect o lovtură ma apropată de obectv (vez Gerald ş Wheatle 999) Practc trebue alee valorle nţale lpă atel încât a atăcute condţle pe ronteră ar pentru aceata ete nevoe de un mecanm de reajutare bazat pe dtanţa aţă de ţntă Extă în general două modur de aplcare a metode hootng Prn analoge cu problema alăr rădăcn une ecuaţ algebrce prmul mod ete mlar 7
cu metoda înjumătăţr ntervalulu ar cel de-al dolea mod cu metoda lu Newton au metoda tangente Înjumătăţrea ntervalulu Preupunem că avem o ecuaţe derenţală ordnară care are preczate condţle nţale într-un punct x 0 ş condţa pe ronteră în punctul x L Vom rezolva ecuaţa conderând-o ca o problemă nţală în care valoarea nţală ete aleaă arbtrar în punctul x 0 Corecttudnea acete aleger ete vercată rezolvând numerc ecuaţa rezolvare în care putem olo orce metodă pentru probleme cu condţ nţale ş văzând cât de aproape ete oluţa de valoarea e reală dn x L De obce pentru o 8
alegere arbtrară condţa pe ronteră în x L nu ete ncodată atăcută De acet motv e oloec derte procedee care ă ne conducă la gărea valor nţale corecte Preupunem că avem o ecuaţe derenţală ordnară de ordnul tre cu următoarele condţ la lmtă: a ' a ' b () Dorm ă alăm valoarea '' a care ă atacă condţa ' b În acet en vom alege două valor '' a S ş '' a S atel încât prn rezolvarea ecuaţe cu acete condţ nţale obţnem două valor ' b r 9
ş ' b r cu propretatea căr r Vom rezolva apo ecuaţa pentru '' a S unde S S S () a S '' S S S a S '' r < r < < r S Modul de alegere a nolor valor S ş S 0
ş pentru care obţnem '' a r Dacă r atunc S va prm valoarea S ar dacă r atunc S va prm valoarea Prn repetarea acetu procedeu ntervalul dn care alegem valoarea nţală e înjumătăţeşte până când ' b ete ucent de apropat de pentru S dn acet nterval Exemplu : Conderăm ecuaţa lu Blau (vez Oroveanu 967) ecuaţe derenţală care modelează curgerea cu trat lmtă pe o placă plană: ''' + '' = 0 (0) = 0 '(0) = 0 '( ) = (4) unde = () ar prn e înţelege o valoare mare de exemplu 7
Ecuaţa (4) ete echvalentă cu temul de ecuaţ de ordnul întâ: ' ; ' ' 0 0; 0 0; Pentru rezolvarea ecuaţe (4) conderăm două valor partculare pentru condţa nţală lpă ''(0) ş anume S = 0 pentru care prn rezolvarea probleme nţale prn metoda Runge utta tandard obţnem '() = 056604 ş S = 07 pentru care vom obţne '() = 0499 Aşadar am încadrat condţa nţală lpă între două valor ş putem aplca în contnuare algortmul metode hootng ; Dăm în contnuare programul cr în Matlab care rezolvă aceată problemă Varablele care apar în program au următoarele emncaţ: a b capetele ntervalulu; S S aproxmaţle pentru ''(0); p valoare lu ' în ;
k A numărul de teraţ; matrcea rezultatelor A = [ ' '']; uncton d=blau(t) d=[()()-()*()]; uncton [x]=utta(abn0) h=(b-a)/(n-)% paul =zero(nlength(0)); %ntalzarea olute (:)=0; t=a:h:b; x=t; or =:N =eval(t(-)(-:)); =eval(t(-)+05*h(-:)+05*h*); =eval(t(-)+h(-:)-h*+*h*); (:)=(-:)+h/6*(+4*+); end
%programul prncpal ormat long; a=0; b=7;n=70; S=0; S=07; p=; k=0; %numarul de terat whle ab(p-)>000 S=(S+S)/; 0=[00S]; [x]=utta( Blau abn0); [mn]=ze(); (m)< S=S; ele S=S; end; p=(m) k=k+; end; A=[x']; dp(' eta ec prm ') dp(a); plot(x(:)); 4
În urma rulăr programulu conorm Tabelulu 6 e obervă aproperea de oluţa reală pe măură ce numărul de teraţ crete Numărul de '() ''(0) teraţ 0898698595 0400000 6579667870 0550000 007699998869 0475000 4 095998747406 047500 5 09800550858 045650 6 09949654440 046565 7 0005908546 0470 8 099770706789 0467968 9 099995708780 046940 Tabelul 6 Valorle pentru '() ş ''(0) la derte teraţ 5
Fgura Aproxmaţ ucceve ale oluţe 6
Metoda lu Newton Aceată metodă menţne ecuaţa derenţală în ormă nelnară ş condţa la lmtă lpă ete căutată tematc olond metoda lu Newton Vom arăta cum e obţne algortmul metode hootng pentru o ecuaţe derenţală nelnară de ordnul tre Conderăm ecuaţa derenţală: cu condţle la lmtă d dx d d g x dx dx (5) d d ( 0) 0 (0) 0 ( L) ' L (6) dx dx unde accentul notează dervata în raport cu varabla ndependentă x ar L ete lmta dreaptă a ntervalulu în care ete dentă problema noatră 7
Tranormăm ecuaţa (5) într-un tem de ecuaţ derenţale ordnare de ordnul I: d a dx da b dx db g( x a b) dx ar condţle pe ronteră e vor cre în noua ormă atel: d d (0) 0 (0) a(0) 0 (0) b(0) dx dx 8 (7) (8) unde am notat cu condţa nţală necunocutăproblema care apare acum ete gărea lu atel încât oluţa temulu (7) cu condţle nţale (8) ă atacă condţle la lmtă (6) adcă ă e repectată condţa dată în punctul L
În acet en oluţa probleme nţale (7) ş (8) trebue ă abă în punctul L o valoare apropată de L ceea ce matematc e cre ntroducând uncţa care repectă condţa: a(l ) ' L = () = 0 (9) Conderând că am alat o valoare n pentru la teraţa n pentru a ala crterul de obţnere al valor lu la teraţa n + n+ dezvoltăm în ere Talor uncţa : de unde obţnem n n 0 ( ) ( ) n n d n ( ) (0) d n n n () ( ) d n ( ) d 9
40 ceea ce ete echvalent cu ) ( ' ) ( n L n n n L a L a () Necunocuta care apare în relaţa () ete în acet moment dervata lu a în raport cu Pentru a ala aceată valoare dervăm relaţle (7) ş (8) în raport cu ş obţnem: b b g a a g g b dx d b a dx d a dx d () (0) 0 (0) 0 0) ( b a (4)
Introducem notaţle: ş înlocundu-le în ecuaţle () ş (4) avem: F a b A B (5) db dx g df A dx da B dx g g F A B a b (6) F ( 0) 0 A(0) 0 B(0) (7) În acet moment putem da algortmul metode hootng pentru rezolvarea ecuaţlor (5) ş (6): 4
Paul : = Paul : rezolvăm ecuaţle (5) ş (6) cu condţa b(0) = Paul : rezolvăm ecuaţle (6) ş (7) ş reţnem valoarea A(L ) = A(L) Paul 4: Paul 5: a( L ) ' L alăm A( L ) repetăm paş 4 cu = până e obţne acurateţea dortă Trebue menţonat aptul că pentru o alegere nţală a valor cât ma apropată de valoarea reală numărul paşlor e reduce emncatv De aemenea nu pentru orce valoare nţală e obţne o oluţe aceată valoare trebund ă e ale în vecnătatea valor reale Alarea une valor atăcătoare pentru începerea metode e poate ace prn expermentăr numerce prn vercarea ma multor valor de tart 4
4 Exemplu 4: Conderăm dn nou ecuaţa lu Blau cră ub orma 0; 0 0; 0 ' ' ' Conorm algortmulu de ma u avem de rezolvat temul: 0 0; 0 0; 0 ' ' ' 0 0; 0 0; 0 ' ' ' 6 5 4 5 4 6 6 5 5 4 ar pentru alarea lu olom teraţa ) ( ) ( 5 L L
Dăm în contnuare programul matlab unde am olot uncţa uttam decră la exemplul anteror: uncton d=blanewt(t) d=[()()-()*() (5) (6) -()*(4)-()*(6)]; ormat long; a=0; b=5;n=5; S=05; p=; k=0; %numarul de terat whle ab(p-)>0000 0=[00S00]; [x]=utta('blanewt'abn0); S=S-((N)-)/(N5); p=(n); k=k+; end; dp([x']); plot(x(:)); 44
Numărul de teraţ '() S = ''(0) 65590 04064 090775 0468075 0997769 0469644 4 0999998 0469645 Tabelul 7 Valorle pentru '() ş ''(0) la derte teraţ Putem ace obervaţa că metoda lu Newton necetă ma puţne teraţ dar trebue ă rezolve un tem de ecuaţ derenţale dublu aţă de temul nţal Dacă problema are ma multe oluţ atunc e aplcă algortmul de ma multe or pentru dvere valor de pornre ale lu 45
5 Rezolvtor Matlab Probleme Cauch Rezolvtor ODE ' ( t) ( a) ( t a ) a t b Claa de uncţ ODE rezolvă probleme cu valor nţale Au ntaxa [ty] = olver(odeuntpan0opton p p ) unde olver poate ode45 ode ode ode5 ode odet au odetb Parametr de eşre unt: t vectorul coloană al abcelor; tabloul oluţlor 46
Parametr de ntrare odeun peccă uncţa dn membrul drept al ecuaţe tpan ntervalul de ntegrare 0 peccă valoarea nţală opton opţunle permt etarea unor parametr a rezolvtorulu ş e creează cu odeet După opton pot ă apară parametr varabl p p care unt tranmş uncţe odeun la ecare apel Funcţa Tp Comentar ode45 Nont Metodă mbrcată Runge-utta explctă cu ordnele 4 ş 5 Are la bază perechea Dormand-Prnce( DORPRI5) ode Nont Metodă mbrcată Runge-utta explctă cu ordnele ş Are la bază perechea Bogack-ShampneBS() ode Nont Metodă multpa explctă cu ordn varabl de la la Are la bază metoda Adam-Bahord-Multon ode5 St Metodă mplctă cu ma mulţ paş cu ordn varabl de la la 5 Foloeşte ormule de derenţere numercă (NDF) au optonal derenţe nte regreve (BDF) ode St Metodă contrută pe o pereche Roenbrock modcată (cu un pa) de ordne ş odet St Metoda mplctă a trapezulu cu ordnele ş odetb St Algortm Runge-utta mplct ordnele ş ce mplcă în prmul tagu metoda trapezulu ar în al dolea o metodă cu derenţe nte regreve de ordn 47
Exemplu : Rezolvaţ ecuaţa pendululu olond metoda ode45: Notăm d g d n 0 ( 0) 0 (0) 0 dt L dt ş recrem temul în orma: d d g n cu condtle 0 0; dt dt L d dt 0 0 ; Programul Matlab ete următorul: %ecuata pendululu a=0;b=p/;%capetele ntervalulu de ntegrare g=98;%accelaerata gravtatonala L=0;%lungmea pendululu 0=[00];%condtle ntale opton=odeet('reltol'e-8);%modcarea optunlor [t]=ode45('pendul'[ab]0optongl)%apelarea rezolvtorulu plot(t(:)); uncton d=pendul(tlaggl) d=[();-g/l*n(())]; 48
Pentru ntegrare au ot neceare 69 de nodur paul mnm a avut valoarea 000887 ar paul maxm 0069 Soluţa numercă a ecuaţe pendululu 49