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;
}
}
運行結果: