Mejor programación
El programa principal es wliti1.m:
f='2*exp(-x). * sin(x)';
fplot(f,); declaración de dibujo
[xmin, ymin]= fmin NBD(f, 0, 8)
f1='-2*exp(-x). * sin(x)';
[xmax, ymax]=fminbnd (f1, 0, 8)
Resultado de ejecución:
xmin = 3.9270 ymin = -0.0279
xmax = 0.7854 ymax = 0.6448
★(Utilice el material educativo para explicar el proceso y los gráficos de la función)
Ejemplo 2 Para una longitud de lado de 3 metros De una placa de hierro cuadrada, corte cuadrados iguales en las cuatro esquinas para hacer un fregadero cuadrado sin tapa. ¿Cómo cortar para maximizar la capacidad del fregadero?
Supongamos que la longitud del lado del cuadrado de corte es x, entonces el volumen del tanque de agua es: y el modelo de optimización sin restricciones es min y=-, 0
Escribe el m archivo fun0.m de la siguiente manera:
Función f=fun0(x)
f=-(3-2*x). ^2*x;
El programa principal es wliti2.m:
[x, fval]=fminbnd('fun0 ', 0, 1.5);
xmax=x
fmax=-fval
Los resultados del cálculo son: xmax = 0,5000, fmax =2,0000. Es decir, cuando la longitud del lado del cuadrado cortado es de 0,5 metros, el tanque tiene el volumen más grande y el volumen máximo es de 2 metros cúbicos.
★(Utilice el material educativo para explicar el proceso, crear gráficos de funciones y escribir programas de cálculo)
Ejemplo 3
1, escriba el archivo M fun1. m:
Función f = fun1 (x)
f = exp(x(1))*(4*x(1)^2 2*x(2)^2 4*x(1 )*x(2) 2*x(2) 1);
2. Ingrese el archivo m wliti3.m de la siguiente manera:
x0 = [- 1, 1];
x=fminunc('fun1 ', x0);
y=fun1(x)
3. p>
x= 0.5000 -1.0000
y = 1.3029e-10
★(Explica el proceso, usa el material didáctico para dibujar la gráfica de la función y escribe la programa de cálculo)
Ejemplo 4 La solución óptima (mínima) de la función de Rosen Brock f(x1, x2)= 100(x2-x 12)2 (1-x 1)2 es x*=( 1,
Para ganar intuición y comprender, primero dibuje la gráfica tridimensional de la función de Rosenbrock e ingrese el siguiente comando:
[x, y]=meshgrid(- 2:0.1:2,-1:0.1:3);
z=100*(y-x.^2).^2 (1-x).^2;
Cuadrícula (x, y, z)
Dibujar Rosenbrock Para el trazado del contorno de la función, ingrese el comando:
Contorno(x, y, z, 20)
Continuar
plot(-1.2, 2,' o ');
Texto(-1.2, 2, "punto de partida")
plot (1, 1, ' o ')
Texto(1, 1, 'Solución')
f='100*(x(2)-x(1)^2 )^2 (1-x(1))^2';
[x, fval, exitflag, salida]=fminsearch(f, [-1.2 ^ 2])
Resultado de ejecución:
x =1.0000
fval = 1.9151e-010
exitflag = 1
output=
Número de iteraciones: 108
Recuento de funciones: 202
Algoritmo: "Nelder-Mead Simplex Direct Search"
★(explica el proceso, dibuja el gráfica de la función con la ayuda de material didáctico y escriba el programa de cálculo)
(cinco), tarea
El mejor momento para vender vino añejo
A determinada bodega tiene un lote de vino nuevo. Si los vende ahora, puede obtener un ingreso total de R0 = 500.000 yuanes (RMB). Si los acumula y los vende al precio del vino añejo al día siguiente (enésimo año), puede obtener un ingreso total de (10.000 yuanes) al final del enésimo año y la tasa de interés bancaria es r = 0,05. Intente analizar cuántos años después de que estos buenos vinos se atesoren y vendan, el valor presente del ingreso total será el mayor. (Supongamos que los fondos existentes son X millones de yuanes,