对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的,那么,还有哪些场合

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 02:35:38
对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要

对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的,那么,还有哪些场合
对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?
如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的,那么,还有哪些场合是必须要加上Evaluate的呢?

对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的,那么,还有哪些场合
绘图类的函数基本都有HoldAll属性,我个人的理解是:
不加Evaluate的情况下,Mma永远不会单独计算你的表达式(也就是绘图函数的第一个参数),而是在绘图带入后面的参数求值(很像定义函数里的延时赋值":=").比如:
Plot[1+1+x,{x,0,1}]
在这里Mma不会把1+1+x化简为2+x,而是绘图的过程中代入具体x的值,比如求x=0的坐标过程大概是这样的
x=0
计算1+1+x
得到2
对于Interpolating,不加也是可以的,我猜测原因这个计算不会影响坐标点的计算,先把变量赋上值再计算Interpolating和先求Interpolating在求值最终都能把坐标点求出来.但是不加Evaluate的时候每求一个点的坐标都会求一次插值函数,这样就造成了重复计算,这也许就是帮助里加Evaluate的原因吧.
当计算顺序会影响结果的时候,就必须用Evaluate了.对于这个例子:
fsol[k_?NumericQ] :=
NDSolve[{Derivative[2,0][u][x,t] x^4 ==
x^3 t Cos[x Sin[t]]/(1/10 + Sin[t]) + k Derivative[0,1][u][x,t],
u[0,t] == 0,u[1,t] == 0,u[x,0] == x (1 - x)},
u[x,t],{x,0,1},{t,0,1}]
Plot3D[u[x,t] /.fsol[5][[1]],{t,0,1},{x,0,1},
PlotRange -> All]
不加Evaluate就不行了.不加Evaluate的话x和t的赋值在前,替换规则fsol的计算在后,这时就会在应用fsol的时候出现找不到x和t的情况(因为x和t已经有值了).
综上,帮助里加Evaluate是有道理的.虽然有时候不加Evaluate也能出图,但这样会增加不必要的计算.

这题不用Evaluate也能画出来啊

"如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的",举个例子呢?…这算啥,求解偏微分方程那节的帮助坑我…真的不是总是必要的,可是帮助里的这个例子就需要: fsol[k_?NumericQ] := NDSolve[{Derivative[2, 0][u][x, t] x^4 == x^3 t Cos[x Sin[t]]/(1/10 + Sin[t]...

全部展开

"如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的",举个例子呢?

收起

对于Mathematica中的插值函数InterpolatingFunction,在哪些场合必须在它外面套上Evaluate命令?如题.目前我只知道,如果要对这样的函数使用Plot3D指令,那是必须要给它套上个Evaluate的,那么,还有哪些场合 mathematica 定义函数我想在mathematica中定义一个分段函数,应该怎么弄啊?对于不同情况函数值不一样,是否需要应用If语句? mathematica中怎么定义函数在某个单点的值?what if i want change the value of a point? matlab中的插值函数 griddata的具体原理是什么呢? 一个Mathematica函数定义问题 怎样用 mathematica 拟合二元函数? 求mathematica 漂亮函数图~ mathematica 怎么画函数图像? 二次函数牛顿插值公式全部 插值为什么选sinc函数 求数值分析牛顿插值的c++函数最好有完整的实验报告,要有理论部分,这对于些编程高手来说是小菜了吧~ mathematica中的阶乘怎么输入 mathematica中的->代表什么意思? mathematica 中的RDSIM什么意思 Mathematica的NDSolve的插值函数里的具体数据如何提取保存?例如可不可以保存为一个Table或者List?我要用ContourPlot指令画一个等高线图.但是函数无法用f(x,y)表示.f必须解数值微分方程才能解出 mathematica如何完成对多项式实部虚部的提取?比如对于(a + b*I)(c + d*I),a,b,c,d 都是实数,怎么样得到实部? mathematica 赋值For[i = 1, i mathematica 9.0 如何用函数创建一个m行,n列的矩阵,元素为a[i,j]的矩阵