QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2861|回复: 5
打印 上一主题 下一主题

LMFnlsq - 非线性最小二乘优化算法

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2014-8-11 15:40 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    LMFnlsq - 非线性最小二乘优化算法
    游客,如果您要查看本帖隐藏内容请回复


    Efficient and stable MATLAB version of Fletcher's modification of Levenberg-Marquardt method

    The function finds a solution of an algebraic nonlinear problem in the
    least squares sense. The standard Levenberg- Marquardt algorithm was modified by Fletcher and coded in FORTRAN many years ago. LMFnlsq is its MATLAB version complemented by setting parameters of Options.  

    The function calling has one of the following forms:  

    Options = LMFnlsq; % Settings of Options  
    Options = LMFnlsq('default');  
    Options = LMFnlsq(Name1,Value1,Name2,Value2,…);  
    Options = LMFnlsq(Options,Name1,Value1,Name2,Value2,…);  
    x = LMFnlsq(Eqns,x0); % Problem solutions  
    x = LMFnlsq(Eqns,x0,Options);  
    x = LMFnlsq(Eqns,x0,Name1,Value1,Name2,Value2,…);  
    [x,ssq] = LMFnlsq(Eqns,x0,…);  
    [x,ssq,cnt] = LMFnlsq(Eqns,x0,…);  
    [x,ssq,cnt,nfJ,xy] = LMFnlsq(Eqns,x0,…);  

    The input variables have the following meaning:  
    -Eqns is a function name or a handle defining a set of equations to be  solved and their residuals,  
    -x0 is a vector of initial estimates of unknowns,  
    -Name, Value is a pair of the Options structure. If no Options is defined,  default structure items are used. The structure has the following field  

    names and default values (in braces):  

    -'Display' for control of iteration results output, {0},  
    -'Printf' for a handle or function name for output of iteration results,  
    {printit} subfunction,  
    -'Jacobian' for a handle of function, which evaluates Jacobian matrix J,  
    -{finjac} subfunction. If no handle is declared, internal subfunction for  finite difference approximation of the matrix J is used.  
    -'MaxIter' for setting maximum number of iterations, {100},  
    -'ScaleD' for defining diagonal matrix of scales, {[]},  
    -'FunTol' for tolerance of final function values, {1e-7},  
    -'XTol' for tolerance of final solution increments, {1e-7},  
    -'Lambda' for setting lambda parameter in the first iteration, {0},  
    -'Trace' for control of storing intermediate results of the vector x , {0};  

    The output variables are:  
    -x is the final solution,  
    -ssq is the sum of squares of residuals of Eqns,  
    -cnt is a number of iterations needed for finding x,  
    -nfJ is the number of calling Eqns and 'Jacobian',  
    -xy is a matrix of intermediate solutions x in iterations.  

    Example:  
    The general Rosenbrock's function has the form of a sum of squares:  
    f(x) = 100(x(2)-x(1)^2)^2 + (1-x(1))^2  
    Optimum 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.  
    LMFnlsq finds the solution of this problem in 17 iterations with default  
    settings. The function FUN has the form of named function  

    function r = rosen(x)  
    % Rosenbrock valey residuals:  
    r = [ 10*(x(2)-x(1)^2) % first part, f1(x)  
    1-x(1) % second part, f2(x)  
    ];  
    or an anonymous function  
    rosen = @(x) [10*(x(2)-x(1)^2); 1-x(1)];  
    The solution is x = [1; 1] with ssq = 0.  
    Anonymous functions are applicable with MATLAB 7.  

    The function LMFnlsq is able to solve even constrained problems, provided an appropriate penalty function is defined as additional function (see the screenshot and LMFtest.pdf).  
    The function LMFnlsq overcomes earlier presented function LMFsolve (FEX Id: 16063) in much higher stability.  

    See LMFtest for a short explanation and solved examples.

    游客,如果您要查看本帖隐藏内容请回复



    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    龍羽落        

    0

    主题

    11

    听众

    38

    积分

    升级  34.74%

  • TA的每日心情
    开心
    2014-9-22 16:49
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    大学生

    群组数学建模培训课堂1

    群组Matlab讨论组

    回复

    使用道具 举报

    0

    主题

    12

    听众

    107

    积分

    升级  3.5%

  • TA的每日心情
    奋斗
    2015-2-4 19:36
  • 签到天数: 31 天

    [LV.5]常住居民I

    自我介绍
    建模新手。正在奋斗学习ing

    社区QQ达人

    回复

    使用道具 举报

    5

    主题

    4

    听众

    28

    积分

    升级  24.21%

  • TA的每日心情
    开心
    2016-8-4 11:56
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    社区QQ达人

    回复

    使用道具 举报

    黎雪峰        

    0

    主题

    11

    听众

    28

    积分

    升级  24.21%

  • TA的每日心情
    难过
    2016-1-22 10:26
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    社区QQ达人

    回复

    使用道具 举报

    0

    主题

    6

    听众

    297

    积分

  • TA的每日心情

    2016-9-23 17:38
  • 签到天数: 169 天

    [LV.7]常住居民III

    社区QQ达人

    群组2013认证赛A题讨论群组

    群组2016研赛备战群组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-1-1 15:10 , Processed in 1.873687 second(s), 84 queries .

    回顶部