梅欽類公式

梅钦类公式(英语:Machin-like formula)是数学中计算圆周率的一个常用技巧,它是梅欽公式的推广,梅钦公式的形式为
:\frac{\pi}{4} = 4 \arctan \frac{1}{5} - \arctan \frac{1}{239}
梅钦依据此公式,把圆周率计算到一百多位小数。

梅钦类公式的形式为:
{{NumBlk|:|c_0 \frac{\pi}{4} = \sum_{n=1}^N c_n \arctan \frac{a_n}{b_n}|}}

其中, a_n 和 b_n 为正 整数,且 a_n , c_n 为非零整数,且c_0 为正整数。

梅钦类公式的应用可结合反正切函数的泰勒级数展开:

{{NumBlk|:|\arctan x = \sum^{\infin}_{n=0} \frac{(-1)^n}{2n+1} x^{2n+1} = x - \frac{x^3}{3} + \frac{x^5}{5} - \frac{x^7}{7} + ...|}}
导出
根据角的和差公式,

:\sin(\alpha + \beta) = \sin \alpha \cos \beta + \cos \alpha \sin \beta
:\cos(\alpha + \beta) = \cos \alpha \cos \beta - \sin \alpha \sin \beta


-\frac{\pi}{2}

{{NumBlk|:|\arctan \frac{a_1}{b_1} + \arctan \frac{a_2}{b_2} = \arctan\frac{a_1 b_2 + a_2 b_1}{b_1 b_2 - a_1 a_2},|}}

反复应用这一方程,可得到所有的梅欽類公式,比如最初的梅欽公式:

:2 \arctan \frac{1}{5}

::= \arctan \frac{1}{5} + \arctan \frac{1}{5}

::= \arctan \frac {1\times5 + 1\times5}{5\times5 - 1\times1}

::= \arctan \frac {10}{24}

::= \arctan \frac {5}{12}

:4 \arctan \frac{1}{5}

::= 2 \arctan \frac{1}{5} + 2 \arctan \frac{1}{5}

::= \arctan \frac{5}{12} + \arctan \frac{5}{12}

::= \arctan \frac{5\times12 + 5\times12}{12\times12 - 5\times5}

::= \arctan \frac{120}{119}

:4 \arctan \frac{1}{5} - \frac{\pi}{4}

::= 4 \arctan \frac{1}{5} - \arctan \frac{1}{1}

::= 4 \arctan \frac{1}{5} + \arctan \frac{-1}{1}

::= \arctan \frac{120}{119} + \arctan \frac{-1}{1}

::= \arctan \frac{120\times1 + (-1)\times119}{119\times1 - 120\times(-1)}

::= \arctan \frac{1}{239}

:\frac{\pi}{4} = 4 \arctan \frac{1}{5} - \arctan \frac{1}{239}

用梅钦公式编程计算圆周率(C++)
#include
#include
using namespace std;
int main(void)
{ //本程序每四位数输出,如果请求计算的位数不是4的整数倍,最后输出可能会少1~3位数
long a[2]={956,80},b[2]={57121,25},i=0,j,k,p,q,r,s=2,t,u,v,N,M=10000;
printf("%9cMachin%6cpi=16arctan(1/5)-4arctan(1/239)\nPlease input a number.\n",32,32);
cin>>N,N=N/4+3;
long pi=new long[N],e=new long[N];
while(i

參考文獻
*

评论 (0)

  • 还没有评论,来抢沙发吧。