M
MrShorty
Here's an interesting problem, I wonder if anyone has any thoughts o
this. Recognize that my real problem is very complex (severa
intermediate calculation including some iterative steps), but th
problem I'm having seems similar (conceptually anyway) to this simpl
problem.
Given a data set:
x,y
10,3.9
8,3.2
7,2.8
6,2.2
5,1.4
4.5,0.8
4,0.01
3.8,-0.4
3.6,-1
3.5,-1.4
3.4,-1.8
3.3,-2.4
3.2,-3.2
3.1,-4.6
3.05,-6
One could look at the data and say, "that looks like the curve y=ln(x)
but with a different asymptote other than the y-axis and possibly
scaling factor." So we choose a function of the form y=b*ln(x-a) t
correlate the data. So we add a third column =r1c5*ln(rc1-r1c6) wher
r1c5 and r1c6 will hold our parameters b and a, then pu
=sumxmy2(r2c3:r16c3,r2c2:r16c2) at the bottom of column 3. Then set u
solver to minimize r18c3 by changing r1c5:r1c6.
Now we pull initial guess for b and a out of a hat, and Solver run
into an error. Because on the 2nd or 3rd iteration, solver is going t
try a value for a >3.05 and the LN function will return an error. W
try to improve the initial guesses, but, in this case, we would need t
be pretty close. I could get b=1.9, a=2.9 to converge, but b=1.8,a=2.
wouldn't.
We iterate on each parameter individually, back and forth between b an
a, but this becomes tedious, especially if it takes several tries t
manually locate an initial a that will not generate an error.
For this simple model, one can add a constraint that a<=3.049999 an
thus avoid the error. However, in my real problem, the value for
that generates an error isn't obvious. Also, it appears that th
optimum a value is essentially largest value that won't generate a
error. So I end up manually bisecting the interval between the lowes
value that generates an error and the highest value that doesn't unti
I obtain the desired accuracy in a. Not the most efficient way to d
it, especially when I want to optimize b at the same time.
I don't know how much you'll be able to help, but it seems like a
interesting problem. I don't readily see an option that will tel
Solver to use those error values as part of the optimization algorithm
even though the error values do contain useable information in thi
case. All this exercise might do is show the importance of choosin
appropriate initial guesses for Solver, or that Solver isn't suitabl
for solving all of the world's problems.
Any thoughts?
this. Recognize that my real problem is very complex (severa
intermediate calculation including some iterative steps), but th
problem I'm having seems similar (conceptually anyway) to this simpl
problem.
Given a data set:
x,y
10,3.9
8,3.2
7,2.8
6,2.2
5,1.4
4.5,0.8
4,0.01
3.8,-0.4
3.6,-1
3.5,-1.4
3.4,-1.8
3.3,-2.4
3.2,-3.2
3.1,-4.6
3.05,-6
One could look at the data and say, "that looks like the curve y=ln(x)
but with a different asymptote other than the y-axis and possibly
scaling factor." So we choose a function of the form y=b*ln(x-a) t
correlate the data. So we add a third column =r1c5*ln(rc1-r1c6) wher
r1c5 and r1c6 will hold our parameters b and a, then pu
=sumxmy2(r2c3:r16c3,r2c2:r16c2) at the bottom of column 3. Then set u
solver to minimize r18c3 by changing r1c5:r1c6.
Now we pull initial guess for b and a out of a hat, and Solver run
into an error. Because on the 2nd or 3rd iteration, solver is going t
try a value for a >3.05 and the LN function will return an error. W
try to improve the initial guesses, but, in this case, we would need t
be pretty close. I could get b=1.9, a=2.9 to converge, but b=1.8,a=2.
wouldn't.
We iterate on each parameter individually, back and forth between b an
a, but this becomes tedious, especially if it takes several tries t
manually locate an initial a that will not generate an error.
For this simple model, one can add a constraint that a<=3.049999 an
thus avoid the error. However, in my real problem, the value for
that generates an error isn't obvious. Also, it appears that th
optimum a value is essentially largest value that won't generate a
error. So I end up manually bisecting the interval between the lowes
value that generates an error and the highest value that doesn't unti
I obtain the desired accuracy in a. Not the most efficient way to d
it, especially when I want to optimize b at the same time.
I don't know how much you'll be able to help, but it seems like a
interesting problem. I don't readily see an option that will tel
Solver to use those error values as part of the optimization algorithm
even though the error values do contain useable information in thi
case. All this exercise might do is show the importance of choosin
appropriate initial guesses for Solver, or that Solver isn't suitabl
for solving all of the world's problems.
Any thoughts?