2014-04-24 43 views
1

這裏的問題語句:使用NDSolve,得到的解析解語法弄清楚y值對於特定的x值在數學

兩個非線性相互依賴的,初始值一階微分方程進行求解。該解決方案用於計算另一個參數,作爲相同x值的函數。

比方說,我們有常微分方程爲:

X'[t]=a*S[t]*X[t]/(b+S[t] 
S'[t]=-a*S[t]*X[t]/(c(b+S[t])) where a,b,c are also known constants 
X[0]=constant 
S[0]=constant 

soln = NDSolve[{X'[t]=a*S[t]*X[t]/(b+S[t],S'[t]=-a*S[t]*X[t]/(c(b+S[t])),X[0]=constant,S[0]=constant},{X,S},{t,0,50}] 

    The solution is of the form 
X-> InterpolatingFunction[{{0.0,50}},<>],S->InterpolationFunction[{{0.0,50}},<>}} 

Now the new parameter is: Yvalue=(S[t]/.soln)+(X[t]/.soln) 

我試圖找出正確的語法來計算y值針對輸入的t值。 前 - 一個需要計算在t = 0.1,0.56,2.3等Y值。

謝謝你的時間。

問候, ANKUR所有參數給出具體數值

回答

1

NDSolve需求。如果賦值A,B,C,X [0],S [0]和精心搭配你所有的括號和謹慎使用==與=正確的,那麼這可以工作

In[1]:= a = 2; b = 3; c = 5; 
    soln = NDSolve[{X'[t] == a*S[t]*X[t]/(b + S[t]), 
    S'[t] == -a*S[t]*X[t]/(c(b+S[t])), X[0]==7, S[0]==11}, {X,S}, {t,0,50}][[1]] 

Out[2]= {X -> InterpolatingFunction[{{0.,50.}}, <>], 
     S -> InterpolatingFunction[{{0.,50.}}, <>]} 

In[3]:= Yvalue = S[t] + X[t] /. soln /. t -> 0.1 

Out[3]= 18.9506 

In[4]:= Yvalue = S[t] + X[t] /. soln /. t -> 0.56 

Out[4]= 25.6919 

In[5]:= Yvalue = S[t] + X[t] /. soln /. t -> 2.3 

Out[5]= 61.9823 

甚至

In[6]:= Plot[S[t] + X[t] /. soln, {t, 0, 50}, PlotRange -> {0, 70}] 

Out[6]= ...PlotSnipped... 
+0

謝謝比爾! – Ankurmans