在mathematica中的用户定义函数内使用NDSolve

时间:2017-06-01 12:07:47

标签: wolfram-mathematica

 fun[y1_, y2_, ti_, w_] := 
 Module[{y1i = y1, y2i = y2, tj = ti, wi = w}, a = 0.5; b = 0.8; 
 c = 1.5;
 t1 = tj; t2 = tj + wi;
 Ans = Y /. 
 First@NDSolve[{Y'[t] = a*Y[t] + b*X[t], X'[t] = c*Y[t] + a*X[t], 
    Y[t1] = y1i, X[t1] = y2i}, {Y, X}, {t, t1, t2} ];
 Data = Table[{t, Ans[t]}, {t, t1, t2, 10^-6}]; 
 Export["Data.xls", Data, "XLS"]
 ya = Ans["ValuesOnGrid"]
 Return[Last[ya]];];
 fun[1, 0, 0, 1]`

我一直试图在Mathematica中解决类似的耦合微分方程。到目前为止,我已经能够在定义的函数之外执行此操作,并且能够将数据用于分析目的。但是对于使用内部循环,我需要在函数内以数字方式求解耦合微分方程。

0 个答案:

没有答案