第二次最有优化上机.docx
- 文档编号:25711441
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:9
- 大小:73.62KB
第二次最有优化上机.docx
《第二次最有优化上机.docx》由会员分享,可在线阅读,更多相关《第二次最有优化上机.docx(9页珍藏版)》请在冰豆网上搜索。
第二次最有优化上机
课程名称:
最优化计算方法
指导教师:
付云姗
班级:
信科13
姓名:
李贵显
学号:
1311710106
实验项目名称:
一维优化方法练习
实验目的及要求:
1.编写程序实现全局牛顿法;
2.编写程序实现割线法;
3.编写程序实现Goldstein非精确线性搜索。
实验原理:
在Matlab环境下,按照要求编写函数和程序,求解实例,直至取得正确的运行结果。
算法4:
全局牛顿法
S1给出
精度
令k:
=0;
S2计算
若
则转S4;若
则停止;
令初始值
;
S3令
如果
则转S3;
令
k=k+1,转S2;
S4令
如果
则令
,置
;
S5如果
则转S6;置
;转S5;
S6令
k=k+1,转S2.
算法5割线法
S1给出
精度
令k:
=0;
S2若
停止,极小值点为
;
S3令
;
S4令k:
=k+1,转S2.
算法6Goldstein非精确线性搜索
S1在搜索区间
或
上取定初始试探点,计算
给出可接受系数
和
增大探索点系数
或
S2计算
若
则转S3,否则令
转S4;
S3若
,停止迭代输出
;否则令
若
转S4,否则令
转S2;
S4令
,置
转S2.
实验内容(方法和步骤):
题目7编写程序实现全局牛顿法。
利用Matlab编写函数[x,miny]=GlobalNewton(f,x0,eps).其中f为目标函数,x0为初始点,eps为算法终止的精度。
用全局牛顿法求解无约束优化问题minf(x)。
GlobalNewton.m文件
function[x,miny]=GlobalNewton(f,x0,eps)
k=0;x=x0;
g=diff(f);h=diff(g);
fx=subs(f,findsym(f),x);
gx=subs(g,findsym(g),x);
hx=subs(h,findsym(h),x);
delta=eps;
alpha=0;beta=0;
epsgx=eps;
while1
ifabs(gx) ifhx>=0 break; else delta=2*delta; f3=subs(f,findsym(f),x+delta); whilef3>=fx delta=2*delta; f3=subs(f,findsym(f),x+delta); end x=x+delta; k=k+1; fx=subs(f,findsym(f),x); gx=subs(g,findsym(g),x); hx=subs(h,findsym(h),x); end continue; end beta=hx; ifbeta<=0 beta=1; alpha=1; end f1=subs(f,findsym(f),x-alpha*gx/beta); f2=subs(f,findsym(f),x)-alpha*gx^2/(4*beta); whilef1>=f2 alpha=alpha/2; f1=subs(f,findsym(f),x-alpha*gx/beta); f2=subs(f,findsym(f),x-alpha*gx^2/(4*beta)); end x=x-alpha*gx/beta; k=k+1; fx=subs(f,findsym(f),x); gx=subs(g,findsym(g),x); hx=subs(h,findsym(h),x); end x=vpa(x,6) miny=vpa(fx,6) end 题目8 取初始点x0=5,用全局牛顿法求函数 的极小值点。 shiyan8.m文件 symst; f=t^3-3*t+2; x0=5;eps=1e-3; [x,miny]=GlobalNewton(f,x0,eps) 题目9编写程序实现割线法。 利用Matlab编写函数[x,minf]=GX(f,x0,x1,eps).其中f为目标函数,x0,x1为初始点,eps为算法终止的精度。 用割线法求解一维无约束优化问题minf(x)。 GX.m文件 function[x,minf]=GX(f,x0,x1,eps) k=1;x (1)=x1; g=diff(f); fx0=subs(f,findsym(f),x0); fx (1)=subs(f,findsym(f),x (1)); gx0=subs(g,findsym(g),x0); gx (1)=subs(g,findsym(g),x (1)); ifabs(fx(k))>eps x (2)=x (1)-(x (1)-x0)*gx (1)/(gx (1)-gx0); k=k+1; fx(k)=subs(f,findsym(f),x(k)); gx(k)=subs(g,findsym(g),x(k)); end whileabs(fx(k))>eps x(k+1)=x(k)-(x(k)-x(k-1))*gx(k)/(gx(k)-gx(k-1)); k=k+1; fx(k)=subs(f,findsym(f),x(k)); gx(k)=subs(g,findsym(g),x(k)); end x=vpa(x(k)); minf=vpa(fx(k)); 题目10 取初始点x0=5,x1=8,用割线法求函数 的极小值点。 shiyan10.m文件 symst; f=t^3-3*t+2; x0=5;x1=8; [x,minf]=GX(f,x0,x1,eps) 题目11编写程序实现Goldstein非精确线性搜索。 编写函数[x,minf]=Goldstein(f,xmax,sig1,sig2,alpha,eps).其中f为目标函数,xmax搜索最大值,sig1可接收系数1,sig2可接收系数2,alpha增大探索点参数,eps为算法终止的精度。 用Goldstein法求解一维无约束优化问题minf(x)。 Goldstein.m文件 function[x,minf]=Goldstein(f,xmax,sig1,sig2,alpha,eps) g=diff(f); a (1)=0;b (1)=xmax; k=1; t (1)=(a (1)+b (1))/2; M=1e24; f0=0; f0=subs(f,findsym(f),0); g0=subs(g,findsym(g),0); fx(k)=subs(f,findsym(f),t(k)); while1 fx(k)=subs(f,findsym(f),t(k)); f1=f0+sig1*t(k)*g0; iffx(k)>f1 a(k+1)=a(k); b(k+1)=t(k); t(k+1)=(a(k+1)+b(k+1))/2; k=k+1; else f2=f0+sig2*t(k)*g0; iffx(k)>=f2 break; else a(k+1)=t(k); b(k+1)=b(k); ifb(k+1) t(k+1)=(a(k+1)+b(k+1))/2; else t(k+1)=alpha*t(k); end k=k+1; end end ifk>1000break;end end x=t(k); fx(k)=subs(f,findsym(f),t(k)); minf=fx(k); end 题目12 用Goldstein法求函数 的极值,其中搜索最大值取8,可接受系数分别为0.4和0.75,增大探索系数取2。 shiyan12.m文件 symst; f=t^3-2*t+7; xmax=8;sig1=0.4;sig2=0.75; alpha=2;eps=1e-4; [x,minf]=Goldstein(f,xmax,sig1,sig2,alpha,eps) 实验结果与分析: shiyan8.m运行结果: 初始迭代点 -1 0 1 …… 极小值点 0.999894 1.00009 1.0 …… 极小值 3.35602e-8 2.54694e-8 0.0 …… shiyan10.m运行结果: Shiyan12.m运行结果: 成绩: 批阅教师签名: 年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二次 优化 上机