首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NDSolve中指定参数的数值解( Numerical )

NDSolve中指定参数的数值解( Numerical )
EN

Stack Overflow用户
提问于 2013-06-26 11:57:22
回答 1查看 1.2K关注 0票数 1

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

代码语言:javascript
复制
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,以便生成解的详细数值点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-26 14:03:02

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

代码语言:javascript
复制
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}]

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

代码语言:javascript
复制
Evaluate[c[900, 10] /. e]
(*{0.914014}*)

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

代码语言:javascript
复制
Manipulate[Evaluate[c[t, h] /. e], {t, 0, 900}, {h, 0, 274}]

更新:考虑到我从下面的评论中收到的信息;我们可以定义一个像qt,h这样的函数,它将给我们一个函数的解决方案:

代码语言:javascript
复制
q[t_, h_] := Evaluate[c[t, h] /. e]
q[900, 10]
(*{0.914014}*)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17311287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档