  Home  |  About Us  |  Link To Us  |  FAQ  |  Contact  # LMFnlsq - Solution of nonlinear least squares 1.0

Date Added: August 23, 2013  |  Visits: 421 Report Broken Link Printer Friendly Version Product Homepage Download (34 downloads)

The function The LMFnlsq.m serves for finding optimal solution of an overdetermined system of nonlinear equations in the least-squares sense. The standard Levenberg- Marquardt algorithm was modified by Fletcher and coded in FORTRAN many years ago (see the Reference). This version of LMFnlsq is its complete MATLAB implementation complemented by setting parameters of iterations as options. This part of the code has been strongly influenced by Duane Hanselman's function mmfsolve.m.Calling of the function is rather simple and is one of the following: LMFnlsq % for help output x = LMFnlsq(Eqns,X0); x = LMFnlsq(Eqns,X0); x = LMFnlsq(Eqns,X0); x = LMFnlsq(Eqns,X0,'Name',Value,...); x = LMFnlsq(Eqns,X0,Options); [x,ssq] = LMFnlsq(Eqns,...); [x,ssq,cnt] = LMFnlsq(Eqns,...); [x,ssq,cnt,nfJ] = LMFnlsq(Eqns,...); [x,ssq,cnt,nfJ,XY] = LMFnlsq(Eqns,...);In all cases, the applied variables have the following meaning:% Eqns is a function name or a handle defining a set of equations,% X0 is a vector of initial estimates of solutions,% x is the least-squares solution,% ssq is sum of squares of equation residuals,% cnt is a number of iterations,% nfJ is a sum of calls of Eqns and function for Jacobian matrix,% xy is a matrix of iteration results for 2D problem [x(1), x(2)].% Options is a list of Name-Value pairs, which may be set by the callsOptions = LMFnlsq; % for default values,Options = LMFnlsq('Name',Value,...); % for users' chosen parameters,Options = LMFnlsq(Options,'Name',Value,...); % for updating Options.If no Options is defined, default values of options are used.Field names 'Name' of the structure Options are:% 'Display' for control of iteration results,% 'MaxIter' for setting maximum number of iterations,% 'ScaleD' for defining diagonal matrix of scales,% 'FunTol' for tolerance of final function values,% 'XTol' for tolerance of final solution increments,% 'Trace' for control of iteration saving,% 'Lambda' for setting of initial value of the parameter lambda.% 'Jacobian' for a handle of function, which evaluates Jacobian matrix.If no handle is declared, internal function for finite difference approximation of the matrix is used.Example 1:The general Rosenbrock's function has the form f(x) = 100(x(2)-x(1)^2)^2 + (1-x(1))^2Optimum solution gives f(x)=0 for x(1)=x(2)=1. Function f(x) can be expressed in the form f(x) = f1(x)^2 + f2(x)^2, where f1(x) = 10(x(2)-x(1)^2), and f2(x) = 1-x(1).Values of the functions f1(x) and f2(x) can be used as residuals. The parameter Eqns has a form of either named function:% function r = rosen(x)%% ROSEN Residuals of the Rosenbrock valey:% r = [ 10*(x(2)-x(1)^2) % first part, f1(x)% 1-x(1) % second part, f2(x)% ];or a handle of the anonymous function:% rosen = @(x) [10*(x(2)-x(1)^2); 1-x(1)];The calls are different:[x,...] = LMFnlsq('rosen',...); % in case of named function, or[x,...] = LMFnlsq(rosen,...); % in case of the function handle.LMFnlsq finds the exact solution of this problem in 17 iterations.Example 2:Regression of experimental data.Let us have experimental data simulated by the decaying function y = c(1) + c(2)*exp(c(3)*x) + w*randn(size(x));for column vector x. An initial guess of unknown parameters is obtained from approximation y(x) for x=0 and x->Inf asc1 = y(end);c2 = y(1)-c(1); andc3=x(2:end-1)log((y(2:end-1)-c1)/c2)The anonymous function is defined for predefined column vector x as res = @(c) c(1)+c(2)*exp(c(3)*x) - y;and the call, say [x,ssq,cnt] = LMFnlsq(res,[c1;c2;c3],'Display',1);Provided w=0 (without errors), x=(0:.1:2)' with c=[1,2,-1], the initial estimates of unknown coefficients arec0 = [1.2707, 1.7293, -1.6226].The call [c,ssq,cnt] = LMFnlsq(res,[c1,c2,c3])gives the exact solution c=[1, 2, -1] in 9 iterations.Notes:* Users having old MATLAB versions earlier than 7, which has no anonymous functions implemented, have to call LMFnlsq with named functions for evaluation of residuals.* The new version also repairs a bug in using user's function for evaluation analytical jacobian matrix.* See LMFnlsqtest for a short explanation and solved examples.Reference:Fletcher, R., (1971): A Modified Marquardt Subroutine for Nonlinear Least Squares. Rpt. AERE-R 6799, Harwell

 Requirements: No special requirements Platforms: Matlab Keyword: 10x2x12,  Anonymous,  Exact,  Experimental,  Finds,  Functions,  Handlelmfnlsq,  Iterationsexample,  Lmfnlsqrosen,  Named,  Regression,  Residuals,  Rosen,  Rosenbrock,  Rosenx,  Valey,  Values Users rating: 0/10

 License: Freeware Size: 870.4 KB  USER REVIEWS
 More Reviews or Write Review  LMFNLSQ - SOLUTION OF NONLINEAR LEAST SQUARES RELATED
 Development Tools  -  LMFsolve.m: Levenberg-Marquardt-Fletcher algorithm for nonlinear least squares problems 1.0 The function LMFsolve.m serves for finding optimal solution of an overdetermined system of nonlinear equations in the least-squares sense. The standard Levenberg- Marquardt algorithm was modified by Fletcher and coded in FORTRAN many years ago.... 10 KB Mathematics  -  SLGallery 1.2 Math software is often bulky, overloaded with useless features and requires reading huge manual before attempting to use it. SLGallery is the unique probability distribution calculation toolbox featuring 11 continuous and 4 discrete functions.... 489 KB Programming  -  Nasal 1.0 Nasal is a language that I wrote for use in a personal project. Ostensibly it was because I was frustrated with the dearth of small-but-complete embeddable scripting languages, but of course I really wrote it because it was fun. It is still... 102.4 KB Libraries  -  Libeval 1.0.7 Libeval provides simple means of evaluating simple arithmetic expressions involving literal numeric values, variables and functions using the addition (+), subtraction (-), multiplication (*), division (/), modulo division (), exponentiation (^),... 27.65 KB Development Editors  -  Dll Export Finder 1.1.1 Dll Export Finder is a lightweight and useful utility that allows you to locate the DLL that includes an exported function or an API. Dll Export Finder finds functions exported by dll in a specified directory. This is the tool you need if you... Network & Internet  -  Pyrenean DNSKong 1.34 What is DNSKong? DNSKong is a personal caching-only psuedoDNS server. DNSKong only serves the localhost. No machine from the outside world will be able to use your DNSKong. It uses the file, named.txt as rules for matching... 30.72 KB Business  -  RPN Turbo Calc 1.1.0.1 An RPN stack based Calculator and adding machine. It contains 8 landscape pages supporting : Annuities, Bonds, Cash Flow, Depreciation, Statistics, Probability and other Math - Trigonometry functions. One page supports user defined and NAMED... 1024 KB Libraries  -  CAM::PDF::GS::NoText 1.07 CAM::PDF::GS::NoText is a PDF graphic state. SYNOPSIS use CAM::PDF; my \$pdf = CAM::PDF->new(\$filename); my \$contentTree = \$pdf->getPageContentTree(4); my \$gs = \$contentTree->computeGS(1); This class is used to represent the graphic state... 737.28 KB Web Browsers  -  PixelZoomer 1.20 PixelZoomer is a Firefox extension for web developers which allows for zooming into websites. The core features are characterized by tools for pixel perfect measuring of distances and picking colors (HEX codes) with an eye dropper. The viewable... Finance  -  Script Execute 3.7.7.318 The filter module "Script execute" for our data loggers (for example, Accurate Printer Monitor ) is an interpreter for scripts written in most popular programming languages. Unique feature of this plug-in is ability to use several languages...    