主要原因是计算器中ln(x)的定义域整个复平面减去原点
x<0时:ln(x)=ln(-1*(-x))=ln(-1)+ln(-x)=i*Pi+ln(-x)
所以:abs(ln(x))=sqrt((Pi)^2+(ln(-x))^2)
x<0时:绘制的图像为sqrt((Pi)^2+(ln(-x))^2)
log(x)=ln(x)/ln(10),所以情况类似。
这个软件绘图时是先计算再绘图,x取负数时:ln(x)取复数,而abs的作用是取它的模。
Mathematica上也有同样的问题。这个问题很难避免,除非开发者限制ln(x)的定义域,不过那样做得不偿失。