简单迭代法求方程根

迭代类

点击查看代码
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

上一篇:“21天养成好习惯”第一期-15


下一篇:2021-11-04有效的完全平方数