help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Optimisation based on index of data


From: Nicholas Jankowski
Subject: Re: Optimisation based on index of data
Date: Wed, 20 Jan 2016 10:36:03 -0500

On Wed, Jan 20, 2016 at 6:18 AM, inor0627 <address@hidden> wrote:
Hello list,

I have some 1D measuring data and try to find the subset with best
linearity. The following approach

lin_error = @(start_idx) range( detrend(
data(round(start_idx):round(start_idx)+interesting_length) ) );
start_opt = round(fminsearch(lin_error,guess));

works fine for some measurements, but in most cases fminsearch violates the
bounds of 'data' ('index out of bound') as the optimal subset is near the
end of 'data'.

So there are 2 questions:
Is fminsearch the right choice for this integer-type optimisation? I have a
bad feeling due to the resulting discontinuities in 'lin_error' when
rounding 'start_idx'. A google search for 'octave integer optimization'
didn't answer this question to me.
If fminsearch is ok for this task, how can I handle the bounds of 'data'?

Many thanks in advance,
Ingo




Well, fminsearch is an unconstrained optimization method, when you have a constrained data set (max(idx) <= numel(data) ).  You could try another routine that allows you to set bounds for the solver. I'm only familiar with single variable routines, however, I believe in Matlab fmincon can do multivariable optimization with bounds specified (so you could specify [1,numel(data)] as your bounds. 

however, a quick look seems to show that this function has not yet been implemented in the Octave optim package, unless someone has a working copy that just hasn't hit the released version of the package yet.

Nick J

reply via email to

[Prev in Thread] Current Thread [Next in Thread]