资源描述:
《求解变分不等式算例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、求解变分不等式:例2:(可以是维数,在我们计算的过程中,可以取100,200,……1000维),,是一个对称矩阵,可随机生成。例1:其中,.其解为(4/3,7/9,4/9,2/9)。(不变)用迭代序列编程求解:高维迭代clc;k=0;k_inner=1000;time0=cputime;n=4;v0=0*rand(n,1);p0=1;Q=eye(n);b=5*diag(Q);%盒子的上界a=-5*diag(Q)%盒子的下届mu=0.03;%F函数的输入如下F=zeros(n,1)fori=1:nF(i,1
2、)=v0(i)+exp(v0(i));endbarp0=max(0,p0-mu*sum(v0.^2));%barv0=zeros(4,1);fori=1:nifv0(i)-mu*(F(i)+barp0*v0(i))<=a(i)barv0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*v0(i))>=b(i)barv0(i)=b(i);elsebarv0(i)=v0(i)-mu*(F(i)+barp0*v0(i));endendwhilenorm(v0-barv0)>1e-5
3、nor
4、m(p0-barp0)>1e-5&&k<=k_innerp0=max(p0-mu*sum(barv0.^2));F=zeros(n,1)fori=1:nF(i,1)=barv0(i)+exp(barv0(i));endfori=1:4ifv0(i)-mu*(F(i)+barp0*barv0(i))<=a(i)v0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*barv0(i))>=b(i)v0(i)=b(i);elsev0(i)=v0(i)-mu*(F(i)+barp0*barv0
5、(i));endendF=zeros(n,1)fori=1:nF(i,1)=v0(i)+exp(v0(i));endbarp0=max(0,p0-mu*sum(v0.^2));%barv0=zeros(4,1);fori=1:4ifv0(i)-mu*(F(i)+barp0*v0(i))<=a(i)barv0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*v0(i))>=b(i)barv0(i)=b(i);elsebarv0(i)=v0(i)-mu*(F(i)+barp0*v0(i)
6、);endendk=k+1;endfprintf('vkis:%d',v0);fprintf('pis:%d',p0);fprintf('timeusedis:%d',cputime-time0);fprintf('kis:%d',k);迭代程序有限维clc;k=0;k_inner=1000;time0=cputime;v0=[0;0;0;0];p0=1;A=[4,2,2,1;2,4,0,1;2,0,2,2;-1,-1,-2,0];b=[5;5;5;5];%盒子的上界a=[-5;-5;-5
7、;-5];%盒子的下届mu=0.03;q=[-8;-6;-4;3];F=A*v0+q;barp0=max(0,p0-mu*(v0(1)^2+v0(2)^2+v0(3)^2+v0(4)^2));%barv0=zeros(4,1);fori=1:4ifv0(i)-mu*(F(i)+barp0*v0(i))<=a(i)barv0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*v0(i))>=b(i)barv0(i)=b(i);elsebarv0(i)=v0(i)-mu*(F(i)+bar
8、p0*v0(i));endendwhilenorm(v0-barv0)>1e-5
9、norm(p0-barp0)>1e-5&&k<=k_innerp0=max(p0-mu*(barv0(1)^2+barv0(2)^2+barv0(3)^2+barv0(4)^2));F=A*barv0+q;fori=1:4ifv0(i)-mu*(F(i)+barp0*barv0(i))<=a(i)v0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*barv0(i))>=b(i)v0(i)=b(i);e
10、lsev0(i)=v0(i)-mu*(F(i)+barp0*barv0(i));endendF=A*v0+q;barp0=max(0,p0-mu*(v0(1)^2+v0(2)^2+v0(3)^2+v0(4)^2));%barv0=zeros(4,1);fori=1:4ifv0(i)-mu*(F(i)+barp0*v0(i))<=a(i)barv0(i)=a(i);elseifv0(i)-mu*(F(i)+barp0*v0(i)