最优化方法
最优化方法
Hyacinth&
这个作者很懒,什么都没留下…
展开
-
罚函数——内点罚函数算法
罚函数——内点罚函数算法内点罚函数算法算法算例matlab程序测试文件输出结果内点罚函数算法算法算例matlab程序function [x,val]=neidian(x0,epsilon)m(1)=1;c=10;% c为递增系数for k=1:100 e=m(k); x0=bfgs('ndfz','dndfz',x0); f1=zzzz(x0,e); if(norm(f1)<=epsilon) break else原创 2021-07-09 17:56:39 · 3116 阅读 · 2 评论 -
罚函数法——外点罚函数法
罚函数法——外点罚函数法外点罚函数法算法算例matlab代码测试文件输出结果外点罚函数法算法算例matlab代码function [x,val]=waidian1(x0,epsilon)m(1)=1;c=10;% c为递增系数for k=1:100 e=m(k); x0=bfgs('zg','dzg',x0); f=zg(x0,e); if(f<=epsilon) break else m(k+1)=c*m(k原创 2021-07-09 17:25:46 · 3553 阅读 · 3 评论 -
罚函数法——乘子法
罚函数法——乘子法乘子法乘子法例题代码function [x,mu,lam,output]=multphr(fun,hf,gf,dfun,dhf,dgf,x0)maxk=1000;sigma=2.0;theta=0.8; eta=2.0; k=0; ink=0;epsilon=1e-5;x=x0; he=feval(hf,x); gi=feval(gf,x);n=length(x); l=length(he); m=length(gi);mu=0.1*ones(l,1)原创 2021-07-09 14:08:44 · 974 阅读 · 3 评论 -
最优化方法——外点罚函数法
外点罚函数法还没搞定…function [A,B]=Exterior(f,p,eps)format long;d=1;e1=1e-4;k=1;A(k)=0;B(k)=0;r(k)=1;a=2;while d>eps x1=A(k);x2=B(k); if vpa(p(x1,x2))>0 u1=1; else u1=0; end F=f+r(k)*u1*p^2; Fx1=diff(F,'x1');原创 2021-06-17 11:56:02 · 1382 阅读 · 0 评论 -
最优化方法——最小二乘法
最小二乘法No.1No.2No.3No.4No.1function[x,res]=nels(A,b)B=A'*A;f=A'*b;L=chol(B,'lower');y=L\f;x=L'\y;res=norm(b-A*x);测试文件clear;clc;A=[2 3 4 5; 4 3 2 1;4 5 6 7;9 5 7 2;4 2 5 3];b=[20 22 35 42 50]';[x,res]=nels(A,b)运行结果No.2function [x,res]=qrls原创 2021-06-10 17:16:52 · 935 阅读 · 1 评论 -
最优化方法——信頼域算法
信頼域算法信頼域方法牛顿型信頼域方法信頼域方法信頼域方法程序function[d,val,lam,i]=trustq(fk,gk,Bk,deltak)n=length(gk);beta=0.6;sigma=0.2;mu0=0.05;lam0=0.05;gamma=0.05;d0=ones(n,1);z0=[mu0,lam0,d0']';zbar=[mu0,zeros(1,n+1)]';i=0;z=z0;mu=mu0;lam=lam0;d=d0;while(i<=15原创 2021-06-10 16:57:15 · 215 阅读 · 0 评论 -
最优化方法——拟牛顿法
拟牛顿法对称秩1算法BFGS算法DPF算法Broyden族算法对称秩1算法目标函数function f=fun(x)f=2*(x(1)-x(2)^2)^2+(x(2)-2)^2;梯度function gf=gfun(x)gf=[4*(x(1)-x(2)^2);-8*x(2)*(x(1)-x(2)^2)+2*(x(2)-2)];对称秩1算法程序function[k,x,val]=sr1(fun,gfun,x0,epsilon,N)if nargin<5 N=1000;e原创 2021-06-10 11:51:32 · 939 阅读 · 0 评论 -
最优化方法——共轭梯度法
共轭梯度法线性共轭梯度法FR非线性共轭梯度法线性共轭梯度法线性共轭梯度法程序function[k,x,val]=linecg(A,b,x0,epsilon,N)if nargin<5 N=1000;endif nargin<4 epsilon=1.e-5;endif nargin<3 x0=zeros(length(b),1);endk=0;gk=A*x0-b;dk=-gk;while(k<N) temp=A*dk;原创 2021-06-10 11:19:30 · 810 阅读 · 0 评论 -
最优化方法——梯度法与牛顿法
梯度法与牛顿法梯度法阻尼牛顿法梯度法目标函数function f=fun(x)f=4*(x(1)^2-x(2))^2+3*(x(1)-1)^2;梯度function gf=gfun(x)gf=[16*x(1)*(x(1)^2-x(2))+6*(x(1)-1); -8*(x(1)^2-x(2))];梯度法的MATLAB实现function[k,x,val]=grad(fun,gfun,x0,epsilon)maxk=5000;beta=0.5;sigma=0.4;k=0;whi原创 2021-06-03 11:55:19 · 594 阅读 · 2 评论 -
最优化方法——线搜索
黄金分割法MATLAB实现MATLAB实现待求解函数function [y]=phi(x)y=3*x^2-2*tan(x);黄金分割法MATLAB实现function [i,s,phis,ds,dphi,G]=golds(phi,a,b,epsilon,delta) % Golden Sectiont=(sqrt(5)-1)/2; h=b-a; %Define interval lengthphia=feval(phi,a); % Write function value原创 2021-06-03 10:55:03 · 694 阅读 · 0 评论