# HG changeset patch # User Jaroslav Hajek # Date 1232518032 -3600 # Node ID 1cb63ac13934e508fced41fffea517cf2aa04783 # Parent 424ba638d8f1e5bdd45162af002689eaba2f3343 allow fsolve work without qrupdate diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2009-01-20 Jaroslav Hajek + + * optimization/fsolve.m: Only use qrupdate if available. + 2009-01-20 John W. Eaton * general/postpad.m: Doc fix. diff --git a/scripts/optimization/fsolve.m b/scripts/optimization/fsolve.m --- a/scripts/optimization/fsolve.m +++ b/scripts/optimization/fsolve.m @@ -67,6 +67,8 @@ function [x, fvec, info, output, fjac] = fsolve (fcn, x0, options) + persistent have_qrupdate = exist ('qrupdate') == 5; + if (nargin < 3) options = struct (); endif @@ -266,7 +268,11 @@ endif ## Update the QR factorization. - [q, r] = qrupdate (q, r, u, v); + if (have_qrupdate) + [q, r] = qrupdate (q, r, u, v); + else + [q, r] = qr (q*r + u*v'); + endif endwhile endwhile