全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
11659 5
2012-07-16

一、问题

    一幢楼房的后面是一个很大的花园,在花园中紧靠着楼房有一个温室,温室伸入花园宽2m,高3m,温室正上方是楼房的窗台。清洁工打扫窗台周围,他得用梯子越过温室,一头放在花园中,一头靠在楼房的墙上。因为温室是不能承受梯子压力的,所以梯子太短是不行的。现清洁工只有一架7m长的梯子,你认为它能达到要求吗?能满足要求的梯子的最小长度为多少?

二、目的

    掌握一元函数极值的驻点法,并会用它解决一些实际问题;掌握MATLAB求极小值的命令fminbnd( )

三、预备知识

1.一元函数的极值及最值的求法。

2MATLAB求极小值命令提示

格式  x = fminbnd(fun,x1,x2)   %返回自变量x在区间 上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。

x = fminbnd(fun,x1,x2,options)   % options为指定优化参数选项

[x,fval] = fminbnd()   % fval为目标函数的最小值

[x,fval,exitflag] = fminbnd()   %exitflag为终止迭代的条件

[x,fval,exitflag,output] = fminbnd()   % output为优化信息

说明  若参数exitflag>0,表示函数收敛于x,若exitflag=0,表示超过函数估计值或迭代的最大数字,exitflag<0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。

设:梯子与地面角度为 x

花园宽2m,高3m

函数 (2/cos(x))+(3/sin(x))

梯子最小长度 fval

程序如下:

>> [x,fval,exitflag,output] = fminbnd('(2/cos(x))+(3/sin(x))',0,pi/2,x)

x =

    0.8528

fval =

    7.0235

exitflag =

     1

output =

    iterations: 8

     funcCount: 9

     algorithm: 'golden section search, parabolic interpolation'

       message: [1x112 char]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-7-16 11:23:35
fminbnd最后一个参数x应该是不需要的吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-16 12:49:40
cauchym 发表于 2012-7-16 11:23
fminbnd最后一个参数x应该是不需要的吧
X 为指定优化参数选项,这里,式子中只有X ,如果有两个以上的字母,那就需要指定一个优化参数。在这里只是为了严谨,你说不要,也可以啊,其实也会得出正确结果。谢谢回复!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-16 16:31:12
多谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-16 16:34:07
lanruomuyu 发表于 2012-7-16 12:49
X 为指定优化参数选项,这里,式子中只有X ,如果有两个以上的字母,那就需要指定一个优化参数。在这里只是 ...
这说的是
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-17 00:46:47
lanruomuyu 发表于 2012-7-16 12:49
X 为指定优化参数选项,这里,式子中只有X ,如果有两个以上的字母,那就需要指定一个优化参数。在这里只是 ...
但要加的话也应该是'x'吧,而不是x
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群