在 Octave 中绘制自然对数函数

Plotting natural logarithm function in Octave

我必须在 Octave 中绘制函数 f(x) = ln(20 - e^x),我使用命令:

x = -5:0.1:5; 
y = log(20 - exp(x));
plot(x,y)

但是图表不正确,因为当我在 Wolfram Alpha 中检查时它是不一样的。感谢您的帮助!

你在 Octave 中作图 ln(20-e^x):

而您放入 Wolfram Alpha 的是 e^x + e^y = 20,它看起来像这样:

完全相同。这里唯一的区别是,对于 e^x+e^y=20 Wolfram Alpha 仅绘制实数解(蓝线),而对于 ln(20-e^x) Wolfram Alpha 和 Octave 都绘制了完整的解集,因此包括虚数解(尽管Octave 仅绘制复解的实部。

如果仔细观察,您会发现 x<ln(20)Wolfram Alpha 中显示的虚部是 0,而 x>ln(20) 有一个虚部(顺便说一下 y=ln(20)). Octave 仅绘制实部,因为它在绘制复杂信号时会忽略虚部。只需在您的命令行上检查 whos y,它会告诉您它是一个复杂的变量。

我在使用 MATLAB,但您的控制台输出应该与此类似:

>> x = -5:0.1:5; 
y = log(20 - exp(x));
plot(x,y)
Warning: Imaginary parts of complex X and/or Y arguments ignored 
>> whos y
  Name      Size             Bytes  Class     Attributes

  y         1x101             1616  double    complex 

这告诉您 A) 当您绘制函数时它是一个复杂的信号 B) y 确实是复杂的,因为它应该是 x>ln(20).[=24 的值=]