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