MATLAB’s mlsq: least squares over weights of the sign of the start, the steepest descent direction scaled by the weights so that none crosses zero

Syntax

c, k = mlsq(A, y, c0)

A c = y with c >= 0, starting at c0.

c, k = mlsq(A, y, c0, maxIter=10, tol=1e-6)

Other bounds of the iteration.

Description

The modified least squares of A c = y keeps the weights of one sign and, when the start sums to one, their sum: each step moves along the gradient projected against the weights and multiplied by them, with a step length bounded so that no weight changes sign. It stops when the residual decreases by less than tol. Unlike MATLAB the start is required, A is a matrix (not a function handle), and tol defaults to 1e-3 instead of 1e-5.

Input

A ndarray or sparse matrix, N x M
y ndarray of N values
c0 ndarray of M real start weights, ones(M)/M as MATLAB’s default

Keywords

keyword default description
maxIter 100 the largest number of iterations, MATLAB’s itermax
tol 0.001 the smallest decrease of the residual’s norm that continues

Output

c ndarray of the M weights
k the number of iterations

See also

summationMatrix, SO3FunRBF.interpolate

MATLAB’s mlsq

source

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/mlsq_py.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.