这个其实不是什么程序难题,你只要将cosine用泰勒函数转换成离散的就可以做了。数学问题而已。
十多年建站经验, 成都网站设计、成都做网站客户的见证与正确选择。创新互联建站提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
简单地说可以,一般除了无限递归等特殊的不行,其他的都可以。
一楼的不懂不要乱说。
C语言可以做的很精确,只要计算机的内存硬盘足够,就能足够精确,当然前提是极限存在。
如果需要很长很长的位数最好用数学函数库,因为一般80x87的精度都是80位,超过此限制需要自己用C语言或者汇编语言提高继续提高精度。但对于非专业计算机人士来说很难。
计算机就是做计算的,大部分可计算问题都没有问题,只是时间和空间的问题。
X趋于无穷大是不可能计算的,举一个简单的例子,假设计算机的内存1TB(目前还没有)。
如果存储了一个整数,那么这个最大值是2的8T次方,但是这个和无穷大相差太远。
考虑函数ackman(6,6),这个函数的值根本无法通过目前的计算机(甚至未来的计算机也不能计算出来),就算计算出来,这个数写出来一个地球也放不下,但是比无穷大小很多吧。
但是你说的问题就不一样,如果极限是收敛的,那么随着x的值增大,就可以取得那个极限的近似值。注意计算机C语言一般只能取得足够接近的值。
否则可以考虑使用公式推理软件,看看能不能解方程获得极限,那才可能是精确值。
比如说某个数列的极限为π,那要写一个相当复杂的程序才能打印出π字样。但是π的值又是什么呢?3.14159……,这个精确的值可能又是地球上不够写了。
如果是用程序近似计算的话,可以这样做
#includestdio.h
#includemath.h
main()
{ long int n,k;
double s1,s2,e=1e-8; //e代表计算精度
n=1;k=1; //k=n×n
s1=(3.0*k+n)/(2*k+3);
do{
s2=s1;
k=k+2*n+1; //(n+1) ^2=n^2+2n+1
n=n+1;
s1=(3.0*k+n)/(2*k+3);
}while(fabs(s1-s2)e) ;
printf("%lf",s1);
}
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款