数学建模实验报告2
数学建模试验报告(二)
姓名
马震
学号
20073492
班级
软0708班
问题:梯子长度问题
一楼房的后面是一个很大的花园. 在花园中紧靠着楼房有一个温室,温室伸入花园2m,高3m,温室正上方是楼房的窗台. 清洁工打扫窗台周围,他得用梯子越过温室,一头放在花园中,一头靠在楼房的墙上. 因为温室是不能承受梯子压力的,所以梯子太短是不行的.现清洁工只有一架7m长的梯子,你认为它能达到要求吗? 能满足要求的梯子的最小长度为多少?
建模:1.利用三角函数确定各边之间的关系。
L1= a/cosx;
L2= b/sinx
则可得,
L=L1+L2=a/cosx+b/sinx
同时可以确定0≤x≤90。将问题化成为一个无约束优化问题。
建立无约束优化模型:
MINy=2/cosx+3/sinx(0<x<1.57)
求解的Matlab程序代码:
先编写M文件fun.m如下::
问题的分析和假设:
分析:若使梯子的长假设:1梯子的长度受到温室的空间位置和梯子摆放的位置的限制。
2梯子的两端分别与楼房和花园的地面接触。
符号规定:x―――梯子与地面所成的角度
L―――梯子的长度
L1―――梯子上半部分的长度L2―――梯子下半部分的长度
a―――温室伸入花园的长度b―――温室的高度
function f=fun (x)
f=2/cos(x)+3/sin(x);
主程序whliti.m如下:
[x,fval]=fminbnd('fun',0,1.57);
xmin=x
fmin=fval
计算结果与问题分析讨论:
计算结果:
xmin =
0.8528
fmin =
7.0235
问题分析讨论:
即当梯子与地面的角度为48.88度时,梯子的长度最短为7.0235m,故该清洁工只有7m长的梯子,想使梯子不接触温室,不能达到要求。若要达到不接解温室的要求,必须用长度大于7.0235米的梯子。
此题建模为无约束优化模型,转化为用matlab求解一元函数的无约束最优化问题:min f(x)
应用格式:[x,fval]= fminbnd(fun,x1,x2)即可求解。