在MATLAB如何写日志以e为底吗?

348(30天)
Houssein赫克曼于”class=
Houssein赫克曼于 2019年10月1日
评论道: 沃尔特·罗伯森 2023年5月31日
截图(19). png”>
                       </div>
                       <div class= 我附上了我的照片想输入MATLAB。我得到一个错误,当我把包厢(14-y),所以我假设我打字错了和MATLAB不能明白我在寻找什么。任何帮助就太好了,谢谢你
3评论
约翰D 'Errico”class=
约翰D 'Errico 2023年5月28日
编辑:约翰D 'Errico 2023年5月28日
@jinhu ——我很抱歉,但这是一个毫无意义的语句。没有“合法”基数。如果你想2是一个有效的基数,因为数据是存储在二进制形式,你会模糊的正确。但是10只会不适用,因为MATLAB 10只使用一个基础来显示数字。没有什么是存储为小数。无论如何,任何日志计算基本上什么都没有与内部数据存储的方式。
如果你在谈论语法合法性,在语法上有三个法律日志基地:2、10和e,因为我们有功能log2 log10, MATLAB进行登录。如果我不得不打个赌,我将严重打赌log2和log10函数仅仅是编码简单:
日志(x、b) =日志(x) /日志(b)
他们可能特殊情况确定x的值,所以x = = 10时,你想要log10 (10) 1。
log10 (10) = = 1
ans =逻辑
1

登录置评。

接受的答案

约翰D 'Errico”class=
约翰D 'Errico 2019年10月1日
对数函数所做的正是你想要的。
日志(14 - y)
如果你想要一个以10为底的对数,log10使用。还有一个log2函数,给出了基2日志。其他基地通过使用简单的关系
日志(X) /日志(b)
产生一个日志基础b。你可以写一个函数为:
logb = @ (X、b)日志(X) /日志(b);
logb (9, 3)
ans =
2
这在预料之中。
最后,还有reallog函数,它也自然对数,但它会产生一个错误日志是一个复数。
日志(2)
ans =
0.693147180559945 + 3.14159265358979我
reallog (2)
错误使用reallog
Reallog产生了复杂的结果。
但正常情况下,reallog一样的日志。
日志(2)
ans =
0.693147180559945
reallog (2)
ans =
0.693147180559945
12个评论
沃尔特·罗伯森”class=
沃尔特·罗伯森 2023年5月31日
信谊x真实
G =简化(泰勒(log2 (x), x, 1.5,“秩序”31),“步骤”,50)
G =
双((潜艇(G, x, 1) - log2(信谊(1)))/每股收益)
ans = 0.5013
双((潜艇(G, x, 2)——log2(信谊(2)))/每股收益)
ans = -0.2565
如果我们泰勒log2 (x) /范围(1 2)的最大误差范围小于每股收益。
现在对于任何给定二进制双精度数,打破表示成指数和尾数。用尾数0 x3ff代替实际的尾数,相当于比例数量的2的幂,直到范围(1、2)。使用泰勒log2公式;结果将是低于每股收益()应该是什么。的log2结果值将在0和1之间(eps)。现在再加上log2实际的二进制指数和0的整数区别x3ff: log2的结果将是原来的号码。然后您可以log2最初的数量乘以log2 (exp(1))数量的自然对数。
我们利用范围限制和log2()指数的比例因子添加一个整数得到有限数目的步骤(最多31)准确计算自然对数的规格化的浮点数。
不需要“聪明”算法。
这几乎可以肯定不是自然对数是如何计算出来的。可能除了特殊情况如南或正或非正规的数字,MATLAB很可能只会调用MKL或类似的,如 https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2023-1/v-ln.html
有一篇关于ia - 64(“安腾”);看到 https://www.cl.cam.ac.uk/ jrh13 /论文/ itj.pdf ....减少它的论点和log2我列出,但显然有一些额外的优化。

登录置评。

更多的答案(0)

类别

找到更多的在指数和对数帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!