问题标签 [natural-logarithm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
math - 当“条款”非常小时计算日志(exp(条款)的总和)
我想计算日志( exp(A1) + exp(A2) )。
下面的公式
当 A1 和 A2 很大并且数值为 exp(A1)=Inf(或 exp(A2)=Inf)时很有用。(这个公式在这个线程中讨论 -> 如何从其组件 log-terms 计算 log(sum of terms))。当 A1 和 A2 的角色被替换时,公式为真。
我对这个公式的关注是当 A1 和 A2 非常小时。例如,当 A1 和 A2 是:
那么 log(exp(A1) + exp(A2) ) 的直接计算是:
使用上面的公式给出:
这是A1的值。将上面的公式与 A1 和 A2 的翻转角色一起给出:
这三个值中哪个最接近 log(exp(A1) + exp(A2)) 的真实值?是否有稳健的方法来计算 log(exp(A1) + exp(A2)) 可以在 A1、A2 较小且 A1、A2 较大时使用。
先感谢您
c++ - C++ 程序计算给定变量 x 的 ln 而不使用任何现成函数
我搜索了计算数字 x 的 ln 的方程,发现这个方程是:
我写了这段代码来实现它:
但不幸的是,我得到的输出与我的计算器上的输出完全不同,尤其是对于大数字,谁能告诉我问题出在哪里?
python - Python中的对数刻度mathplotlib?
我正在尝试拟合对数正态曲线,但不确定如何将 y(和 x 轴)更改为对数刻度?我尝试使用 logspace 而不是 linspace,但出现错误
我试过了:
但这似乎也不起作用。. . 我附上了我的图表来告诉你我的意思。我真的看不到 400 附近发生了什么,所以我想对 y 进行对数缩放(并且对 x 进行对数缩放以进行比较)
matlab - Matlab:求解对数方程
我有以下等式,我想解决a
:
其中x
, b
, c
, 和d
是已知的。我用 Wolfram Alpha 求解方程,结果是:
其中W
是产品对数函数(Lambert W 函数)。在Wolfram Alpha 页面上可能更容易看到它。
我使用 Matlab 的内置lambertW
函数来求解方程。这相当慢,是我脚本中的瓶颈。还有另一种更快的方法吗?它不必精确到小数点后 10 位。
编辑:我不知道这个方程很难解。这是一张说明我的问题的图片。温度 bd 加上 LMTD 在每个时间步长中变化,但是是已知的。热量从红线(CO2)转移到蓝线(水)。我需要找到温度“a”。没想到这么难计算!:P
java - java中是否有查找反对数的功能?
我想知道java中是否有一个函数可以找到反对数,或者我必须自己实现它?如果是这样,我该如何实施?
r - 为什么 R 中的这条 3D 曲线显示 sigma^2 的明显最大值,但 mu 没有?
所以我使用了 rgl 包并创建了我自己的似然函数来输出正态分布样本的对数似然。我这样做真的只是为了学习如何自己编程,这样我就可以更好地理解可能性是如何工作的以及 MLE 是如何工作的。无论如何,我注意到一些特别奇怪的事情,我想知道是否有人知道这里的答案。当我绘制图表时,它以折叠曲线形状出现,但我想我期待更多的是锥形形状。基本上,我很好奇的是,为什么当图在 sigma^2 值处达到峰值时(在这个轴上,峰值两侧都有很好的下降),mu 值大致保持不变?好像一旦 sigma^2 参数达到最佳水平,mu 值之间的似然差异就非常小。例如,当我检查 sigma 的最大点的可能性的方差(保持不变)时,它是 11.5。相比之下,当我检查同一点上 mu 的方差时,方差为 23402。由于我没有足够的声誉,所以我还不能发布图像,我将只发布生成图表的 R 代码.
那么,我的代码错了吗?或者这就是 LL 曲线的样子?如果是这样,为什么 sigma^2 似乎显示出清晰的曲线和高度,而 mu 几乎没有最大差异?提前致谢!
math - 计算对数时的增量值
我正在使用公式来计算参数,该公式涉及对有时可能为零的值取对数。为了处理这种情况,我在文献中阅读了将一些增量值设置为如下的技术:
这里,参数A
是一个实数,范围为[0, 1]
。
我应该分配什么价值delta
?我要分配,delta = 1
以便随时ln(delta + A)
返回吗?0
A
0
此外,使用自然对数或base10或base2对数是否有任何选择规则?
以下是我正在使用的公式:
解释请参考这个链接:Log average brightness
python - 将浮点数转换为python中的日志空间
我正在 Python 中实现 Viterbi 算法(一种动态算法),我注意到对于大型输入文件,概率不断增加并缩小到浮点精度之外。我需要将数字存储在日志空间中。
谁能给出一个简单的示例 Python 代码片段,说明如何将 0.0000003 转换为日志空间?(我不确定它是否需要自然日志或其他日志。我只听说过“日志空间”但并不真正了解它。)
谢谢!
c - 为什么我的一个函数运行得这么慢?
我正在编写几个方法的实现,以在 C 中使用 GMP 查找数字的自然对数。我有两个函数,这两个函数都可以工作,但其中一个比另一个运行得慢很多。问题是,我期望更快的是最慢的。
下面是两个相关的函数,完整的文件int main
可以在这里找到,而需要的ln_2.txt
文件在这里。
现在,至少在理论上,第二个函数应该运行得更快,因为它每个循环的指令更少,并且由于更快的收敛而通常执行更少的循环。这不是我在实践中看到的,因为当我在计算中使用至少 33296 位将 ln(2) 计算到小数点后 10000 位时,两者都给出了正确的结果,但第一种方法在大约 0.150 秒内完成,而第二种方法大约需要1秒。
我不知道是什么导致一个功能比另一个运行慢得多,任何帮助将不胜感激。
编辑:为了清楚起见,我忘了提到在传递给函数之前,这些值被标准化为范围 [0.5, 1)。这对于两个函数都是一样的,我已经确认这在程序中有效,所以从技术上讲,我的问题是当为算法提供 0.5 时。