Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Re: How to use lsqnonlin with the option "JacobPattern"
Posted:
Oct 21, 2013 8:27 AM


On 10/18/2013 2:55 PM, Fang wrote: > Alan_Weiss <aweiss@mathworks.com> wrote in message > <l3rtu6$638$1@newscl01ah.mathworks.com>... >> On 10/18/2013 12:39 PM, Fang wrote: >> > I have a largesize problem, and the Jacobian matrix is sparse. In >> the > document, there is a "JacobPattern" option, but I cannot find >> any > example about how to use it. Anyone can help? >> > >> > I tried to create a Jacobian matrix using sparse() function, but >> the > problem is sparse() can not be used by "function_handle". I >> guess > "JacobPattern" can solve this problem, but how? >> > >> > Thank you in advance. >> >> You are quite right, this is not documented properly. I will have to >> see to that. >> >> In any case, here's how to do it. For lsqnonlin you have a vector >> function F(x) of a vector x. The JacobPattern matrix J is supposed to >> be a sparse matrix, with J(i,j) = 1 whenever the ith component of F >> can have a nonzero derivative with respect to x(j). >> >> Pass the matrix J as the JacobPattern option: >> options = >> optimset('JacobPattern',J,'Algorithm','trustregionreflective'); >> >> Alan Weiss >> MATLAB mathematical toolbox documentation > > Thank you very much, Alan. So JacobPattern is to pass the locations of > the nonzero derivatives, but how to pass the nonzero elements > (functions_handle) in the Jacobian matrix to lsqnonlin?
If you can calculate the Jacobian, don't use the JacobPattern option. Set the 'Jacobian' option to 'on' and pass the Jacobian in the function definition, as described here: http://www.mathworks.com/help/optim/ug/writingobjectivefunctions.html#brkjtxo
Alan Weiss MATLAB mathematical toolbox documentation



