牛顿拉普森方法的JAVA循环

时间:2014-08-17 13:34:30

标签: java

我知道下面的代码有点粗糙,我只需要在清理之前让它工作。我正在研究newton raphson的方法,只要条件通过就会重复。这是我到目前为止所拥有的

import java.util.Scanner;
import static java.lang.System.out;
import static java.lang.System.in;

public class NewtonRaphson {

public static float intervalfunctions(float b){
      return ((b*b*b)-3*b+1);
}
public static float differentiatedfunctions(float b) {
     return (3*(b*b)-3);
}
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner myScanner = new Scanner(in);
out.println("PROGRAMME TO SOLVE NEWTON'S SCHEME");
    float  E, Z, F, D, G,FF,fa,fb,b,fx,ffx,x1;
    float x[] = new float[10];
    out.println("Enter the accauracy required");
        E = myScanner.nextFloat();
    out.println("Enter the first Interval");
        D = myScanner.nextFloat();
    out.println("Enter the final interval");
        G = myScanner.nextFloat();
        fa = intervalfunctions(D);
        fb = intervalfunctions(G);
    if ((fa * fb)<0) {
        out.println("The Solution exists between the given interval");
        x[0] = (D+G)/2;
        fx = intervalfunctions(x[0]);
        ffx = differentiatedfunctions(x[0]);

    x[1] = x[0] - (fx/ffx);
        out.println("x[1] is ");
        out.print(x[1]);

}

现在我需要一种方法loop x以及x0更改为x1x1x2的下一个值的差异化函数容错10^-2。我知道我肯定需要一个while loop,也许还需要一个for loop,但我需要一种方法来遍历我的x array ..我无法为(x[1++])执行此操作。我还需要一种方法来为x的每个新值循环我的方法。

1 个答案:

答案 0 :(得分:0)

我不能说我正在追踪你想要计算的东西,但是如果我理解你的解释,你需要一个类似于此的循环:

x[0] = (D+G)/2;
fx = intervalfunctions(x[0]);
ffx = differentiatedfunctions(x[0]);
for (int i = 1; i < 10; i++) {
    x[i] = x[i-1] - (fx/ffx);
    fx = intervalfunctions(x[i]);
    ffx = differentiatedfunctions(x[i]);
}