Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?

我要用ContourPlot指令画一个等高线图。但是函数无法用f(x,y)表示。f必须解数值微分方程才能解出来。我目前想法是:固定x值,再遍历y。大循环是遍历x值。每一次... 我要用ContourPlot指令画一个等高线图。但是函数无法用f(x,y)表示。f必须解数值微分方程才能解出来。我目前想法是:固定x值,再遍历y。大循环是遍历x值。每一次给定x,以y为未知数可用NDSolve解微分方程,得到一组数据(fi,yi)(i为不同的f和y值),保存NDSolve的结果。最后等所有循环结束。提取出来之前保存的数据,画出等高图。
可是现在不知道如何提取NDSOlve的值><~求求各位大神帮助!
展开
yang_bigarm
2012-05-19 · TA获得超过3948个赞
知道大有可为答主
回答量:1664
采纳率:100%
帮助的人:603万
展开全部
实际上是可以用ContourPlot直接画NDSolve的结果的,举个例子吧:
s = NDSolve[{D[u[t, x], t] == D[u[t, x], x, x], u[0, x] == 0,
u[t, 0] == Sin[t], u[t, 5] == 0}, u, {t, 0, 10}, {x, 0, 5}]
DensityPlot[(u[t, x] /. s), {x, 0, 5}, {t, 0, 10}, PlotPoints -> 35,
ColorFunction -> Hue]
2步就搞定了。
另外,你如果真的想取出函数u[x,t]上面的点的话,这样做
data = Flatten[ Table[{x, t, (u[t, x] /. s)[[1]]}, {t, 0, 10, 0.1}, {x, 0, 5, 0.1}], 1];
得到的结果是{xi,yi,f[xi,yi]}的形式的数组
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式