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 ");
}