运行命令时:
Plot[1/x, {x, 0, 10}]
我得到非常奇怪的输出:
不仅如此,而且在运行时
Plot[1/x, {x, 0, 1000}, Mesh -> All]
哪个标记它产生的点之间的线,给我这个:
请注意1000
在这里 - 而不是10
。
在阅读了Mathematica关于Plot
的解释之后 - 它说如果函数快速变化它会产生更多的点数。函数1/x
变化非常慢 - 我认为Mathematica不是足够的代数 - 但是使用Mesh -> All
我表明它是不正确的。
有没有人遇到这种奇怪的行为?任何人都可以向我解释是什么导致这种情况,以及如何解决?
MaxRecursion
和WorkingPresicion
- 但没有用。
0.4
作为最后一个数字,{{1} } 它上面。 X轴实际上是0.6
!所以问题可能是:为什么X轴在0.2
而不是0.2
?
答案 0 :(得分:3)
我在你的第一个情节中没有看到任何奇怪的东西,我看到了双曲线图。 Mathematica甚至非常友好地忽略了您评估1/0
的尝试。
在你的第二个情节中,我认为你期望Mathematica沿着它绘制的线绘制1000点?你给它多少像素在x方向上绘制那1000个点?我认为你所看到的是大多数基于计算机的绘图常见的人工制品:要求1000个点(可能)250像素,并且必须给出一些东西。或许我不明白为什么你担心输出。
最后,你问:为什么X轴为0.2而不是0
答案是Mathematica决定图表看起来很好。如果要强制x轴在0处穿过y轴,请使用AxesOrigin
命令中的Plot
选项。
答案 1 :(得分:3)
嗯,妈妈只是想要善待。如果输入Plot[1/x, {x, 0, 10}, PlotRange -> All, PlotStyle -> Thick]
,您将获得正确的绘图范围,但由于它是无穷大(对于y轴),因此该函数的其余部分基本上为零。所以你会看到一个“空”的情节,这更加不直观......
答案 2 :(得分:1)
您可以在DiscretePlot
中找到价值:
DiscretePlot[1/x, {x, 0.5, 10, 0.2},
PlotRange -> All,
AxesOrigin -> {0, 0}
]
或添加选项Joined -> True
并获取: