JAVA程序设计题目:利用级数展开式计算cos(x) 速度,回答满意有追分

2025-05-14 02:22:12
推荐回答(1个)
回答1:

//cos(x)=1-x2/2!+x4/4!-x6/6!+.....
import java.util.*;
public class Cos
{
public static void main(String[] args)
{
Cos co=new Cos();
Scanner sca=new Scanner(System.in);//调用scanner,获得键盘输入
System.out.print("请输入你要求的Cos(x)中x的值,并按回车。x=");
double x=sca.nextDouble();
System.out.println("cos(x)="+co.cosNum(x));
System.out.println("Math方法的cos(x)="+Math.cos(x));

}

//编写方法用于计算分母的值
private double fenmu(int n)//n表示第几项数
{
double fenmu=1;
for(int i=1;i<=(n-1)*2;i++)//第n项的分母等于(n-1)*2的阶乘
{
fenmu*=i;
}
return fenmu;
}

//编写方法计算分子
private double fenzi(int n,double x)
{
double fenzi=1;
for(int i=1;i<=(n-1)*2;i++)//第n项的分母正好等于x的(n-1)*2次方
{
fenzi*=x;
}
return fenzi;
}

//求和
public double cosNum(double x)
{
double cos=1;
for(int i=2;i<=100;i++)//有很多项相加的,这里直接定义了100项,足够了,越往后越小,可以忽略了
{
if(i%2==0)//偶数项的符号为负
{
cos-=fenzi(i,x)/fenmu(i);
}
else
{
cos+=fenzi(i,x)/fenmu(i);
}
}
return cos;
}
}