牛顿';s-Raphsons方法Java
我想用牛顿-拉斐逊方法将我的数据制成表格,只用于整洁数组中的二次方程。我所遇到的困难是分配数组中的变量,将前面的xn1值分配给后续行中的xn值,并在数组中使用双值 例如(在下面的代码中),我有一些变量,比如(n,xn,fxn,dfxn,xn1)。我想在相应的标题下分配这些变量的值,如下图所示 在[图像]中,第一行中的xn+1值成为第二行中的xn值。我做那件事有困难。我试图在牛顿';s-Raphsons方法Java,java,arrays,math,newtons-method,Java,Arrays,Math,Newtons Method,我想用牛顿-拉斐逊方法将我的数据制成表格,只用于整洁数组中的二次方程。我所遇到的困难是分配数组中的变量,将前面的xn1值分配给后续行中的xn值,并在数组中使用双值 例如(在下面的代码中),我有一些变量,比如(n,xn,fxn,dfxn,xn1)。我想在相应的标题下分配这些变量的值,如下图所示 在[图像]中,第一行中的xn+1值成为第二行中的xn值。我做那件事有困难。我试图在for循环的末尾执行xn=xn1,但这似乎不起作用 最后,每次我尝试将double变量值分配给double数组[],它都会
for循环的末尾执行xn=xn1
,但这似乎不起作用
最后,每次我尝试将double
变量值分配给double数组[]
,它都会给我一个错误,告诉我double不能转换为double[]
代码:
import java.util.Scanner;
导入java.lang.Math;
导入java.util.Formatter;
公共类牛顿{
静态双a、b、c;
静态双n=1;
静态双xn;
静态双fxn;
静态双dfxn;
静态双xn1;
公共静态void main(字符串参数[]){
扫描仪s=新的扫描仪(System.in);
系统输出打印项次(“输入a”);
双a=s.nextDouble();
系统输出打印项次(“输入b”);
双b=s.nextDouble();
System.out.println(“输入c”);
双c=s.nextDouble();
System.out.println(“输入您想要开始的值”);
双xn=s.nextDouble();
fxn=a*Math.pow(xn,2)+b*xn+c;
dfxn=2*a*xn+b;
xn1=xn-(fxn/dfxn);
双数组[][]={n,xn,fxn,dfxn,xn+1};
System.out.println();
System.out.println(“n\t”+“Xn\t”+“fXn\t”+“dfXn\t”+“Xn+1”);
数组(数组);
}
公共静态无效数组(int x[]{
对于(int row=0;row
对于这个:双数组[][]={n,xn,fxn,dfxn,xn+1}代码>
由于它是一个二维数组,因此其初始化方式与其他数组不同:
double[][] array = new double[][]{
{ n, xn, fxn, dfxn, xn+1}
};
现在,由于xn+1
是一个操作,您需要将其括起来,以便将其分配给数组:
double[][] array = new double[][]{
{ n, xn, fxn, dfxn, (xn+1)}
};
另外,当您调用array(array)时
,您正试图将double
数组传递给int
方法。尝试更改方法的构造函数:
public static void array(double[][] array){
//...
}
最后,在调用数组
方法之前,需要关闭扫描仪
,以防止资源泄漏:s.close()代码>我在您的代码中发现的错误是
初始化双精度数组
而是双数组[][]={n,xn,fxn,dfxn,xn+1}代码>
它应该是double array[][]={{{n,xn,fxn,dfxn,xn+1}代码>
您应该更改方法数组的方法签名
而是公共静态无效数组(intx[]]){
使用publicstaticvoid数组(双x[][]){
您从未关闭过strams
将s.close()
添加到main方法的末尾
public static void array(double[][] array){
//...
}