使用对数刻度将二次图转换为线性图

convert quadratic graph to linear using logarithmic scale

我必须画一个二次图(类似于 y=a*x^2)。我想知道是否可以找到 x 或 y 轴的对数刻度来将此图转换为线性形式?

例如,假设我们有这样一个情节:


通过将 x 或 y 轴更改为对数刻度,我希望最终的情节是这样的。我想知道这在理论上是否可行,答案是肯定的,我怎样才能找到对数刻度的基值。

不确定这里的其他答案是什么 - 你是对的,如果你绘制一个像 y = ax^2 这样的图形,在两个轴上都采用对数缩放,你会看到一条直线。例如,我只是 运行

x = 0:0.1:5;
y = x.^2;
plot(x, y)
set(gca, 'xscale', 'log')
set(gca, 'yscale', 'log')

在 Matlab 中,结果是一条直线。 或者,您可以取值的对数并绘制它们,

plot(log(x), log(y))

带有线性轴刻度。在这种情况下,直线的梯度将是方程的幂(对于这样的二次方程,2),y 轴截距将是常数 log(a)。这是因为

y = ax^b
log(y) = log(ax^b)
log(y) = log(a) + log(x^b)
log(y) = log(a) + b*log(x).

对数的底数并不重要,只要您知道它是多少即可。对于这类问题,在 Matlab 中通常使用自然对数 loglog10log2 也有效。

请注意,这些方法仅在 xy 均为正值时有效。