数学 - 如何计算反余弦公式?

3

有没有人能帮我计算Arccos(X)?有什么公式吗? 在一些只有有限数学公式(只有cos,sin,tan等)的环境中(例如SAP WEBI),我正在尝试完成它。


好的,从你之前的评论中我看到你没有atan函数 - 你需要什么精度?如果你不需要完全准确,你可以预先构建一个余弦表格,并查找最近的值来获取反函数。否则,你可能会被迫使用积分或无限级数如此处所述 - Roger Rowland
我需要计算两点(纬度/经度)之间的距离,我找到了这个公式:(ACOS(COS(RADIANS(90-X1)) *COS(RADIANS(90-X2)) +SIN(RADIANS(90-X1)) *SIN(RADIANS(90-X2)) *COS(RADIANS(Y1-Y2))) *6371)*1000,但是我的系统(WEBI)无法计算ACOS。你有什么建议吗?谢谢。Mor - Mor
这个答案与问题相关,提供了一个替代方案,但仍然需要至少使用 atan :-( - Roger Rowland
最好在数学交流网站 Math Stack Exchange 上提出这个问题。 - Roger Rowland
3个回答

2
你可以尝试使用牛顿法:
function acos(a) {
    delta = 1e-5
    // a lousy first approximation
    x = pi*(1-a)/2
    last = x
    x += (cos x-a)/sin x
    while ( abs(x-last) > delta ) {
        last = x
        x += (cos x-a)/sin x
    }
    return x
}

0

-1
在WEBI中没有计算ACOS的方法,因此有两种解决方案:

1) 在C++中创建一个新的自定义函数并将其导入到WEBI中

2) 创建一个宇宙并在其中使用 ACOS。

Mor


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接