java cos函数_java编程:利用级数展开式计算cos(x)

展开全部

spublic class Test{

static public double cos(double x){

int max_n=50; //计算精度,越大越精确

double sum=1;

double sq_x=x*x;

double usum=1;

double lsum=1;

int sign=1;

for(int n=1;n

sign*=-1;

usum*=sq_x;

final int dn=2*n, dn_1=2*(n-1);

for(int i=dn;i>dn_1;i--){

lsum*=i;

}

sum+=sign*usum/lsum;

}

return sum;

}

public static void main(String[] args){

System.out.println("角度\t\t自制cos函数输出\t\t系统cos函数输出");

for(int a=0;a<=360;a+=10)

System.out.println(a+"\t\t"+cos(Math.toRadians(a))+"\t\t"+Math.cos(Math.toRadians(a)));

}

}

角度 自制cos函数输出 系统cos函数输出

0 1.0 1.0

10 0.9848077530122081 0.984807753012208

20 0.9396926207859085 0.9396926207859084

30 0.8660254037844386 0.8660254037844387

40 0.766044443118978 0.766044443118978

50 0.6427876096865393 0.6427876096865394

60 0.5000000000000001 0.5000000000000001

70 0.3420201433256688 0.3420201433256688

80 0.17364817766693047 0.17364817766693041

90 4.264460367971268E-17 6.123233995736766E-17

100 -0.17364817766693033 -0.1736481776669303

110 -0.3420201433256687 -0.3420201433256687

120 -0.4999999999999999 -0.4999999999999998

130 -0.6427876096865393 -0.6427876096865394

140 -0.766044443118978 -0.7660444431189779

150 -0.8660254037844387 -0.8660254037844387

160 -0.9396926207859084 -0.9396926207859083

170 -0.9848077530122079 -0.984807753012208

180 -1.0000000000000002 -1.0

190 -0.9848077530122081 -0.984807753012208

200 -0.9396926207859081 -0.9396926207859084

210 -0.8660254037844386 -0.8660254037844386

220 -0.7660444431189778 -0.7660444431189781

230 -0.6427876096865386 -0.6427876096865395

240 -0.5000000000000017 -0.5000000000000004

250 -0.3420201433256711 -0.3420201433256694

260 -0.17364817766693233 -0.17364817766693033

270 -1.7589294315635386E-15 -1.8369701987210297E-16

280 0.17364817766692894 0.17364817766692997

290 0.34202014332566927 0.342020143325669

300 0.499999999999999 0.5000000000000001

310 0.6427876096865434 0.6427876096865393

320 0.7660444431189771 0.7660444431189778

330 0.8660254037844417 0.8660254037844384

340 0.939692620785908 0.9396926207859081

350 0.9848077530122056 0.984807753012208

360 0.9999999999999953 1.0

用级数e68a8462616964757a686964616f31333332613663展开式,纯为了展示概念,效率一般不是求cos的最佳方法。

加大max_n的值可以扩大精度。精度50下,求得的值基本和系统函数一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值