我知道这个回答晚了六年,但它可能会对其他人有所帮助。
给定一个值从x0到x1的线性刻度和一个值从y0到y1的对数刻度,x和y之间(无论是正向或反向)的映射由方程1中显示的关系给出:
x - x0 log(y) - log(y0)
x1 - x0 log(y1) - log(y0)
其中,
x0 < x1
{ x | x0 <= x <= x1 }
y0 < y1
{ y | y0 <= y <= y1 }
y1/y0 != 1 ; i.e., log(y1) - log(y0) != 0
y0, y1, y != 0
例子1
线性x轴上的值范围从10到12,对数y轴上的值范围从300到3000。给定y=1000,求x是多少?
重新排列方程1以解出'x',得到:
log(y) - log(y0)
x = (x1 - x0) * ----------------- + x0
log(y1) - log(y0)
log(1000) - log(300)
= (12 - 10) * -------------------- + 10
log(3000) - log(300)
≈ 11
根据您提供的数据,线性x轴上的数值范围从0.1到10,对数y轴上的数值范围也是从0.1到10,底数为10。如果x=7.5,那么y是多少?
通过重排方程1来解出'y'的结果,得到:
x - x0
log(y) =
x1 - x0
/ x - x0 \
y = 10^|
\ x1 - x0 /
/ 7.5 - 0.1 \
= 10^|
\ 10 - 0.1 /
/ 7.5 - 0.1 \
= 10^|
\ 10 - 0.1 /
≈ 3.13
:: 编辑 (2020年10月11日) ::
值得一提的是,数字基数“n”可以是任何实数正数。上面的示例使用了以10为底的对数,但对数的底数可以是2、13、e、pi等。这里有一个我创建的电子表格,可以计算任何实数正数基数的对数运算。 “解决方案”单元格已经着黄色和有粗边框标志。在这些图中,我随机选择了以n=13为底数的对数运算——即z = log13(y)。
![Spreadsheet values](https://istack.dev59.com/2sbjx.webp)
图1. 电子表格数值。
![Spreadsheet formulas](https://istack.dev59.com/RS4fj.webp)
图2. 电子表格公式。
![Mapping of X and Y values](https://istack.dev59.com/mfuqem.webp)
图3. X和Y值的映射。