Hi Oliver,

If you’re looking for the current state at each iteration, you want to check 
res.trace.states.

One way to field out this kind of information is to use the names function:

julia> names(res)
15-element Array{Symbol,1}:
 :method             
 :initial_x          
 :minimum            
 :f_minimum          
 :iterations         
 :iteration_converged
 :x_converged        
 :xtol               
 :f_converged        
 :ftol               
 :gr_converged       
 :grtol              
 :trace              
 :f_calls            
 :g_calls            

julia> names(res.trace)
1-element Array{Symbol,1}:
 :states

Of course, you still need to figure out what the fields mean, but we’ve tried 
to use sensible names for the fields in Optim.

 — John

On Jan 4, 2014, at 11:14 AM, Oliver Lylloff <[email protected]> wrote:

> Hi John,
> Thanks for the fast answer. 
> 
> I still don't think I get the output I want. The res.minimum only return the 
> converged solution (one vector), however I would like to get the minimum for 
> all 1 to N iterations (N vectors). Setting store_trace=true gets me closer, 
> since res.trace prints the information I'm seeking but not as an field 
> (res.trace.x).
> 
> Hope it makes sense.
> Best,
> Oliver
> 
> Den lørdag den 4. januar 2014 16.56.03 UTC+1 skrev John Myles White:
> Hi Oliver, 
> 
> The result of optimize is an object with a field called minimum that has the 
> solution. 
> 
> Try something like the following: 
> 
> julia> res = optimize(x -> (10.0 - x[1])^2, [0.0], method = 
> :gradient_descent) 
> Results of Optimization Algorithm 
>  * Algorithm: Gradient Descent 
>  * Starting Point: 0 
> 
>  * Minimum: 10.000000000118629 
> 
>  * Value of Function at Minimum: 0.000000 
>  * Iterations: 1 
>  * Convergence: true 
>    * |x - x'| < 1.0e-32: false 
>    * |f(x) - f(x')| / |f(x)| < 1.0e-08: false 
>    * |g(x)| < 1.0e-08: true 
>    * Exceeded Maximum Number of Iterations: false 
>  * Objective Function Calls: 4 
>  * Gradient Call: 4 
> 
> julia> res.minimum 
> 1-element Array{Float64,1}: 
>  10.0 
> 
>  — John 
> 
> On Jan 4, 2014, at 10:52 AM, Oliver Lylloff <[email protected]> wrote: 
> 
> > Hello all, 
> > 
> > I'm trying to get acquainted with the Optim package - so far I think 
> > everything looks very interesting. 
> > I would like to get the solution vector of each iteration as an output 
> > (e.g. for plotting) - how do I do that? 
> > 
> > Trying the Rosenbrock example from https://github.com/JuliaOpt/Optim.jl 
> > with extended_trace option 
> > 
> > optimize(f,g!,[0.0,0.0],method=:gradient_descent,extended_trace=true) 
> > 
> > prints the solution vector x at each iteration but I can't seem to access 
> > it and store it. Any ideas? 
> > 
> > 
> > Best, 
> > Oliver 
> > 
> > 
> 

Reply via email to