【发布时间】:2017-09-15 22:07:00
【问题描述】:
我想将我的牛顿拉夫森方法的数据制成表格,仅适用于整齐数组中的二次方程。我遇到的困难是在数组中分配变量,将 xn1 的前一个值分配给后续行中的 xn 值,并在数组中具有双精度值。
例如(在我下面的代码中)我有变量,例如 (n, xn, fxn, dfxn, xn1)。我想在各自的标题下分配这些变量的值,如下图所示。
在[image]中,第一行的xn+1值变成了第二行的xn值。我很难做到这一点。我尝试在for loop 末尾添加xn = xn1,但这似乎不起作用。
最后,每次我尝试将 double 变量值分配给 double array[][] 时,都会出现错误提示 double cannot be converted to double[]。
代码:
import java.util.Scanner;
import java.lang.Math;
import java.util.Formatter;
public class Newton {
static double a, b, c;
static double n = 1;
static double xn;
static double fxn;
static double dfxn;
static double xn1;
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.println("Enter a");
double a = s.nextDouble();
System.out.println("Enter b");
double b = s.nextDouble();
System.out.println("Enter c");
double c = s.nextDouble();
System.out.println("Enter The value you want to start with");
double xn = s.nextDouble();
fxn = a * Math.pow(xn, 2) + b * xn + c;
dfxn = 2 * a * xn + b;
xn1 = xn - (fxn / dfxn);
double array[][] = { n, xn, fxn, dfxn, xn + 1 };
System.out.println();
System.out.println("n\t" + "Xn\t" + "fXn\t" + "dfXn\t" + "Xn+1");
array(array);
}
public static void array(int x[][]) {
for (int row = 0; row < x.length; row++) {
for (int column = 0; column < x[row].length; column++) {
System.out.print(x[row][column] + "\t");
}
System.out.println();
}
}
}
【问题讨论】:
标签: java arrays math newtons-method