下载此文档

实验1 一维搜索算法的程序设计.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
实验一 一维搜索算法的程序设计
一、实验目的
1、熟悉一维无约束优化问题的二分法、 算法和牛顿法。
2、培养 matlab 编程与上机调试能力。
二、实验课时:2个课时
三、实验准备
1、预习一维无约束优化问题的二分法实验一 一维搜索算法的程序设计
一、实验目的
1、熟悉一维无约束优化问题的二分法、 算法和牛顿法。
2、培养 matlab 编程与上机调试能力。
二、实验课时:2个课时
三、实验准备
1、预习一维无约束优化问题的二分法、 算法和牛顿法的计算步骤。
2、熟悉 matlab 软件的基本操作。
四、实验内容
课堂实验演示
1、根据二分法算法编写程序,求函数
f (x) = x 2 + 2 x + 2
在区间[-2,1]上的极小值。
二分法如下:
给定区间[a, b ](要求满足f'(a) < 0, f'(b) > 0 )以及精度§ > 0 ;
若b — a < §,则停,输出 x* = (a + b)/2 ;
计算c = (a + b)/2 ;
若 f'(c) < 0,令a = c,返回(2);否则若f'(c) > 0,令b = c ;否则若 f'(c) = 0 ,
则停输出x* = (a + b)/2 ;
function [val,x,iter] = bisection_method(a,b,delta)
iter = 0;
while abs(b-a)>delta
iter = iter+1;
[y,dy] = fun((a+b)/2);
if abs(dy)<= delta
x = (a+b)/2;
val = y; return;
elseif dy<0
a = (a+b)/2;
else
b = (a+b)/2;
end end x = (a+b)/2;
[val,dval] = fun(x);
%%%%%%%%%%%%%%%%%%%%%%% obj function %%%%%%%%%%%%%%%%%%%%%%%%% function [y,dy] = fun(x)
y = xA2+2*x+2;
dy = 2*x+2;
>> delta = -6;
[val,x,iter] = bisection_method(-2,1,delta) val = 1
x = -1
iter = 21
2、根据 算法编写程序,求函数
f (x ) = (sin x )6 tan(1 - x ) e30 x
在区间[0, 1] 上的极大值。
令 g (x) = 一 f (x) = -(sin x)6 tan (1 - x)e30x,则原问题转化为求 min g (x)
x e[g,1 ]
算法如下:
给定区间[a,b],及精度 eps > 0 ;
计算试探点 r = a + ( b 一 a), u = a + 0・618( b 一 a).令k = 1 ;
⑶若b - a < eps,则停止计算,输出x * = (b + a )/2, f * = f (x *);否则,
若 f(r)> f (u)'转⑷;若 f (r) < f (u)'转(5);
令a = r, r =

实验1 一维搜索算法的程序设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiaobaizhua
  • 文件大小16 KB
  • 时间2022-05-14
最近更新