Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
exercicios:calc1 [2012/05/11 17:14] – [Método de Euler] adalardoexercicios:calc1 [2024/01/09 18:18] (atual) – edição externa 127.0.0.1
Linha 138: Linha 138:
  
 A aproximação foi boa? Tente repetir o mesmo código com dt = 0.01 e 0.001 e compare. A aproximação foi boa? Tente repetir o mesmo código com dt = 0.01 e 0.001 e compare.
-====== Integração Numérica no R ======   +====== Integração Numérica no R ====== 
-Vamos integrar numericamente algumas equações usando o pacote deSolve e a função //ode//.+Não precisamos fazer todo o procedimento anterior para fazer a integração numérica no {{:exercicios:rlogo.jpg?20  |}}, existem soluções implementadas previamente que são muito mais eficientes e robusta que a nossa. 
 +Vamos integrar numericamente algumas equações usando o pacote //deSolve// e a função //ode//.
 Antes de tudo precisa instalar e carregar o pacote. Para instalar você pode usar o menu do RGui ou pela linha de comando, digite: Antes de tudo precisa instalar e carregar o pacote. Para instalar você pode usar o menu do RGui ou pela linha de comando, digite:
  
Linha 217: Linha 218:
  
   *1. $ \frac{dy}{dt} = y-y^2*f(t)$   *1. $ \frac{dy}{dt} = y-y^2*f(t)$
-    * sendo: $f(t)= + 0.sin(2\pi Mt)$;+    * sendo: $f(t)= 0.01 + 0.01 sin(2\pi Mt)$;
     * M=15     * M=15
   *2. $\frac{dn}{dt} = r(t)*n $    *2. $\frac{dn}{dt} = r(t)*n $ 
-    * sendo: $r(t)= 0 + 0.1 sin(2 \pi t)$+    * sendo: $r(t)= 0.1 - 100 sin(2 \pi t)$
  
-Uma solução:  
  
-<code> 
-### primeiro caso 
-fy3 <- function(time,y, parms) 
-  { 
-   n=y[1] 
-   M=parms[1] 
-   r=0.01+ 0.01*sin(2*pi* M *time) 
-   dy.dt=n-n^2 * r 
-   return(list(c(dy.dt)))  
-  }  
-y0 = 10 
-prmt=c(M=1) 
-st=seq(0.1,20,by=0.01) 
-res.fy3= ode(y=y0,times=st, func=fy3,parms=prmt) 
-plot(res.fy3[,1], res.fy3[,2], type="l", col="red",lwd=2, xlab="tempo", ylab="y") 
- 
-### segundo caso 
- 
-fy4 <- function(time,y, parms) 
-  { 
-   n=y[1] 
-   rt= 0.1-100*(sin(2*pi*time)) 
-   dy.dt=rt*n 
-   return(list(c(dy.dt)))  
-  }  
-y0 = c(.1) 
-#prmt=c(M=1) 
-st=seq(0.1,20,by=0.0001) 
-res.fy4= ode(y=y0,times=st, func=fy4) 
-plot(res.fy4[,1], res.fy4[,2], type="l", col="red",lwd=2, xlab="tempo", ylab="y") 
- 
-</code> 
exercicios/calc1.1336756490.txt.gz · Última modificação: 2024/01/09 18:17 (edição externa)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0