Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2012-05-11
年龄: 36
帖子: 1
声望力: 0 ![]() |
![]()
我在进行算法编程时遇到了错误,小弟初学 找不到解决方法 希望各位大神帮我看看哪里出现了错误 :
算法截图如下:在附件中 代码: function [tx,tstopc,time,tk]=pro(M,q,xstart,tol) x=xstart; %%% 这里的xstart要严格大于0 b=1;y=0.95;u=0.01;g=1.9; Fx=M*x+q; stopc=norm(x-max(x-Fx,0),inf); k=0;tic; while (stopc>tol && k<=5000) k=k+1; x0=x; Fx0=Fx; x=max(x0-b*Fx0/(1+u),0); Fx=M*x+q; df=b*(Fx-Fx0); r=norm(df)/norm(x-x0); while(r > y) b=0.8*b/r; x=max(x0-b*Fx0/(1+u),0); Fx=M*x+q; df=b*(Fx-Fx0); r=norm(df)/norm(x-x0); end dx=x0-x; dm=norm(dx); q=dm^2/(1+u)+dx'*df/(1+u); d=dx+df/(1+u); dn=norm(d); a0=q/(dn^2); a=g*(1-u)*a0/(1+u); x=max(x0-a*b*Fx/(1+u),0); Fx=M*x+q; stopc=norm(x-max(x-Fx,0),inf); if r<=0.5 b=b*0.7/r; end end tx=x; tstopc=stopc; time=toc; tk=k; 另: 附件中的P[]算法就是求方括号内的数与0两者较大的数 希望各位大神帮小弟解决这个问题!!不胜感激 |
![]() |
![]() |