Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 03:07:38
![Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出](/uploads/image/z/11507876-44-6.jpg?t=Mathematica%E7%9A%84NDSolve%E7%9A%84%E6%8F%92%E5%80%BC%E5%87%BD%E6%95%B0%E9%87%8C%E7%9A%84%E5%85%B7%E4%BD%93%E6%95%B0%E6%8D%AE%E5%A6%82%E4%BD%95%E6%8F%90%E5%8F%96%E4%BF%9D%E5%AD%98%3F%E4%BE%8B%E5%A6%82%E5%8F%AF%E4%B8%8D%E5%8F%AF%E4%BB%A5%E4%BF%9D%E5%AD%98%E4%B8%BA%E4%B8%80%E4%B8%AATable%E6%88%96%E8%80%85List%3F%E6%88%91%E8%A6%81%E7%94%A8ContourPlot%E6%8C%87%E4%BB%A4%E7%94%BB%E4%B8%80%E4%B8%AA%E7%AD%89%E9%AB%98%E7%BA%BF%E5%9B%BE.%E4%BD%86%E6%98%AF%E5%87%BD%E6%95%B0%E6%97%A0%E6%B3%95%E7%94%A8f%EF%BC%88x%2Cy%EF%BC%89%E8%A1%A8%E7%A4%BA.f%E5%BF%85%E9%A1%BB%E8%A7%A3%E6%95%B0%E5%80%BC%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%89%8D%E8%83%BD%E8%A7%A3%E5%87%BA)
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]}的形式的数组