NDSolve中指定参数的数值解(Mathematica)

时间:2013-06-26 03:57:22

标签: math wolfram-mathematica bioinformatics pde

我正在研究解决偏微分方程的解决方案,确切地说是菲克的第二扩散定律。 我能够使用NDSolve和Plot3D函数生成3D绘图。 使用的代码:

NDSolve[{D[c[t, h], t] == 1*D[c[t, h], h, h],
               c[0, h] == Erfc[h/(2*81.2)], 
               c[t, 0] == 1, 
            c[t, 4000] == 3.08*^-18}, c, {t, 0, 900}, {h, 0, 274}]

我希望在t = 900时找到图表的数字点,而不是图形表示。 我想知道如何将t = 900放入NDSolve(或其他函数)中,以生成解的详细数值点。

1 个答案:

答案 0 :(得分:0)

首先尝试将解决方案保存在变量中:

e = NDSolve[{D[c[t, h], t] == 1*D[c[t, h], h, h], c[0, h] == Erfc[h/(2*81.2)], c[t, 0] == 1, c[t, 4000] == 3.08*^-18}, c, {t, 0, 900}, {h, 0, 274}]

然后我们可以为我们想要的变量评估这个表达式:

Evaluate[c[900, 10] /. e]
(*{0.914014}*)

或者为了使它更通用,我们可以使用Manipulate:

Manipulate[Evaluate[c[t, h] /. e], {t, 0, 900}, {h, 0, 274}]

Manipulate

<强>更新 考虑我从以下评论中收到的信息;我们可以定义一个像 q [t,h] 这样的函数,它将为我们提供一个函数的解决方案:

q[t_, h_] := Evaluate[c[t, h] /. e]
q[900, 10]
(*{0.914014}*)