罚函数法有没有Matlab
罚函数法谁有用Matlab编写的程序? 一本书上的例子% 惩罚函数--外点法(例6-4)
% 数学模型
syms x
f=x;g=x-1;
% 惩罚因子初值、递增系数、迭代次数
r0 = 0.25;c = 2; km = 7;
k = 1:km; % 迭代计数
r=r0*c.^(k-1); % 惩罚因子递增数列
x=1-1./(2.*r); % 点列x*(k)
g=x-1; % 约束函数g
f=x; % 目标函数f
p=x+r.*g.^2; % 惩罚函数p
disp ' ****** 计算结果 ******'
disp '迭代次数 k'
disp '惩罚因子 r'
disp '极小点列 x*'
disp '目标函数 f*'
disp '惩罚函数 p*'
% 惩罚函数--内点法(例6-5)
% 数学模型
syms x
f=x;g=x-1;
% 惩罚因子初值、递减系数、迭代次数
r0 = 1;c = 0.1; km = 7;
k = 1:km; % 迭代计数
r=r0*c.^(k-1); % 惩罚因子递减数列
x=1+sqrt(r); % 点列x*(k)
g=x-1; % 约束函数g
f=x; % 目标函数f
p=x+r./g; % 惩罚函数p
disp ' ****** 计算结果 ******'
disp '迭代次数 k'
disp '惩罚因子 r'
disp '极小点列 x*'
disp '目标函数 f*'
disp '惩罚函数 p*'
页:
[1]