24小时热门版块排行榜    

查看: 657  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

champion3568

木虫 (职业作家)

[求助] 请各位大神帮我看看关于拟牛顿法Maltab代码到底哪里有错??

代码我是依照一本教程做的,可运行时就出现如下错误:
syms x1 x2
>> x0=[1,2]';
>> [x,val,k]=sr1(fun,gfun,x0)
??? Undefined function or variable 'fun'.
这个是代码:
function [x,val,k] =sr1(fun,gfun,x0)
%功能:用对称秩1算法求解无约束问题:min f(x)
%输入:X0是初始点,fun,gfun分别是目标函数及其梯度   
%输出:x,val分别是近似最优点和最优值,k是迭代次数.
maxk=500; %给出最大迭代次数
rho=0.55;sigma=0.4;epsilon=le-4;
k=0; n=length(x0);Hk=eye(n);
while(k<maxk)
    gk=feval(gfun,x0);%计算梯度
    dk=-Hk*gk;%计算搜索方向
    if(norm(gk)<epsilon),break;end  %检验终止准则
    m=0;mk=0;
    while(m<20)  %用Armijo搜索求步长
      if(feval(fun,x0+rho^m*dk)<feval(fun,x0)+sigma*rho^m*gk'*dk)   
         mk=m;break;
      end
    m=m+1;
    end
    x=x0+rho^mk*dk;
    sk=x-x0; yk=feval(gfun,x)-gk;
    Hk=Hk+(sk-Hk*yk)*(sk-Hk*yk)'/((sk-Hk*yk)'*yk); %秩1校正
    k=k+1;  x0=x;
end
val=feval(fun,x0);
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

heaven0419

木虫 (小有名气)

3楼2015-11-20 22:31:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

yanshuiting

新虫 (正式写手)

2楼2015-11-20 22:28:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

champion3568

木虫 (职业作家)

引用回帖:
2楼: Originally posted by yanshuiting at 2015-11-20 22:28:12
你的输入不对

那么如何解决呢
4楼2015-11-20 23:45:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见