50

我有一个线性刻度,范围从 0.1 到 10,变化增量为 0.1:
  |---------[]----------|
0.1 5.0 10

但是,输出确实需要是:
  |----------[]----------|
0.1 1.0 10(对数刻度)

我试图找出将 5(例如)转换为 1.0 所需的公式。因此,如果刻度盘在 1.0 和 10 之间移动(线性刻度上的实际值为 7.5),那么得到的对数值是多少?考虑了好几个小时,但我已经好几年没有使用过这种类型的数学了,所以我真的很迷茫。我了解 log 10 X = 10 y的基本概念,但仅此而已。

5.0 的伪值将变为 10(或 10 1),而 10 的伪值将变为 10 10。那么如何计算 7.5 的伪值得到的对数值呢?

让我知道是否需要补充信息。

感谢您提供的任何帮助;这打败了我。

4

2 回答 2

60

符号

正如数学和编程中的惯例一样,“log”函数被认为是base-e。“exp”函数是指数函数。请记住,这些函数是逆函数,我们将函数视为:

exp : ℝ → ℝ<sup>+, 和

日志:ℝ<sup>+ → ℝ。

解决方案

你只是在这里解决一个简单的方程:

y = 一个经验 bx

通过点 x=0.1, y=0.1 和 x=10, y=10求解ab 。

观察到比率 y 1 /y 2由下式给出:

y 1 /y 2 = (a exp bx 1 ) / (a exp bx 2 ) = exp b(x 1 -x 2 )

这使您可以解决b

b = log (y 1 /y 2 ) / (x 1 -x 2 )

其余的很容易。

b = log (10 / 0.1) / (10 - 0.1) = 20/99 log 10 ≈ 0.46516870565536284

a = y 1 / exp bx 1 ≈ 0.09545484566618341

更多关于符号

在你的职业生涯中,你会发现有人使用 log 函数以 e 为底、以 10 为底,甚至以 2 为底的约定。 这并不意味着任何人都是对的或错的。 它只是一个符号约定,每个人都可以自由使用他们喜欢的符号约定。

数学和计算机编程中的惯例是使用以 e 为底的对数,在这种情况下使用以 e 为底的符​​号可以简化符号,这就是我选择它的原因。它与计算器使用的约定不同,例如 Google 和您的 TI-84 提供的约定,但话又说回来,计算器适用于工程师,工程师使用与数学家和程序员不同的符号。

以下编程语言在标准库中包含一个 base-e 日志函数。

事实上,我想不出除了以 e 为底的对数以外的任何一种编程语言。log()我确信存在这样的编程语言。

于 2013-10-20T00:59:08.330 回答
10

我意识到这个答案已经晚了六年,但它可能对其他人有所帮助。

给定值范围从 x0 到 x1 的线性标度和值范围从 y0 到 y1 的对数标度,x 和 y(在任一方向)之间的映射由等式 1 所示的关系给出:

 x - x0    log(y) - log(y0)
------- = -----------------      (1)
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

例 2

给定问题中的值,线性 x 轴上的值范围为 0.1 到 10,对数 y 轴上的值范围为 0.1 到 10,对数底数为 10。给定 x=7.5,什么是是吗?

重新排列方程 1 以求解“y”产量,

          x - x0
log(y) = ------- * (log(y1) - log(y0)) + log(y0)
         x1 - x0

        /  x - x0                                \
y = 10^|  ------- * (log(y1) - log(y0)) + log(y0) |
        \ x1 - x0                                /

        / 7.5 - 0.1                                  \
  = 10^|  --------- * (log(10) - log(0.1)) + log(0.1) |
        \  10 - 0.1                                  /

        / 7.5 - 0.1                    \
  = 10^|  --------- * (1 - (-1)) + (-1) |
        \  10 - 0.1                    /

  ≈ 3.13

:: 编辑(2020 年 10 月 11 日) ::

对于它的价值,数字基数“n”可以是任何实值正数。上面的示例使用以 10 为底的对数,但对数底可以是 2、13、e、pi 等。这是我创建的一个电子表格,用于执行任何实值正数底的计算。“解决方案”单元格为黄色并具有粗边框。在这些图中,我随机选择了以 n=13 为底的对数——即 z = log 13 (y)。

电子表格值
图 1. 电子表格值。

电子表格公式
图 2. 电子表格公式。

X 和 Y 值的映射
图 3. X 和 Y 值的映射。

于 2020-07-29T17:11:33.597 回答