前言:
目前咱们对“c语言计算cosx的精度”可能比较注重,我们都想要知道一些“c语言计算cosx的精度”的相关资讯。那么小编在网摘上搜集了一些关于“c语言计算cosx的精度””的相关内容,希望同学们能喜欢,大家快快来学习一下吧!我们都知道圆周率π,π的定义是一个圆的周长和这个圆的直径的比值。
π=圆周长:直径
圆周长=直径×π=2R×π=2πR
π是一个无理数,也就是无限不循环小数。我国古代著名数学家祖冲之利用割圆术将π精确计算到小数点后第7位,这种精度领先西方数学500多年。
3.1415926<π<3.1415927
随着科技的进步,我们现在利用计算机已经可以轻松将π计算到小数点后上亿位。
你有没有想过,这个看似毫无规律的圆周率“π”和数字“5”竟然隐藏着奇妙的联系呢?
我们来看一下如下的计算结果:
sin(1/5)°=0.0034……=3.4……×10^(-3)
sin(1/55)°=0.000317……=3.17……×10^(-4)
sin(1/555)°=3.144……×10^(-5)
sin(1/5555)°=3.1419……×10^(-6)
sin(1/55555)°=3.1416……×10^(-7)
sin(1/555555)°=3.141595……×10^(-8)
sin(1/5555555)°=3.1415929……×10^(-9)
sin(1/55555555)°=3.14159268……×10^(-10)
…………
我们可以看到,随着角度分母的“5”越来越多,正弦值的有效数字越来越接近于“π”的有效数字,当分母为8个“5”时,其计算精度已经达到当年祖冲之的计算精度了。
那么为什么会有这么神奇的现象呢?要想解释清楚这个问题,我们首先需要回顾一下一个非常重要的极限。
lim(sinx/x)=1,x→0
这个式子告诉我们,当x趋近于0时,(sinx/x)趋近于1。
换句话说,x越接近于0,(sinx/x)的值就越接近于1,那么sinx也就越接近于x。
另外,还要强调一点。很多初学极限的朋友认为求这个极限很简单,直接用洛必达法则就可以了。
lim(sinx/x)=lim[(sinx)'/(x)']=lim(cosx/1)=cos0/1=1/1=1,x→0
其实这是错误的!
因为(sinx)'=cosx,这个求导的结果正是利用lim(sinx/x)=1,x→0,这个极限的结论推导出来的。
这里再用洛必达法则进行证明就犯了循环论证的逻辑错误。
lim(sinx/x)=1,x→0,这个极限的证明是需要利用到三角函数的定义和夹逼定理进行证明的,这里就不作过多讲解了。
我们再回到一开始的问题,很显然,当角度分母的“5”越多,这个角度(1/555……)°就越接近于0°。
所以sin(1/555……)°的值就越接近于(1/555……)°
我们再来寻找一下规律:
(1/5)°=0.2°=200°×10^(-3)
(1/55)°=0.01818……°=181.8181……°×10^(-4)
(1/555)°=180.180180……°×10^(-5)
(1/5555)°=180.01800180……°×10^(-6)
(1/55555)°=180.0018000180……°×10^(-7)
…………
可以看到,随着分母的“5”越多,(1/555……)°的有效数字就越接近于180°。
另外,正弦的运算结果不是一个角度,而是一个数字。所以我们还需要把角度制转换成弧度制(rad)。我们都知道:
180°=π(rad)
所以sin(1/555……)°的有效数字越来越接近于π的有效数字。
随着分母的“5”的个数趋近于无穷大,sin(1/555……)°的有效数字的极限就是π的有效数字。
标签: #c语言计算cosx的精度