- 35
- 0
- 约1.51千字
- 约 2页
- 2021-10-12 发布于陕西
- 举报
等式约束极值问题-外点罚函数法
重庆科技学院学生实验报告
课程名称 最优化方法与应用 实验项目名称 学号 等式约束极值问题-外点罚函数法 实验日期 专业班级 实验成绩 开课学院及实验室 学生姓名 指导教师 一、实验目的和要求 1.熟悉外点罚函数法的思想和步骤; 2.掌握外点罚函数法求解等式约束的多维极值问题。 二、实验内容和原理 1. 对所给等式约束的多维极值问题用matlab编程进行求解; 三、主要仪器设备 操作系统为Windows 2000及以上的电脑,并装有matlab软件 四、实验操作方法和步骤 根据外点罚函数法的步骤,读懂下列的程序,并用该程序求解所给多维函数极值。 五、实验记录与处理(数据、图表、计算等) syms x y; minGeneralPF(x^2+y^2,[1,1],y^2-1,1000,2,[x,y],0.0001) ans = 0 0 Minf=0 六、实验结果及分析 运用所给程序能够求出最优解X=(0,0)最优值0, 附录function [x,minf] = minGeneralPF(f,x0,h,c1,p,var,eps) format long; if nargin == 6 eps = 1.0e-4; end k = 0; FE = 0;
for i=1:length(h)
FE = FE + (h(i))^2; end
x1 = transpose(x0);
x2 = inf;
while 1
M = c1*p; FF = M*FE; SumF = f + FF;
[x2,minf] = minNT(SumF,transpose(x1),var); if norm(x2 - x1)=eps x = x2;
break; else
c1 = M; x1 = x2; end end
minf = subs(f,var,x); format short;
%牛顿法求解无约束最优化问题 function [x,minf] = minNT(f,x0,var,eps) format long; if nargin == 3 eps = 1.0e-6; end tol = 1;
x0 = transpose(x0); gradf = jacobian(f,var);
jacf = jacobian(gradf,var);
while toleps
v = subs(gradf,var,x0); tol = norm(v);
pv = subs(jacf,var,x0); p = -inv(pv)*transpose(v); p = double(p); x1 = x0 + p; x0 = x1; end
x = x1;
minf = subs(f,var,x); format short; syms x y;
minGeneralPF(x^2+y^2,[1,1],y^2-1,1000,10,[x,y],0.0001) ans =
0 1.0000
感谢您的阅读,祝您生活愉快。
原创力文档

文档评论(0)