Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 11:21:10
Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出
Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?
我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出来.我目前想法是:固定x值,再遍历y.大循环是遍历x值.每一次给定x,以y为未知数可用NDSolve解微分方程,得到一组数据(fi,yi)(i为不同的f和y值),保存NDSolve的结果.最后等所有循环结束.提取出来之前保存的数据,画出等高图.
可是现在不知道如何提取NDSOlve的值>
Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出
实际上是可以用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]}的形式的数组