我正在研究解决偏微分方程的解决方案,确切地说是菲克的第二扩散定律。 我能够使用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(或其他函数)中,以生成解的详细数值点。
答案 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}]
<强>更新强> 考虑我从以下评论中收到的信息;我们可以定义一个像 q [t,h] 这样的函数,它将为我们提供一个函数的解决方案:
q[t_, h_] := Evaluate[c[t, h] /. e]
q[900, 10]
(*{0.914014}*)