求教为什么这个函数图像会出现波动,以及MMA对无穷大的数值定义
mathematica吧
全部回复
仅看楼主
level 1
x^18 - Exp[-(4/x^2)]*x^18 - Exp[-(4/x^2)]*x^16 - Exp[-(4/x^2)]*x^14,按理说这个函数是单调递增的,
为比较,我又画了一个把x的低次幂即16、14次幂去掉的函数图像。
可以看到当我把x设为从0到1*10^7时,是符合的。
但是当我设到3*10^7时,可以看到出现小的波动
进一步,设到7*10^7时,这种现象就更明显了
为了更好地看清,我把区间设为从5*10^7到7*10^7,可是可以看到有的确有上下波动,这是为什么呢?
阶梯型上升可能是值太大显示的问题,但这波动我有点无法理解,该作何解释?
之后,我直接把区间设为从0到10^9,可以看到有奇点,值大概在2.5*10^8附近。
对此我的理解是大概这个值相当于无穷大,所以Exp的指数-(4/x^2)变为0,所以Exp变为1,那么
x^18 - Exp[-(4/x^2)]*x^18 - Exp[-(4/x^2)]*x^16 - Exp[-(4/x^2)]*x^14前两项就抵消了,
至于后两项,貌似是跟前两项相比很小给忽略了,这可以从下图的这两个函数图像重合了窥得一二。
那在之前两函数的比较时,可以看出它们的函数图像是有差别的,这是说在之前低次项有贡献,而在这之后没有了?选在这个值即2.5*10^8作为无穷大是由于机器的精度决定的吗,还是说可以人为改动的?
代码附上:
s1 = x^18 - Exp[-(4/x^2)]*x^18 - Exp[-(4/x^2)]*x^16 -
Exp[-(4/x^2)]*x^14;
s2 = x^18 - Exp[-(4/x^2)]*x^18;
Plot[{s1, s2}, {x, 0, 100*10^7}, PlotStyle -> {{Red}, {Green}},
PlotRange -> All,
PlotLegends -> Placed[{"s1(有x的低次项)", "s2(无x的低次项)"}, {0.6, 0.8}],
PlotLabel -> "x: 0~100*\!\(\*SuperscriptBox[\(10\), \(7\)]\)"]
最后,再请教一个小问题[呵呵],为什么我点击图片另存为JPEG和PNG格式时,提示我
而我保存为其他格式时,是可以的。嗯……我这里用的是截图。
谢谢
2018年12月28日 01点12分 1
吧务
level 15
就是精度问题。WorkingPrecision -> 32这些现象就没了。当然你要是问我为什么MachinePrecision下会出现这种样子的舍入我也答不上来。
然后关于WindowSize的问题,这是已知Bug,参:https://tieba.baidu.com/p/3678763462
2019年01月05日 07点01分 3
1