我正在研究一种解决偏微分方程的方法,确切地说,是菲克扩散第二定律。我能够使用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处的图形的数值点,而不是图形表示。我想知道如何在NDSolve (或其他函数)中输入t= 900,以便生成解的详细数值点。
发布于 2013-06-26 14:03:02
先尝试将解决方案保存在变量中:
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}]

更新:考虑到我从下面的评论中收到的信息;我们可以定义一个像qt,h这样的函数,它将给我们一个函数的解决方案:
q[t_, h_] := Evaluate[c[t, h] /. e]
q[900, 10]
(*{0.914014}*)https://stackoverflow.com/questions/17311287
复制相似问题