我有一个线性刻度,范围从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的基本概念,但这就是它.
psuedo-value 5.0将变为10(或10 1),而psuedo-value为10将为10 10.那么如何计算伪值和得到的对数值,比如7.5?
如果需要添加信息,请告诉我.
感谢您提供的任何帮助; 这打败了我.
Die*_*Epp 46
正如数学和编程中的惯例一样,"对数"函数被认为是基础."exp"函数是指数函数.请记住,这些函数是反转的,我们将函数视为:
exp:ℝ→ℝ +,和
日志:ℝ + →ℝ.
你只是在这里解决一个简单的等式:
y = a exp bx
求解a和b通过点x = 0.1,y = 0.1和x = 10,y = 10.
观察到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 log10≈0.46516870565536284
一个= Y 1/EXP BX 1 ≈0.09545484566618341
在你的职业生涯中,你会发现那些使用日志功能使用基本e,基数10甚至基数2的约定的人. 这并不意味着任何人都是对或错. 它只是一个符号公约,每个人都可以自由使用他们喜欢的符号约定.
数学和计算机编程中的惯例是使用基数e对数,并且在这种情况下使用基数e简化了符号,这就是我选择它的原因.它与计算器使用的惯例不同,例如Google和您的TI-84提供的计算器,但同样,计算器适用于工程师,工程师使用的不同于数学家和程序员.
以下编程语言包括标准库中的base-e日志功能.
C log()
(和C++,包含)
Java的 Math.log()
JavaScript的 Math.log()
Python math.log()
(包括Numpy)
Fortran语言 log()
C#, Math.Log()
[R
千里马(严格来说是CAS,而不是语言)
计划的 log
Lisp的 log
事实上,我想不出一个的单一的编程语言,其中log()
一个不为基础,自然对数.我确信这样的编程语言存在.
我意识到这个答案已经晚了六年,但它可能会帮助其他人。
给定值范围从 x0 到 x1 的线性尺度和值范围从 y0 到 y1 的对数尺度,x 和 y 之间(在任一方向)之间的映射由等式 1 中所示的关系给出:
x - x0 log(y) - log(y0)
------- = ----------------- (1)
x1 - x0 log(y1) - log(y0)
Run Code Online (Sandbox Code Playgroud)
在哪里,
x1 > x0
x0 <= x <= x1
y1 > y0
y0 <= y <= y1
y1/y0 != 1 ; i.e., log(y1) - log(y0) != 0
y0, y1, y != 0
Run Code Online (Sandbox Code Playgroud)
线性 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
Run Code Online (Sandbox Code Playgroud)
鉴于你的问题中的值,线性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
Run Code Online (Sandbox Code Playgroud)
:: 编辑(2020 年 10 月 11 日)::
就其价值而言,数字基数“n”可以是任何实数值的正数。上面的示例使用以 10 为底的对数,但对数底可以是 2、13、e、pi 等。这是我创建的一个电子表格,用于执行任何实值正数基数的计算。“解决方案”单元格为黄色,边框较粗。在这些图中,我随机选取了以 n=13 为底的对数,即 z = log 13 (y)。