2014-04-24 20 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