E201_06_02_正弦函数
题目要求:按照三角函数泰勒级数展开式计算正弦函数值:
,直到最后一项的绝对值小于106
解题思路:
1. 输入弧度
2. 确定初始化值
3. 求阶梯函数
代码:
public class E201_06_02_正弦函数 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入弧度");
double x =scanner.nextDouble();
double sum=0;
double fenzi = x;
double fenmu = 1;
int sign = 1;
double item = x;//某一项·
int n = 1;
while (Math.abs(item) >= 1e-6){
sum +=item;
sign = -sign;
n += 2;
fenzi = Math.pow(x,n);//x的n次方
fenmu = fact(n);//n的阶梯
item = sign*fenzi/fenmu;//计算当前项分数
}
System.out.printf("sin(%f)=%f",x,sum);
}
/**
*
* @param n
* @return
*/
private static double fact(int n) {
long sum = 1;
for (int i = 2;i<=n;i++){
sum *= i;
}
return sum;
}
}
运行结果: