 All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars  perplexus dot info  Rising water levels (Posted on 2006-06-26) You have rectangular pot of water 10cm by 10cm at the bottom and 6 cm deep. It is filled to a depth of 3cm.

You have 7 solid steel shapes in front of you. The question is to find the new level of the water after each shape is put in the pot in the orientation described. The previous shape is removed before adding the next.

1. A cube 5cm on a side.

2. A prism in the shape of a right triangle with legs 5cm long. It is 5cm high but is placed on one of its legs with its hypotenuse sloping out of the water.

3. Another prism, this one having an equilateral triangle of sides 5cm and height 5cm. It is to be placed on its side with two faces sloping up out of the water.

4. A regular hexagonal prism. Each edge of the hexagon is 4cm and the height is 5cm. It is to be placed on its side.

5. A right square pyramid. Its base is 6cm on a side. It is 5cm high. It is to be placed base down.

6. A right cylinder of radius 3cm and length 5cm. It is to be placed on its side.

7a. A right cone of radius 3cm and height 5cm. It is to be placed base down.

7b. The same cone as 7a. This time placed on its side.

 No Solution Yet Submitted by Jer Rating: 4.1667 (6 votes) Comments: ( Back to comment list | You must be logged in to post comments.) Solution to 7b using numerical integration | Comment 23 of 26 | (In reply to re: #7b Solution (with explanation) -- a numerical integration comparison by Charlie)

I get 3.41655 cm as the new water level for 7b, based on the results of the following numerical integration program, which uses successive approximations:

DEFDBL A-Z
pi = ATN(1) * 4

CLS
vWhole = pi * 9 * 5 / 3: PRINT vWhole

angle = ATN(3 / 5): PRINT angle * 180 / pi
angle2 = 2 * angle
apex = 3 * COS(angle): PRINT apex

rise = .41655

DO
d = 3 + rise - 3 * COS(angle)

' y measured vertically from fattest part of circle

stp = .000001
vol = 0
FOR y = d TO apex STEP stp
y1 = y / COS(angle)
x = SQR(9 - y1 * y1)
ht = (apex - y) * TAN(angle) + (apex - y) / TAN(angle2)
area = 2 * x * ht * 2 / 3
vol = vol + area * stp
NEXT y

pRise = rise
rise = ((vWhole - vol) / 100)
PRINT rise
LOOP UNTIL pRise = rise

PRINT vWhole - vol

PRINT rise * 100

END

The submerged volume shows as 41.65521933254351, as does 100 times the rise in level, making the new level, rounded, 3.41655 cm.

The theory behind the calculation is given in my previous post, and the water level found using any given assumption about it is used as the next approximation to that value.  This converges to the above.

The initial value given was the result of a previous version, with   stp = .00001 having converged to a value that rounds to that; at 10 times the step size each iteration took less time.  Making the integration 10 times as accurate (1/10 the step size) did not change this value.

 Posted by Charlie on 2006-07-03 19:53:01 Please log in:

 Search: Search body:
Forums (0)