initial_guess_1 및 initial_guess_2의 업데이트 된 값을 GoldenSectionSearch 메서드에 다시 전달하는 데 문제가 있습니다. "if"와 관련된 종료 조건이 충족 될 때까지 메서드 호출 자체를 시도했습니다. 자신이 해결에서 나의 시도는 내가 여기 어떻게 영향을 받았다 :업데이트 된 매개 변수 값을 원래의 메서드로 다시 전달하려면 어떻게합니까?
http://www.java-tutorial.com/java-tutorial/java-classes-methods/java-call-reference/
내가 다시 업데이트 된 값을 전달하려고 내가 뭘 잘못 알아낼 여전히 수 없어요 방법. 내가 뭘 잘못하고 어떻게 고칠 수 있니? 나는 프로그래밍 초보자이며 가능한 가장 작고 가장 쉽게 이해할 수있는 용어로 분류하고 싶습니다.
public static double GoldenSectionSearch(double x_1, double x_2, double initial_guess_1,double initial_guess_2 ,double gradient_x, double gradient_y, double a,double a_0,double a_1,double a_2,double b_0,double b_1,double p,double N){
//Stuff
if(Math.abs((100*(x_2 - x_1*x_1)*(x_2 - x_1*x_1) + (1- x_1)*(1- x_1)) - (100*(initial_guess_2 - initial_guess_1*initial_guess_1)*(initial_guess_2 - initial_guess_1*initial_guess_1) + (1- initial_guess_1)*(1- initial_guess_1)))/Math.abs(1+(100*(initial_guess_2 - initial_guess_1*initial_guess_1)*(initial_guess_2 - initial_guess_1*initial_guess_1) + (1- initial_guess_1)*(1- initial_guess_1))) >=0.50*Math.pow(10,-6)){
initial_guess_1=x_1;
initial_guess_2=x_2;
//Double Boxed_a = new Double(a);
Double Boxed_initial_guess_1 = new Double(initial_guess_1);
Double Boxed_initial_guess_2 = new Double(initial_guess_2);
initial_guess_1.GoldenSectionSearch(initial_guess_1);
initial_guess_2.GoldenSectionSearch(initial_guess_2);
gradient_x = (400*initial_guess_1*(initial_guess_1*initial_guess_1 - initial_guess_2) + 2*(initial_guess_1 -1));
gradient_y = (200*(initial_guess_2 - initial_guess_1*initial_guess_1));
GoldenSectionSearch(initial_guess_1,initial_guess_2,x_1, x_2, gradient_x, gradient_y, a, a_0, a_1, a_2, b_0, b_1, p,N);
} else{
double f_x=(100*(x_2 - x_1*x_1)*(x_2 - x_1*x_1) + (1- x_1)*(1- x_1));
System.out.print("alpha = " + a + " " + "x_1 = " + x_1 + " " + "x_2 = " + x_2 + " " + "f_x = " + f_x);
}
// Double Boxed_a = new Double(a);
return x_2;
}