Я делаю программу, чтобы применить метод Ньютона-Рафсона в Java с уравнением:
ф (х) = 3x - е^х + sin (х)
И
г (х) = Р '(х) = 3- е^х + соз (х)Ньютона-Рафсона метод в Java
проблема заключается в том, когда я пытался решить уравнение в работе, чтобы достигнуть ошибки меньше, чем (0,5 %)
Я получил:
Xn | Ошибка
Хо = 2 | ------------------------
X1 = 1,900158400 | 5,254%
X2 = 1,89012709 | 0,5307%
Но когда я сделал программу в Java не доходит до последней строки, которая является требуемая погрешность
(Ex: X2 = 1.89012709)
Он отображает только первую строку, которая является первым шагом, который является
(X1 = 1,900158400)
Мой Java-код:
package newton.raphson.method;
public class NewtonRaphsonMethod {
// let f be a function defined as f(x) = 3x - e^x + sin(x)
public static double f (double x){
return (3*x-(Math.pow(Math.E, x))+Math.sin(x));
}
// let g be a function defined as g(x) = f'(x) = 3- e^x + cos (x)
public static double g (double x){
return (3-(Math.pow(Math.E, x))+Math.cos(x));
}
public static double NewtonRaphson(){
int iterations_number=0;
boolean cont = true;
double x0 , x1, Error=5000;
x0 =2;
x1=0;
while (cont){
x1 = x0 - (f(x0)/g(x0));
Error = (Math.abs(x1-x0)/x1)*100;
iterations_number++;
if (f(x1)<=0.05){
cont = false;
System.out.println("The Program did it in "+iterations_number+" Step(s)");
System.out.println("The root is: "+ x1);
System.out.println("The Error is: "+(Math.abs(x1-x0)/x1)*100+"%");
}
}
return x1;
}
public static void main(String[] args) {
NewtonRaphson();
}
}
И выход:
The Program did it in 1 Step(s)
The root is: 1.9001584993293807
The Error is: 5.254377500921955%
Я не вижу места в коде, где вы вычислить, или дисплей x2 – azurefrog
@azurefrog Я уже сделал то время цикла, поэтому он должен вычислить автоматически –
Вы сказали, что в вашем вопросе вы ищете " (Пример: X2 = 1.89012709) ". В вашем коде под названием x2 нет ничего. Вы не рассчитываете и не пытаетесь отобразить что-либо после «Ошибка: