Red de conocimiento informático - Consumibles informáticos - Utilice el método 0.618 para encontrar el valor mínimo de la función f (x)=x(x-1)2(x-2)3 en el intervalo [0, 1] programación vc,,,Xie~~~

Utilice el método 0.618 para encontrar el valor mínimo de la función f (x)=x(x-1)2(x-2)3 en el intervalo [0, 1] programación vc,,,Xie~~~

Lo cambié por ti, por favor échale un vistazo.

#includelt;iostreamgt;

usando?namespace?std;

const?float?EPS=0.000001 //Definir constantes

float?f(float);

//Definir función f

float?f(float?x)

{ return?x*(x- 1)*(x-1)*(x-2)*(x-2)*(x-2); //El signo menos aquí es un carácter de ancho completo y debe cambiarse a la mitad del ancho; Se debe utilizar "^" Para tipos de números enteros, no se puede utilizar para tipos de punto flotante.

}

void?main()

{ float?a, b, x1, x2, f1, f2, alf, eps // Compilador; Se considera que ε es un nombre de variable ilegal y se le cambia temporalmente el nombre a alf. Lo siguiente es lo mismo que coutlt;lt;"a=0";cingt;gt;a; ;gt;b; coutlt;lt; "eps=0.001";cingt;gt;eps; x1=a 0.382*(b-a); x2=a 0.618*(b-a); x2); while?(b-agt ;eps)//Sección de bucle de precisión de búsqueda {

alf=f1-f2;//Falta una variable en el lado izquierdo del signo igual, ¿verdad? ε? Ha sido reemplazado por alf por el momento.

si?(alfgt;EPS)?{a=x1;x1=x2;f1=f2;x2=a 0.618*(b-a);f2=f(x2);}

else?if?(alfgt;=-1*EPS?amp;amp;?alflt;=EPS)?{a=x1;b=x2;x1=a 0.382*(b-a);x2=a 0.618*( b-a); f1=f(x1); f2=f(x2);}//Los valores de la función son iguales y los intervalos de ambos lados se descartan

else?{b=x2; x2=x1; f2=f1 ");

}