我似乎无法理解Mathematica中Plot
和PlotLog
(以及其他对数比例绘图函数)的行为之间的区别。假设我有这个简单的功能:
f [a_] := Length[Range[0, a]]
现在正在运行Plot[f[x], {x, 1, 10}]
会产生正确的图表,但是当我尝试
PlotLog[f[x], {x, 1, 10}]
我没有输出保存以下错误:
Range :: range:“Range [1,x]中的范围指定没有适当的边界。”
看起来x
的评估被推迟,这使得无法从Range
创建列表,但为什么在地球上只会记录缩放绘图函数,我该如何处理问题
答案 0 :(得分:1)
PlotLog
不存在。如果您使用LogPlot
,它将正常运行。
无论如何,您可能会遇到该定义的问题。我建议将f
定义为f2[a_Real] := Length[Range[0, a]]
或f3[a_?NumericQ] := Length[Range[0, a]]
,这样只会将数字传递给Range。
例如,根据您的定义,这将失败:
NIntegrate[f[x], {x, 1, 10}]
During evaluation of In[43]:= Range::range: Range specification in Range[0,x] does not have appropriate bounds. >>
18.
但是将a定义为NumericQ或Real,它将起作用。
NIntegrate[f2[x],{x,1,10}]
54.
问候。