[問題] 微分方程式內含min/max function的數值解

看板R_Language作者 (皮皮)時間9年前 (2016/04/19 11:36), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 我想要解一個微分方程組,方程式裡面包括min function 目前使用deSolve package 的ode function 來解...但是似乎解不出來... 請問大家有無適合的function 可以解這樣的問題,非常感謝~~~ [程式範例]: http://codepad.org/lHHjGwvd pars=c(Rm=30,u=5,v=5,m2=1.5,m3=0.3,ma=0.3,mb=0.5,Nex0=2,Pex=0.2,q=0.3, f=16/106,f2=1/106,e1=1.5,e2=0.6,a1=0.1,s=1,w=0.75) istate <- c(R=10,C=10,N=10,P=1) feed=function(t,state, pars){ with(as.list(c(state, pars)),{ I=w/(1+exp(-(u*N-v))) E=N^2-e1*N+e2 dri=I-(I/P)*R dre=(E/P)*R dR=(dri-dre) m1=ma*R^mb leig=min((m1*N)/(m2+N),(m1*P)/(m2+P)) ###主要是加了這一段 dC=(leig*C-m3*C) dN=(q*(Nex-N)+f*(1-q)*m3*C-f*leig*C) dP=(q*(Pex-P)+f2*(1-q)*m3*C-f2*leig*C) list(c(dR,dC,dN,dP)) }) } times <- seq(0,200,by=1/12) out <- ode(y = istate, times = times, func = feed, parms = pars) [環境敘述]: Windows 8 R 3.2 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.4.192 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1461036983.A.D01.html ※ 編輯: biozoo (140.112.4.192), 04/19/2016 11:50:01
文章代碼(AID): #1N5QUtq1 (R_Language)
文章代碼(AID): #1N5QUtq1 (R_Language)