Либо функция fminbox, либо функция Optim.autodiff создают вектор типа Array {Dual {Float64}, 1} при запуске кода ниже, так как я получаю ошибку «fbellmanind не имеет метода. ..Array {Dual {Float64}, 1}». Я указал функцию fbellmanind на прием Array {Any, 1}, но не повезло. Есть идеи?Fminbox Constrained Optimization Julia
function fbargsolve(x::Vector)
fbellmanind(probc,EV,V,Ind,x,V0,VUnemp0,Vnp,Vp,q,obj,assets,EmpState,i)
fbellmanfirm(probc,poachedwage,minw,x,jfirm1,jfirm0,Ind,i)
@inbounds for ia in 1:na
Vnp[ia]=V[ia]
Indnp[ia]=Ind[ia]
firmratio[ia]=jfirm1[ia]/jfirmres[ia]
hhratio[ia]=((Vnp[ia]-VUnemp0[ia])/(Vp[ia]-VUnemp0[ia]))
end
Crit_bwr=vnormdiff(firmratio,hhratio,Inf)
return Crit_bwr
end
f=fbargsolve
df = Optim.autodiff(f, Float64, na)
x0=vec(bargwage0)
l=vec(max(reswage,minw))
u=vec(poachedwage*ones(na))
sol=fminbox(df,x0,l,u)
к сведению, что 'массив {T, 1} <: Array {Любой, 1}' где 'T <: Any'. – Gnimuc