From: W. eWatson on
I see MATLAB solves non-linear eqs with Subject. There's some sort of
interface for Jacobians. How are they provided?
From: Brian Borchers on
On Jun 4, 3:26 pm, "W. eWatson" <wolftra...(a)invalid.com> wrote:
> I see MATLAB solves non-linear eqs with Subject. There's some sort of
> interface for Jacobians. How are they provided?

If you're talking about the fsolve() command in the optimization
toolbox, it will either compute Jacobians by finite difference
approximation (the default option), or you can optionally supply a
user written function which computes the Jacobian for your particular
problem. See "help fsolve" for more information about how to do
this.

If you're talking about some other function for solving nonlinear
systems of equations then it would certainly help to know what
function you were talking about.

Note that matlab has a "jacobian" function in the symbolic computation
toolbox that will compute a Jacobian symbolically. There is also a
"numjac" function which will compute a Jacobian by finite difference
approximation.
From: W. eWatson on
On 6/4/2010 2:52 PM, Brian Borchers wrote:
> On Jun 4, 3:26 pm, "W. eWatson"<wolftra...(a)invalid.com> wrote:
>> I see MATLAB solves non-linear eqs with Subject. There's some sort of
>> interface for Jacobians. How are they provided?
>
> If you're talking about the fsolve() command in the optimization
> toolbox, it will either compute Jacobians by finite difference
> approximation (the default option), or you can optionally supply a
> user written function which computes the Jacobian for your particular
> problem. See "help fsolve" for more information about how to do
> this.
>
> If you're talking about some other function for solving nonlinear
> systems of equations then it would certainly help to know what
> function you were talking about.
>
> Note that matlab has a "jacobian" function in the symbolic computation
> toolbox that will compute a Jacobian symbolically. There is also a
> "numjac" function which will compute a Jacobian by finite difference
> approximation.
fsolve. I use MATLAB very infrequently. My interest is in a single
equation, so far.

However, I've once again become interested in methods to solve
non-linear (NL) equation. In reviewing some of the methods in an old
book I have, I realized solving a system of NL equations is possible. As
it turns out, my single equation was part of three NL equations that
needs to be solved.

I've been looking at an article from 1987, and apparently the author
wasn't aware this could be done (or it's my misunderstanding), and
solved each in turn. He stepped to the next equation with parameter
values derived from the preceding step, and supplementing them with a
few more. This was all done FORTRAN.

As I'm now getting a handle on these matters, with an interest in using
his methods, and it looks like I can do it without writing code. If
similar code is written in Python, which I think is available, then it
would be very helpful. My interest here was to discover if MATLAB could
help before I began working in Python. That is, use it to prepare for
implementing the application solution with MATLAB first. Even if I can't
use MATLAB in the the full application, I can at least try out ideas.

None of the people who have grabbed onto the application over the years
seem to have realized other possibilities for optimization, and
certainly none of them been aware of MATLAB or symbolic computation. In
one of the papers that followed the 1987 paper, it derived all the
necessary Jacobian elements to solve for 7 parameters, something like 20
partial derivatives. That was back in 1992 or 1995. People continue to
use FORTRAN (maybe 77 was the last implementation) to work with the
basic ideas from 1987 to 1995 or so. This is all getting interesting now.