我想我的制表为牛顿Raphsons方法数据仅供整齐地排列类似二次方程。我遇到的困难是在数组中分配变量,将先前的xn1值分配给后续行中的xn值,并在数组中使用double值。牛顿Raphsons方法的Java
例如(在我的代码如下所示)我有变量,如(N,XN,FXN,dfxn,XN1)。我想分配这些变量的值,如下图所示。
在[图像],第一行中的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();
}
}
}