Crossed Ladders Problem

Author

Eric W. Weisstein
September 27, 2004

This notebook downloaded from http://mathworld.wolfram.com/notebooks/RecreationalMath/CrossedLaddersProblem.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/CrossedLaddersProblem.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Illustration

CrossedLaddersTheorem[{l1_,l2_},h_,guess_:{1,1}]:=With[{w=.2,dh=.2},Module[{h1,h2,x1,x2,d1,d2,
hh1,hh2,xx1,xx2,dd1,dd2,
d},
{hh1,hh2}={h1,h2}/.FindRoot[{
h1^4-2h h1^3+(h-h1)^2(l2^2-l1^2)==0,
h2^4-2h h2^3+(h-h2)^2(l1^2-l2^2)==0
},
{h1,guess[[1]]},{h2,guess[[2]]},
MaxIterations->50];
dd1=Sqrt[l1^2-hh1^2];
dd2=Sqrt[l2^2-hh2^2];
xx2=h/hh2 dd2;
xx1=h/hh1 dd1;
d=dd1+dd2-xx1-xx2;
Print[{{hh1,hh2},{dd1,dd2},{xx1,xx2},d}];
{
{Thickness[.02],Line[{{-w,0},{d+w,0}}]},
{GrayLevel[.5],
Polygon[{{-w,0},{0,0},{0,hh1+dh},{-w,hh1+dh}}],
Polygon[{{d,0},{d+w,0},{d+w,hh2+dh},{d,hh2+dh}}]
},
Line[{{0,hh1},{dd1,0}}],
Line[{{d,hh2},{d-dd2,0}}]
}
]
]

Show[Graphics[CrossedLaddersTheorem[{2.,1.5},.4,{2,2}],AspectRatio->Automatic,PlotRange->All]]

Solving

(Subscript[h, 1])

Eliminate[{
l1^2==h1^2+d^2,
l2^2==h2^2+d^2,
1/h==1/h1+1/h2},
{d,h2}
]

FullSimplify[((h^2)-2 h h1+(h1^2)) (l1^2)-(-2 h (h1^3)+(h1^4)+(h^2) (l2^2)-2 h h1 (l2^2)+(h1^2) (l2^2))]

FullSimplify[%-(-h1^4+2h h1^3+(h-h1)^2(l1^2-l2^2))]

(Subscript[h, 2])

Eliminate[{
l1^2==h1^2+d^2,
l2^2==h2^2+d^2,
1/h==1/h1+1/h2},
{d,h1}
]

FullSimplify[((h^2)-2 h h2+(h2^2)) (l1^2)-(2 h (h2^3)-(h2^4)+(h^2) (l2^2)-2 h h2 (l2^2)+(h2^2) (l2^2))]

FullSimplify[%-(h2^4-2h h2^3+(h-h2)^2(l1^2-l2^2))]

Integer Solutions

eqns={
l1^2==h1^2+d^2,
l2^2==h2^2+d^2,
1/h==1/h1+1/h2,
d1==d h/h2,
d2==d h/h1,
d==d1+d2};
vars={h1,h2,h,l1,l2,d,d1,d2};

soln1={l1->119,l2->70,h1->105,h2->42,h->30,d1->40,d2->16,d->56};
soln2={l1->195,l2->533,h1->156,h2->520,h->120,d1->27,d2->90,d->117};

{eqns,{(Sqrt[d1^2+h^2]),(Sqrt[d2^2+h^2])}}/.soln1

Borris (26 Sep 2004)

{eqns,{(Sqrt[d1^2+h^2]),(Sqrt[d2^2+h^2])}}/.soln2

Reduce[
And@@eqns&&And@@(#>0&/@vars),
vars,
Integers
]//Timing