Código fuente de Matlab del modelo de bloques
Este problema generalmente se puede resolver utilizando funciones como la función fmincon o el algoritmo genético ga.
Si usa la función fmincon para resolver el problema, puede seguir las siguientes ideas:
1. Use una declaración de tres bucles para crear una función objetivo fmincon_fun(k), cuyos contenidos principales son los siguientes
y 1 = 0;
Para i=1:n
Para j=1:n
Para k=1:m
y1=y1+y(i,j,k)/(n^2*m)
Fin
Fin
End
p>phi =-y 1;
En segundo lugar, utilice dos declaraciones de bucle y tres declaraciones de bucle para crear una función de restricción fmincon_con(k), cuyo contenido principal es el siguiente
Condiciones 2:
For i=1:n
For j=1:n
ceq (i+j)=1-(A(i,j )-A(j, I));
Fin
Fin
Condición 3:
Para i1=1:n
Para j1=1:n
Para k1=1:m
ceq(i+ j+k+i1+j1+k1)=x(i ,j,k)-(a(i,j)-b(i,j)^k)
Fin
Fin
Fin
Condición 4:
Para i=1:n
Para j=1:n
Para k=1:m
c(i+j+k)=x(i,j,k)-y(i,j,k)
Fin
Fin
Fin
Condición 5:
Para i1=1:n
Para j1= 1:n
Para k1=1 :m
c(I+j+k+I 1+j 1+k 1)=-x(I, j, k) -y(i, j, k)
Fin
Fin
Fin
3. Determinar el valor inicial de la variable desconocida. k0=[. . . ]
4. Determine el límite superior de la variable desconocida lb=[. . . ] y límite inferior ub=[. . . ]
En quinto lugar, utilice la función fmincon para encontrar su valor máximo de optimización y cómo utilizarlo.
[k, fval, salida flag]= FM incon(@(k)FM incon _ fun(k), k0, [], [], [], [], [], lb, ub, @(k) fmincon_con(k))
k-variable desconocida, fval-valor máximo, indicador de salida-indicador de solución.