So far, I have not seen a case where there are more than 2 columns, but I wonder if that is generally true.
How many columns can the input to the JacobianMultiplyFcn have?
1 view (last 30 days)
Show older comments
I am using the JacobianMultiplyFcn option of lsqnonlin. The documentation says that JacobianMultiplyFcn is to be a handle to a function jmfun with the syntax,
W = jmfun(Jinfo,Y,flag)
where,
Y is a matrix that has the same number of rows as there are dimensions in the problem. flag determines which product to compute:
- If flag == 0 then W = J'*(J*Y).
- If flag > 0 then W = J*Y.
- If flag < 0 then W = J'*Y.
However, the documentation does not specify how many columns Y will have. I initially assumed Y will always be a column vector, but after some dbstops, I am seeing that this is sometimes, but not always, the case. In particular, I am seeing a situation where flag=0 and Y is Nx2.
So my question is, how many columns can I expect Y to have in the given input. I need to know this so that,
(a) I can plan the implementation of jmfun.
(b) I can know how much RAM might be required per iteration.
Since this option is supposed to be for large scale problems, it seems silly if Y couldn't be counted upon to be "substantially skinny".
2 Comments
Accepted Answer
Steve Grikschat
on 3 Feb 2023
@Matt J: lsqnonlin trust-region-reflective will only call with either
1) M and N dimensional column vectors,
2) An Mx2 matrix,
where M is the number of elements in "F" returned by your objective function and N is the number of design parameters.
The matrix in (2) is comprised of s1 and s2 described here and is used to form the 2-dimensional trust-region subproblem.
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!