Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
牛顿';s-Raphsons方法Java_Java_Arrays_Math_Newtons Method - Fatal编程技术网

牛顿';s-Raphsons方法Java

牛顿';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数组[],它都会

我想用牛顿-拉斐逊方法将我的数据制成表格,只用于整洁数组中的二次方程。我所遇到的困难是分配数组中的变量,将前面的xn1值分配给后续行中的xn值,并在数组中使用双值

例如(在下面的代码中),我有一些变量,比如(n,xn,fxn,dfxn,xn1)。我想在相应的标题下分配这些变量的值,如下图所示

在[图像]中,第一行中的xn+1值成为第二行中的xn值。我做那件事有困难。我试图在
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[][]){

  • 您从未关闭过stram
    s

    s.close()
    添加到main方法的末尾

  • public static void array(double[][] array){
        //...
    }