Graph Mathematica8:求[-1,1]上两个函数之差的最大值

Graph Mathematica8:求[-1,1]上两个函数之差的最大值,graph,wolfram-mathematica,max,Graph,Wolfram Mathematica,Max,我有两个近似函数,我想找出它们的图之间的最大值(误差),看看它们接近多少。我用过: 找到最大值[Abs[f[x]-p[x]],但是Mathematica 8给了我这个输出: {2.75612*10^104,{x->2.75612*10^104} 这是什么意思?太大了 你能给我一个更好的建议吗 感谢这可能是由于当x的输入值是一个非常大的数字时,两个函数中的一个函数出现某种溢出造成的。您应该将域限制为[-1,1]: FindMaximum[{Abs[f[x] - p[x]], -1 <= x

我有两个近似函数,我想找出它们的图之间的最大值(误差),看看它们接近多少。我用过: 找到最大值[Abs[f[x]-p[x]],但是Mathematica 8给了我这个输出: {2.75612*10^104,{x->2.75612*10^104}

这是什么意思?太大了

你能给我一个更好的建议吗


感谢

这可能是由于当x的输入值是一个非常大的数字时,两个函数中的一个函数出现某种溢出造成的。您应该将域限制为[-1,1]:

FindMaximum[{Abs[f[x] - p[x]], -1 <= x <= 1}, x]

FindMaximum[{Abs[f[x]-p[x]],-1不知道函数很难说,但我猜它找到的最大值的位置远远超出了您的预期范围。使用不同的形式或
FindMaximum
,您可能会更成功

FindMaximum[Abs[f[x] - p[x]],{x,x0,xmin,xmax}]

其中,
x0
是您对它的初始猜测(可以是感兴趣区域内的任何点,
xmin,xmax
是您感兴趣区域的端点。

原因可能是Leonid所说的。要实时查看FindMaximum在做什么,您可以

f[x_] := Sin[x];
p[x_] := x^2;
lst = {};
Monitor[
 FindMaximum[Abs[f[x] - p[x]], x, 
  EvaluationMonitor :> (AppendTo[lst, x]; Pause[.01])
  ], ListPlot[lst, PlotRange -> Full]
 ]
结果图上的纵轴是当前查看的x坐标FindMaximum。FindMaximum完成后,图将消失;列表存储在lst中,因此您可以使用它进行列表打印


您也可以尝试使用
{Abs[f[x]-p[x]],-1来搜索区间{a,b}内的全局最大值,我建议:


NMaximize[{Abs[f[x]-p[x]],f[x]是一个普通函数,p[x]是多项式。我现在将运行此命令。thanks@nalkapo好吧,那可能是因为多项式,它在无穷远处是无界的,单调的。你应该指出你所在区域的端点,正如我提到的。@nalkapo我想关键是Leonid在上面的评论中提到的。如果其中一个函数是多项式,那么它发散了s x->+/-无穷大(一次幂(环:))支配着它们)。因此,您的意外值可能是由于考虑了函数的无界间隔而导致的!根据这些孩子的不同,您的问题可能从简单到极其困难。