如何在Mathematica中使用NDSolve计算的值?

时间:2015-03-22 10:04:57

标签: wolfram-mathematica

我正在尝试求解一个微分方程,并使用2个计算值(在特定点)作为新微分方程的边界条件。一个例子:

sys1 = {p''[x] + p'[x] + p[x] == 0,p'[0] == 0,p'[1] ==0};
sol1 = NDsolve[sys1,p[x],{x,0,1}];

现在我想用解决方案sys2中的边界条件来定义sol1。我的意思是它应该是这样的:

sys2 = {3y''[x] + 7y'[x] - 6y[x] == 0,y[0.3] == p[0.3],y'[1] == p'[1]}

然后我们可以使用sys2来解决NDSolve。我没有找到任何有关如何从解决方案中提取这些值的线索。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

sol1 = NDSolve[sys1,p,{x,0,1}];
pfun=First[p/.sol1];
pfun[0.3]
pfun'[1]

InterpolatingFunction的文档中有一个示例用于实现此目的(http://reference.wolfram.com/language/ref/InterpolatingFunction.html)。