空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1727|回复: 0

Maple之梯子问题

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-14 16:15:27 | 显示全部楼层 |阅读模式
靠墙有一宽为a高为b的不可压花棚,至少要多长的梯子才能越过花棚斜靠墙上?

假设:1.梯子是直的;2.墙与地面垂直;3.地面是平面;4.花棚的顶与墙垂直。
模型1:考查过(3,2)点的直线与两轴交点间长度最小值,若≥7,就可以在x轴上求出最小值点,放置梯子。
模型2:(仿真模拟)将梯子一端放置于x轴上不同点,并令其过(3,2)点,由长度7求出另一端点x坐标,当x≤0,则梯子长度够用,对应x轴上的点为梯子放置点,若始终x>0,则梯子不够长。

示意图:
>with(plottools):l:=animate(2-2*(x-3)/t,x=0..6,t=1.7..4,color=green,linestyle=20):p:=polygon([[0,0],[0,2],[3,2],[3,0]],color=red,linestyle=20,thickness=3):display(l,p);

优化模型:梯子看作直线,棚宽a=3,棚高b=2作为平面上点的坐标,考查过(3,2)点直线y-2=-k(x-3)在两轴交点间距离的最小值。两轴交点为(0,2+3k),(3+2/k,0),交点间距离L=[(3+2/k)^2+(2+3k)^2]^0.5  (k为斜率绝对值,也可用x轴交点x0作为自变量)

> l:=((3-2/k)^2+(2-3*k)^2)^0.5:
> plot(l,k=0.1..5);
> l0:=minimize(l,k,0.1..10);
> fsolve(l=7.0235,k);

用极值函数extrema:(以-k=-2/(t-3)替换上式,t为直线与x轴交点)

> l:=(t^2+(2+6/(t-3))^2)^0.5:
> readlib(extrema):extrema(l,{},t,'s');evalf(s);
> assign(s[3]):evalf(l);t:='t':

仿真:y-2=k(x-3),取x=x0,y=0求出k=2/(3-x0),由此得长度=7时另一端点x坐标7cos(a):
x1=x0-7*(x0-3)/[2^2+(3-x0)^2]^0.5,对x0取步长对实际仿真。

> restart:
> a:=3.1:
> for x0 from 3 by 0.01 to 7 do  x:=x0+7*(3-x0)/sqrt(4+(3-x0)^2):if x<a then a:=x else print(x0,x);x0:=7 fi od:
> restart:
>a:=seq([3+.3*n,0*n],n=1..10):b:=seq([3+.3*n-7*.3*n/sqrt(4+(.3*n)^2),14/sqrt(4+(.3*n)^2)],n=1..10):
> with(plots):with(plottools):
>for i from 1 to 10 do l:=line(a,b,color=blue,thickness=2) od:
>h:=polygon([[0,0],[0,2],[3,2],[3,0]],color=red,thickness=3):display(l[1],l[2],l[3],l[4],l[5],l[6],l[7],l[8],l[9],l[10],h);

思考问题:当梯子长L=6.5,棚高b=2时,要保证梯子不会压坏花棚,花棚最宽可为多少。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-3 22:01 , Processed in 0.030405 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表