使用对数刻度将二次图转换为线性图
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 中通常使用自然对数 log
。 log10
或 log2
也有效。
请注意,这些方法仅在 x
和 y
均为正值时有效。
我必须画一个二次图(类似于 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 中通常使用自然对数 log
。 log10
或 log2
也有效。
请注意,这些方法仅在 x
和 y
均为正值时有效。