{VERSION 4 0 "IBM INTEL NT" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 257 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 267 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 273 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 278 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 284 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 286 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 287 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal " -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT -1 0 "" }}{PARA 256 "" 0 "" {TEXT 256 48 "MAT1154 - Equa\347\365es Diferenciais e de Diferen\347as " }}{PARA 256 "" 0 "" {TEXT 257 32 "Instabilidade e erro de m\341quin a." }}{PARA 256 "" 0 "" {TEXT -1 3 "por" }}{PARA 256 "" 0 "" {TEXT -1 17 "George Svetlichny" }}{PARA 256 "" 0 "" {TEXT 258 57 "\005\005\005M \311TODOS NUM\311RICOS DE SOLU\307\303O DE ODE DE \010PRIMEIRA ORDEM" }}{PARA 256 "" 0 "" {TEXT 259 69 "Baseado nos scripts do site da Maple soft e adapta\347\365es do Prof. Grivet" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "restart:with( DEtools \+ ):with( plots ):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 9 "A e.d.o. " } {TEXT 261 7 "y'=2y-t" }{TEXT -1 26 " demonstra o fen\364mento de " } {TEXT 260 15 "instabilidade. " }{TEXT -1 34 "Definimos primeiro o lado direito:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "fun:=2*y(t)-t; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 26 "Definimos agora a equa\347 \343o." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "eq:=D(y)(t)=fun; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "Achamos a solu\347\343o geral ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "sol:=dsolve(eq,y(t)); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 33 "Definimos uma condi\347\343o \+ inical em " }{TEXT 262 4 "y(0)" }{TEXT -1 10 " generica:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ci:=y(0)=a;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 42 "Resolvemos agora com esta condi\347\343o inical:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "sola:=dsolve([eq,ci],y(t)); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "A solu\347\343o para " } {TEXT 274 5 "a=1/4" }{TEXT -1 3 " \351 " }{TEXT 275 0 "" }{TEXT 276 8 "inst\341vel" }{TEXT 277 0 "" }{TEXT -1 80 " no sentido que todas as s olu\347\365es pr\363ximas se afastam dela exponencialmente com " } {TEXT 278 2 "t " }{TEXT -1 10 "crescendo." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Pegamos a fun\347\343o solu\347\343o:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "funsol:=subs(sola,y(t));" }{TEXT -1 0 "" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 40 "Plotamos agora as solu\347\365es \+ para o valor " }{TEXT 272 5 "exato" }{TEXT -1 4 " de " }{TEXT 273 1 "a " }{TEXT -1 74 " da solu\347\343o inst\341vel e tambem para um milles \355mo menos e um mill\351simo mais." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "plot([subs(a=0.249,funsol),subs(a=0.25,funsol),subs( a=0.251,funsol)],t=0..5,colour=[blue,red,blue]);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 128 "Vamos resolver agora a mesma equa\347\343o numeri camente usando o m\351todo de Euler. Definimos o procedimento de Euler . Nesta defini\347\343o " }{TEXT 280 1 "f" }{TEXT -1 31 " \351 a fun \347\343o do lado direito de " }{TEXT 281 9 "y'=f(t,y)" }{TEXT -1 2 ", " }{TEXT 282 8 "(t0,y0) " }{TEXT -1 22 "\351 a condi\347\343o inicial , " }{TEXT 283 1 "h" }{TEXT -1 25 " \351 o tamanho do passo, e " } {TEXT 284 1 "T" }{TEXT -1 5 " (> " }{TEXT 285 3 "t0)" }{TEXT -1 65 " \+ \351 o ponto final do intervalo onde procuramos a solu\347\343o n\372m erica." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Euler := proc( f, t0, y0, h, T )" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " local i, L, X \+ ,N; N:=round((T-t0)/h);" }{TEXT -1 1 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " X := evalf( [ t0, y0 ] );" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " L := X;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 " for i from 1 to N do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 " X := X + [ h, h*f(op(X)) ];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " L := L, X;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end do;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " return L;" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{MPLTEXT 1 0 9 "end \+ proc;" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 19 "Definimos a fun\347\343o " }{TEXT 263 6 "2*y-t:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "func:=(t,y)->2*y-t;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 63 "Chamamos agora o Euler com as mesmas condi\347\365es iniciais, \+ usand " }{TEXT 288 5 "h=0,5" }{TEXT -1 15 " e ponto final " }{TEXT 289 1 "5" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "aa:=Euler(func,0,0.249,0.5,5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "bb:=Euler(func,0,0.250,0.5,5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "cc:=Euler(func,0,0.251,0.5,5);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "Plotamos os tr\352s resultados." }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 46 "plot([[aa],[bb],[cc]],colour=[blue,red,blue] );" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 19 "Refazemos tudo com " } {TEXT 264 5 "h=0.1" }{TEXT -1 39 ": (Sem mostrar o resultado das conta s)." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "aa:=Euler(func,0,0.2 49,0.1,5):bb:=Euler(func,0,0.250,0.1,5):cc:=Euler(func,0,0.251,0.1,5): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "plot([[aa],[bb],[cc]],c olour=[blue,red,blue]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 231 "Note \+ que neste caso o Euler d\341 resultado bastante bom se come\347ar com \+ a condi\347\343o incial da solu\347\343o inst\341vel. Isto \351 porque a solu\347\343o inst\341vel \351 uma fun\347\343o linear. Vamos agora complicar um pouco a equa\347\343o e repetimos os passos acima:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "fun:=2*y(t)-sin(t);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "eq:=D(y)(t)=fun;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "sol:=dsolve(eq,y(t));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ci:=y(0)=a;" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 27 "sola:=dsolve([eq,ci],y(t));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 32 "A solu\347\343o inst\341vel \351 aquela com " } {TEXT 286 5 "a=1/5" }{TEXT -1 41 ". A solu\347\343o inst\341vel em nun ca ultrapassa " }{TEXT 287 3 "2/5" }{TEXT -1 11 " em m\363dulo." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "funsol:=subs(sola,y(t));" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "Plotamos as solu\347\365es exatas ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "plot([subs(a=0.199,fu nsol),subs(a=0.200,funsol),subs(a=0.201,funsol)],t=0..4,colour=[blue,r ed,blue]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 74 "Agora vamos calcula r com m\351todo de Euler com as mesmas condi\347\365es iniciais." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "func:=(t,y)->2*y-sin(t);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "aa:=Euler(func,0,0.199,0.1, 4):bb:=Euler(func,0,0.200,0.1,4):cc:=Euler(func,0,0.201,0.1,4):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "plot([[aa],[bb],[cc]],colour=[blue, red,blue]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "Compare os dois gr\341ficos, o exato e o obtido pelo m\351todo de Euler. Mesmo come\347ando com a condi\347 \343o incial " }{TEXT 265 5 "exata" }{TEXT -1 43 " da solu\347\343o in st\341vel, a solu\347\343o num\351rica \351 " }{TEXT 266 5 "muito" } {TEXT -1 98 " diferente. Tudo isto \351 devido ao erro de arredondamen to (erro da m\341quina) na avalia\347\343o da fun\347\343o " }{TEXT 267 6 "sin(t)" }{TEXT -1 24 ". Mude agora o valor de " }{TEXT 268 7 "h (0.1)" }{TEXT -1 1 " " }{TEXT 269 2 ") " }{TEXT -1 5 "para " }{TEXT 270 4 "0.01" }{TEXT -1 1 " " }{TEXT -1 73 "nas chamada da rotina de Eu iler acima. O resultado melhora mas n\343o muito." }}}}{MARK "0 4 0" 17 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }