f2 is returning a matrix, not a scalar. (Try running f2(5).) brent needs a 
scalar.

--Tim

On Tuesday, September 30, 2014 09:38:00 AM [email protected] wrote:
> Hi Tim,
> 
> Good that you asked for the backtrace, I did indeed miss a line;
> specifically, the issue arises in Optim\src\brent.jl:117
> 
> You're also right that my question gets increasingly specific and hard to
> answer, so I've put together a minimum working example
> that does what I'm trying to do in my original code and reproduces the
> issue:
> 
> using Distributions
> using Optim
> 
> z1 = 1.7
> z2 = 0.1
> z3 = 1.9
> z4 = 0.1
> z5 = 0.2
> z6 = 40
> stdz = 0.22
> coeffz = rand(7,1)
> expz1 = LogNormal(2, 0.3)
> expand(x, z1, z2, z3, z4, z5, z6) = [x^2, z1^2, z2^2, z3^2, z4^2, z5^2,
> z6^2]
> 
> function f2(x, z1=z1, z2=z2, z3=z3, z4=z4, z5=z5, z6=z6)
>     z1_l = z1 - 3*stdz
>     z1_h = z1 + 3*stdz
> 
>     f(z1) = expand(x, z1, z2, z3, z4, z5, z6)'*coeffz*pdf(expz1, z1)
> 
>     quadgk(f, z1_l, z1_h)[1]
> end
> 
> > f2(5)
> 
> 1x1 Array{Float64,2}:
>  0.0683061
> 
> > optimize(f2, 0, 2)
> 
> `isless` has no method matching isless(::Array{Float64,2},
> ::Array{Float64,2}) while loading In[4], in expression starting on line 1
> 
>  in <= at operators.jl:34
>  in brent at C:\Users\tew207\.julia\v0.3\Optim\src\brent.jl:117
> Let me know if this works for you in producing the same output!

Reply via email to