前言


       对于一元一次,一元二次方程的求根大家再熟悉不过,而且也比较容易。但对于三次,四次等多次方程的求解就有一定难度了,甚至不一定能求出来,历史上牛顿提出了一个求多次方程解的方法,方法过程简单,计算量大,这也正好适合用计算机来完成。牛顿法的原理在网上应该有,时间原因这里就不说了。


正文

       牛顿法原理了解一下(点我

       java代码如下:

package xdery.download;
 
import java.util.Scanner;
 
public class calculate {
 
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("格式:ax^3+bx^2+cx+d");
System.out.println("请输入系数a");
double a = input.nextInt();
System.out.println("请输入系数b");
double b = input.nextInt();
System.out.println("请输入系数c");
double c = input.nextInt();
System.out.println("请输入系数d");
double d = input.nextInt();
double f = 0.001;
System.out.println("方程式:"+a+"x^3+"+b+"x^2+"+c+"x+"+d);
double x0 = 6;
double x = x0-(a*(Math.pow(x0,3))+b*(Math.pow(x0,2))+c*x0-d)/(3*a*(Math.pow(x0,2))+2*b*x0+c);
double x2 = 0;
while(f<(Math.abs(x))){
x = x-(a*(Math.pow(x,3))+b*(Math.pow(x,2))+c*x+d)/(3*a*(Math.pow(x,2))+2*b*x+c);
x2 = x-(a*(Math.pow(x,3))+b*(Math.pow(x,2))+c*x+d)/(3*a*(Math.pow(x,2))+2*b*x+c);
System.out.println(x);
if(x2==x){
  break ;
}
 
}
 
}
}

      其中的x 和x2是用来阻止while死循坏的,可以注意一下。其实很简单,在这里就不作太多解释了。
xdery.download calculate请自行更换。