簡單迭代法求方程根
阿新 • • 發佈:2021-11-04
迭代類
點選檢視程式碼
import java.util.Scanner; public class DieDai { public static void main(String[] args) { double epsilon, x0, x1; long i, maxi; System.out.println("請輸入X的精度要求"); Scanner scan = new Scanner(System.in); epsilon = scan.nextDouble(); System.out.println("請輸入迭代初值"); x1 = scan.nextDouble(); System.out.println("請輸入最大迭代次數"); maxi = scan.nextInt(); FangCheng pc = new FangCheng(); for (i = 0; i < maxi; i++) { x0 = x1; x1 = pc.picard(x0); if (Math.abs(x1 - x0) <= epsilon) { break; } if (i < maxi) { System.out.println("方程f(x) = 0的根:" + x1); } else System.out.println("迭代次數以超過上限"); } } }
點選檢視程式碼
public class FangCheng {
double picard(double x) {
return (Math.pow(x, 3) + 3 * Math.pow(x, 2) - 3 * x - 3);
}
}
請輸入X的精度要求
0.0001
請輸入迭代初值
1
請輸入最大迭代次數
10
方程f(x) = 0的根:-2.0
方程f(x) = 0的根:7.0
方程f(x) = 0的根:466.0
方程f(x) = 0的根:1.01844763E8
方程f(x) = 0的根:1.0563701442810917E24
方程f(x) = 0的根:1.1788223337273379E72
方程f(x) = 0的根:1.638117560430921E216
方程f(x) = 0的根:Infinity
方程f(x) = 0的根:NaN
方程f(x) = 0的根:NaN
程序已結束,退出程式碼為 0