好文档 - 专业文书写作范文服务资料分享网站

2016年大连理工大学优化方法上机大作业

天下 分享 时间: 加入收藏 我要投稿 点赞

function f=alobj(x) %拉格朗日增广函数 %N_equ等式约束个数? %N_inequ不等式约束个数 N_equ=1; N_inequ=3;

global r_al pena;%全局变量 h_equ=0; h_inequ=0;

[h,g]=constrains(x); %等式约束部分? for i=1:N_equ

h_equ=h_equ+h(i)*r_al(i)+(pena/2)*h(i).^2; end

%不等式约束部分 for i=1:N_inequ

h_inequ=h_inequ+(0.5/pena)*(max(0,(r_al(i)+pena*g(i))).^2-r_al(i).^2); end

%拉格朗日增广函数值

f=obj(x)+h_equ+h_inequ;

function f=compare(x)

global r_al pena N_equ N_inequ; N_equ=1; N_inequ=3;

h_inequ=zeros(3,1); [h,g]=constrains(x); %等式部分 for i=1:1

h_equ=abs(h(i)); end %不等式部分 for i=1:3

h_inequ=abs(max(g(i),-r_al(i+1)/pena)); end

h1 = max(h_inequ);

f= max(abs(h_equ),h1); %sqrt(h_equ+h_inequ);

function [ x,fmin,k] =almain(x_al) %本程序为拉格朗日乘子算法示例算法%函数输入: % x_al:初始迭代点

% r_al:初始拉格朗日乘子N-equ:等式约束个数N_inequ:不等式约束个数?%函数输出 % X:最优函数点FVAL:最优函数值

%============================程序开始================================ global r_al pena ; %参数(全局变量) pena=10; %惩罚系数 r_al=[1,1,1,1];

c_scale=2; %乘法系数乘数 cta=0.5; %下降标准系数 e_al=1e-4; %误差控制范围 max_itera=25;

out_itera=1; %迭代次数

%===========================算法迭代开始============================= while out_itera

%判断函数?

compareFlag=compare(x_al0); %无约束的拟牛顿法BFGS

[X,fmin]=fminunc(@alobj,x_al0); x_al=X; %得到新迭代点 %判断停止条件?

if compare(x_al)

disp('we get the opt point'); break end

%c判断函数下降度?

if compare(x_al)

pena=1*pena; %可以根据需要修改惩罚系数变量 else

pena=min(1000,c_scale*pena); %%乘法系数最大1000 disp('pena=2*pena'); end

%%?更新拉格朗日乘子

[h,g]=constrains(x_al); for i=1:1

%%等式约束部分

r_al(i)= r_al0(i)+pena*h(i); end for i=1:3

%%不等式约束部分

r_al(i+1)=max(0,(r_al0(i+1)+pena*g(i)));

end

out_itera=out_itera+1; end

%+++++++++++++++++++++++++++迭代结束+++++++++++++++++++++++++++++++++ disp('the iteration number'); k=out_itera;

disp('the value of constrains'); compare(x_al)

disp('the opt point'); x=x_al; fmin=obj(X);

>> clear

>> x_al=[0,0];

>> [x,fmin,k]=almain(x_al)

上机大作业3:

1、

>> clear all

n=3; c=[-3,-1,-3]'; A=[2,1,1;1,2,3;2,2,1;-1,0,0;0,-1,0;0,0,-1];b=[2,5,6,0,0,0]'; cvx_begin variable x(n) minimize( c'*x) subject to

A*x<=b cvx_end

Calling SDPT3 4.0: 6 variables, 3 equality constraints ------------------------------------------------------------

num. of constraints = 3 dim. of linear var = 6

******************************************************************* SDPT3: Infeasible path-following algorithms

2016年大连理工大学优化方法上机大作业

functionf=alobj(x)%拉格朗日增广函数%N_equ等式约束个数?%N_inequ不等式约束个数N_equ=1;N_inequ=3;globalr_alpena;%全局变量h_equ=0;h_inequ=0;[h,g]=constrains(x);%等式约束部分?fori=1:N_equh_
推荐度:
点击下载文档文档为doc格式
5i01y1pmkg8az813jgo32teb88j4i5005un
领取福利

微信扫码领取福利

微信扫码分享