找回密码
 注册
Simdroid-非首页
查看: 71|回复: 2

关于funval函数代码求指点

[复制链接]
发表于 2011-3-24 09:39:45 | 显示全部楼层 |阅读模式 来自 广西南宁
发表于 2011-3-24 19:15:24 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
看了一下,似乎是一个自编的类似feval的程序。
另外,以后问这种问题,最好把问题背景说得详细一些,否则没头没脑的拿出一段程序,很难猜是做什么用的。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-3-25 08:46:40 | 显示全部楼层 来自 广西南宁
多谢BZ提醒   这个程序用于一段最小二乘LM法程序中  LM法程序如下:
function [x,minf] = minLM(f,x0,beta,u,v,var,eps)
format long;
if nargin == 6
    eps = 1.0e-6;
end
S = transpose(f)*f;
k = length(f);
n = length(x0);
x0 = transpose(x0);
A = jacobian(f,var);
tol = 1;

while tol>eps
    Fx = zeros(k,1);
    for i=1:k
        Fx(i,1) = Funval(f(i),var,x0);
    end
    Sx = Funval(S,var,x0);
    Ax = Funval(A,var,x0);
    gSx = transpose(Ax)*Fx;
    Q = transpose(Ax)*Ax;
   
    while 1
        dx = -(Q+u*eye(size(Q)))\gSx;

        x1 = x0 + dx;
        for i=1:k
            Fx1(i,1) = Funval(f(i),var,x1);
        end
        Sx1 = Funval(S,var,x1);
        tol = norm(dx);
        if tol<=eps
            break;
        end

        if Sx1 >= Sx+beta*transpose(gSx)*dx
            u = v*u;
            continue;
        else
            u = u/v;
            break;
        end
    end
    x0 = x1;
end
x = x0;
minf = Funval(S,var,x);
format short;
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 23:34 , Processed in 0.030363 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表