circle cut into twelve equal-area rectangles

98 Views Asked by At

I want to cut circle into twelve equal-area rectangles 【Use the methods in the picture】(the length and width of each rectangle can be different). To make the area of ​​the rectangle is maximum, how to cut it? It is allowed for a rectangle of the configuration to have just one (or none) vertex on the boundary of the circle.And It is an industrial problem, so the result can be an approximate value. Sorry,my English is bad.

An example of 10 rectangles in a circle

2

There are 2 best solutions below

0
On

We can assume the circle has radius $1$ and is centered at the origin. By symmetry we will only consider the six rectangles above the axis. Let the height of the rectangle that has its base on the $x$ axis be $h_1$. The upper right corner is then $(\sqrt{1-h_1^2},h_1)$ and the area of the rectangle is $2h_1\sqrt{1-h_1^2}$ Let the height of the next rectangle be $h_2$. The upper corner is $(\sqrt{1-(h_1+h_2)^2},h_1+h_2)$ and the area is $2h_2\sqrt{1-(h_1+h_2)^2}$ Each succeeding rectangle has its own height and adds another term into the sum of the heights.

I made a spreadsheet to compute this.
enter image description here rect is just the number of the rectangle. height is input. The base is the $y$ coordinate of the bottom of the rectangle. It starts at $0$ and is accumulated as the total of the the heights. top is the $y$ coordinate of the top of the rectangle and is the base of that rectangle plus the height. width is $2\sqrt{1-top^2}$, the width of the rectangle that puts the upper corner on the circle. area is the area of the rectangle, $height*width$. err is the area of this rectangle minus the area of the previous one. You should be able to recreate the spreadsheet and can check that the values match.

$0.115$ is a pretty good guess for the starting width. $0.12$ does not work. If you want to find a larger area, put in a larger width for the first rectangle. Then click on the err of the second and use Goal Seek to set err to $0$ by varying the height of rectangle $2$. Once that is done, do the same for each rectangle in turn. If you put in too large a number the seek will fail somewhere along the way. You can do a binary search to find the greatest height of rectangle $1$ that works. Someone who has a 1D root finder they can use as a subroutine can automate this. I don't have one at hand.

If you just want to accept this solution, you have the height and width of each rectangle. No allowance has been made for the saw kerf.

0
On

I did a guided random walk to find a local maximum.

There are six points on the quarter-circle that define the six regions.

  • Start with angles equally spaced, at $(n/7)90^\circ$.
  • Calculate the six areas, record the smallest.
  • Loop

    • Adjust all six angles a little bit and calculate the new areas. Each angle is adjusted by a different amount, perhaps hundredths of a degree up or down.
    • If the minimum area is bigger, keep the new angles, otherwise reject them.
  • Always adjust the angles of the current record-holder, and repeat the loop many thousands of times.

I got the following list of angles in degrees: $$ 6.5809, 13.3936, 20.6918, 28.9075, 39.0501, 57.0951$$ with a common area of 0.2277