在MATLAB里使用fmincon进行优化时,使用语句:
options = optimoptions(..,PlotFcn="optimplotfval");
即可输出优化的迭代过程,但MWORKS里不支持。
现在我想输出迭代过程,应该怎么操作。谢谢
using TyGlobalOptimization
F = 1000 # N
L = 1.5 # m
rau = 7800 # kg/m^3
sigmay = 250 # MPa
E = 210000 # MPa
fun = x -> x[1]*x[2]L/10^6rau
lb = [50.0; 1.0]
ub = [150.0; 150.0]
function make_cons_ueq(F, L, sigmay, E)
return x -> begin
c = [6FL10^3/(x[1]x[2]^2)-0.8sigmay; F(L1000)^3/(3E*x[1]*x[2]^3/12) - 2]
ceq = Float64[]
return c, ceq
end
end
options = optimoptions(:fmincon)
nonlcon = make_cons_ueq(F, L, sigmay, E)
x, fval, = fmincon(fun, [50.0; 1.0], [],[],[],[], lb, ub, nonlcon, options)
println("优化结果:x=", x)
println("目标函数值:f(x)=", fval)