裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その1117)

2024年07月03日 | Julia

算額(その1117)

十 群馬県甘楽郡妙義町妙義 妙義神社 寛政9年(1797)
群馬県和算研究会:群馬の算額,上武印刷株式会社,高崎市,1987年3月31日.

四 岩手県花巻市南笹間 東光寺 慶応2年(1866)
山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.

http://www.wasan.jp/yamamura/yamamura.html

キーワード:累円,外円

大円の中に小円と初円を容れる。大円,小円と外接する円を初円と呼ぶ。初円が決まれば次の円(二円),また次の円(三円)と云うように,順次円(累円)が決まる。大円,小円,初円の直径がそれぞれ 168 寸,88 寸,14 寸のとき,次々に円を決めていくとき,円の直径が 3 寸になるのは初円を 1 番目として数えると何番目の円か。

算額(その676)も参照のこと。

小円の中心が x 軸上に来るようにして図を描く。
大円の半径と中心座標を R, (0, 0)
小円の半径と中心座標を r1, (R - r1, 0)
初円の半径と中心座標を r2, (x2, y2)
二円の半径と中心座標を r3, (x3, y3)
とおき,まず初円の中心座標を決定する。

include("julia-source.txt")

using SymPy
@syms R, r1, r2, x2, y2
#(R, r1, r2) = (168, 88, 14) .// 2
eq1 = (R - r1 - x2)^2 + y2^2 - (r1 + r2)^2
eq2 = x2^2 + y2^2 - (R - r2)^2
res2 = solve([eq1, eq2], (x2, y2))[2]

   ((-R^2 + R*r1 + R*r2 + r1*r2)/(-R + r1), 2*sqrt(-R*r1*r2*(-R + r1 + r2))/(-R + r1))

二円以降は漸化式のようにして,前の円の情報を元にして次の円の半径,中心座標を決定することができる。
以下の連立方程式は,前の円のパラメータから次の円のパラメータを求める。

@syms r3, x3, y3
(x2, y2) = res2
eq3 = (R - r1 - x3)^2 + y3^2 - (r1 + r3)^2
eq4 = x3^2 + y3^2 - (R - r3)^2
eq5 = (x2 - x3)^2 + (y2 - y3)^2 - (r2 + r3)^2
res3 = solve([eq3, eq4, eq5], (r3, x3, y3));

これを関数にすれば,累円のパラメータを順に決めることができる。注意点としては x 座標,y 座標の符号が切り替わるときに,用いる関係式が変わるということである。

nextcircle(r2, x2, y2, R=168/2, r1=88/2) = (R*r1*(R^4*r1^2*r2 - R^4*r2^3 - 2*R^3*r1^3*r2 - 2*R^3*r1^2*r2^2 + 2*R^3*r1*r2^3 + R^2*r1^4*r2 + 2*R^2*r1^3*r2^2 - 2*R^2*r1^2*r2^3 + 2*R*r1^3*r2^3 - r1^4*r2^3 + 2*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)))/(R^5*r1^3 - 3*R^5*r1^2*r2 + 3*R^5*r1*r2^2 - R^5*r2^3 - 2*R^4*r1^4 + 7*R^4*r1^3*r2 - 4*R^4*r1^2*r2^2 - R^4*r1*r2^3 + R^3*r1^5 - 7*R^3*r1^4*r2 + 2*R^3*r1^3*r2^2 + 3*R^2*r1^5*r2 - 4*R^2*r1^4*r2^2 + 3*R*r1^5*r2^2 + R*r1^4*r2^3 + r1^5*r2^3), R*(-R^6*r1^3 + 3*R^6*r1^2*r2 - 3*R^6*r1*r2^2 + R^6*r2^3 + 3*R^5*r1^4 - 9*R^5*r1^3*r2 + 7*R^5*r1^2*r2^2 - R^5*r1*r2^3 - 3*R^4*r1^5 + 13*R^4*r1^4*r2 - 8*R^4*r1^3*r2^2 + R^3*r1^6 - 11*R^3*r1^5*r2 + 6*R^3*r1^4*r2^2 + 4*R^2*r1^6*r2 - 5*R^2*r1^5*r2^2 - R^2*r1^4*r2^3 + 3*R*r1^6*r2^2 + R*r1^5*r2^3 + 2*R*r1*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)) + 2*r1^2*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)))/(-R^6*r1^3 + 3*R^6*r1^2*r2 - 3*R^6*r1*r2^2 + R^6*r2^3 + 3*R^5*r1^4 - 10*R^5*r1^3*r2 + 7*R^5*r1^2*r2^2 - 3*R^4*r1^5 + 14*R^4*r1^4*r2 - 6*R^4*r1^3*r2^2 - R^4*r1^2*r2^3 + R^3*r1^6 - 10*R^3*r1^5*r2 + 6*R^3*r1^4*r2^2 + 3*R^2*r1^6*r2 - 7*R^2*r1^5*r2^2 - R^2*r1^4*r2^3 + 3*R*r1^6*r2^2 + r1^6*r2^3), -2*R*r1*sqrt(r2*(R*r1*(R - r1 - r2)*(-R^2*r1 + R^2*r2 + R*r1^2 - 2*R*r1*r2 + r1^2*r2)^2 + (-R^2*r1 + R^2*r2 + R*r1^2 - R*r1*r2 + r1^2*r2)*(R^4*r1^2 - 2*R^4*r1*r2 + R^4*r2^2 - 2*R^3*r1^3 + 6*R^3*r1^2*r2 + R^2*r1^4 - 6*R^2*r1^3*r2 - 2*R^2*r1^2*r2^2 + 2*R*r1^4*r2 + r1^4*r2^2)))/(R^4*r1^2 - 2*R^4*r1*r2 + R^4*r2^2 - 2*R^3*r1^3 + 6*R^3*r1^2*r2 + R^2*r1^4 - 6*R^2*r1^3*r2 - 2*R^2*r1^2*r2^2 + 2*R*r1^4*r2 + r1^4*r2^2) + 2*R*r1*sqrt(R*r1*r2*(R - r1 - r2))*(R*r1 - R*r2 + r1*r2)/(-R^3*r1^2 + 2*R^3*r1*r2 - R^3*r2^2 + R^2*r1^3 - 4*R^2*r1^2*r2 - R^2*r1*r2^2 + 2*R*r1^3*r2 + R*r1^2*r2^2 + r1^3*r2^2));

nextcircle(14/2, 61.6, -46.2)

   (12.157894736842104, 45.09473684210526, -55.92631578947368)

nextcircle(12.157894736842104, 45.09473684210526, -55.92631578947368)

   (23.099999999999962, 10.079999999999686, -60.05999999999997)

nextcircle2(23.099999999999962, 10.079999999999686, -60.05999999999997)

   (38.50000000000007, -39.200000000000394, -23.100000000000193)

nextcircle2(38.50000000000007, -39.200000000000394, -23.100000000000193)

   (32.99999999999988, -21.59999999999963, 46.20000000000031)

3 番目の符号の切り替わり。

@syms r7, x7, y7
@syms r8, x8, y8
eq6 = (R - r1 - x8)^2 + y8^2 - (r1 + r8)^2
eq7 = x8^2 + y8^2 - (R - r8)^2
eq8 = (x7 - x8)^2 + (y7 - y8)^2 - (r7 + r8)^2
res3 = solve([eq6, eq7, eq8], (r8, x8, y8))[1];

nextcircle3(r7, x7, y7, R=168/2, r1=88/2) = ((R^5 - 2*R^4*r1 + R^4*r7 - 3*R^4*x7 + R^3*r1^2 - 2*R^3*r1*r7 + 4*R^3*r1*x7 - R^3*r7^2 - 2*R^3*r7*x7 + 3*R^3*x7^2 + R^3*y7^2 + R^2*r1^2*r7 - R^2*r1^2*x7 + 2*R^2*r1*r7^2 + 4*R^2*r1*r7*x7 - 2*R^2*r1*x7^2 + 2*R^2*r1*y7^2 - R^2*r7^3 + R^2*r7^2*x7 + R^2*r7*x7^2 + R^2*r7*y7^2 - R^2*x7^3 - R^2*x7*y7^2 - R*r1^2*r7^2 - 2*R*r1^2*r7*x7 - R*r1^2*x7^2 - 3*R*r1^2*y7^2 + 2*R*r1*r7^3 - 2*R*r1*r7*x7^2 - 2*R*r1*r7*y7^2 - 2*R*y7*sqrt(R*r1*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 - 2*R^2*r1*r7 + 2*R^2*r1*x7 - 4*R^2*r7*x7 + 2*R*r1*r7^2 + 4*R*r1*r7*x7 + 2*R*r1*x7^2 + 2*R*r1*y7^2 - 2*R*r7^3 - 2*R*r7^2*x7 + 2*R*r7*x7^2 + 2*R*r7*y7^2 + 2*R*x7^3 + 2*R*x7*y7^2 + 2*r1*r7^3 + 2*r1*r7^2*x7 - 2*r1*r7*x7^2 - 2*r1*r7*y7^2 - 2*r1*x7^3 - 2*r1*x7*y7^2 - r7^4 + 2*r7^2*x7^2 + 2*r7^2*y7^2 - x7^4 - 2*x7^2*y7^2 - y7^4)) - r1^2*r7^3 - r1^2*r7^2*x7 + r1^2*r7*x7^2 + r1^2*r7*y7^2 + r1^2*x7^3 + r1^2*x7*y7^2 + 2*r1*y7*sqrt(R*r1*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 - 2*R^2*r1*r7 + 2*R^2*r1*x7 - 4*R^2*r7*x7 + 2*R*r1*r7^2 + 4*R*r1*r7*x7 + 2*R*r1*x7^2 + 2*R*r1*y7^2 - 2*R*r7^3 - 2*R*r7^2*x7 + 2*R*r7*x7^2 + 2*R*r7*y7^2 + 2*R*x7^3 + 2*R*x7*y7^2 + 2*r1*r7^3 + 2*r1*r7^2*x7 - 2*r1*r7*x7^2 - 2*r1*r7*y7^2 - 2*r1*x7^3 - 2*r1*x7*y7^2 - r7^4 + 2*r7^2*x7^2 + 2*r7^2*y7^2 - x7^4 - 2*x7^2*y7^2 - y7^4)))/(2*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 + R^2*r1^2 - 4*R^2*r1*r7 + R^2*r7^2 - 2*R^2*r7*x7 + R^2*x7^2 + 2*R*r1^2*r7 + 2*R*r1^2*x7 - 2*R*r1*r7^2 + 2*R*r1*x7^2 + 4*R*r1*y7^2 + r1^2*r7^2 + 2*r1^2*r7*x7 + r1^2*x7^2)), (R^5 - 4*R^4*r1 + 3*R^4*r7 - R^4*x7 + 3*R^3*r1^2 - 8*R^3*r1*r7 + 2*R^3*r1*x7 + 3*R^3*r7^2 - 2*R^3*r7*x7 - R^3*x7^2 - R^3*y7^2 + 5*R^2*r1^2*r7 + 3*R^2*r1^2*x7 - 4*R^2*r1*r7^2 + 4*R^2*r1*y7^2 + R^2*r7^3 - R^2*r7^2*x7 - R^2*r7*x7^2 - R^2*r7*y7^2 + R^2*x7^3 + R^2*x7*y7^2 + R*r1^2*r7^2 + 2*R*r1^2*r7*x7 + R*r1^2*x7^2 - 3*R*r1^2*y7^2 - 2*R*r1*r7^2*x7 + 2*R*r1*x7^3 + 2*R*r1*x7*y7^2 + 2*R*y7*sqrt(R*r1*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 - 2*R^2*r1*r7 + 2*R^2*r1*x7 - 4*R^2*r7*x7 + 2*R*r1*r7^2 + 4*R*r1*r7*x7 + 2*R*r1*x7^2 + 2*R*r1*y7^2 - 2*R*r7^3 - 2*R*r7^2*x7 + 2*R*r7*x7^2 + 2*R*r7*y7^2 + 2*R*x7^3 + 2*R*x7*y7^2 + 2*r1*r7^3 + 2*r1*r7^2*x7 - 2*r1*r7*x7^2 - 2*r1*r7*y7^2 - 2*r1*x7^3 - 2*r1*x7*y7^2 - r7^4 + 2*r7^2*x7^2 + 2*r7^2*y7^2 - x7^4 - 2*x7^2*y7^2 - y7^4)) - r1^2*r7^3 - r1^2*r7^2*x7 + r1^2*r7*x7^2 + r1^2*r7*y7^2 + r1^2*x7^3 + r1^2*x7*y7^2 + 2*r1*y7*sqrt(R*r1*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 - 2*R^2*r1*r7 + 2*R^2*r1*x7 - 4*R^2*r7*x7 + 2*R*r1*r7^2 + 4*R*r1*r7*x7 + 2*R*r1*x7^2 + 2*R*r1*y7^2 - 2*R*r7^3 - 2*R*r7^2*x7 + 2*R*r7*x7^2 + 2*R*r7*y7^2 + 2*R*x7^3 + 2*R*x7*y7^2 + 2*r1*r7^3 + 2*r1*r7^2*x7 - 2*r1*r7*x7^2 - 2*r1*r7*y7^2 - 2*r1*x7^3 - 2*r1*x7*y7^2 - r7^4 + 2*r7^2*x7^2 + 2*r7^2*y7^2 - x7^4 - 2*x7^2*y7^2 - y7^4)))/(2*(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 + R^2*r1^2 - 4*R^2*r1*r7 + R^2*r7^2 - 2*R^2*r7*x7 + R^2*x7^2 + 2*R*r1^2*r7 + 2*R*r1^2*x7 - 2*R*r1*r7^2 + 2*R*r1*x7^2 + 4*R*r1*y7^2 + r1^2*r7^2 + 2*r1^2*r7*x7 + r1^2*x7^2)), 2*R*r1*y7*(R*r1 - R*r7 - R*x7 + r1*r7 + r1*x7 - r7^2 + x7^2 + y7^2)/(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 + R^2*r1^2 - 4*R^2*r1*r7 + R^2*r7^2 - 2*R^2*r7*x7 + R^2*x7^2 + 2*R*r1^2*r7 + 2*R*r1^2*x7 - 2*R*r1*r7^2 + 2*R*r1*x7^2 + 4*R*r1*y7^2 + r1^2*r7^2 + 2*r1^2*r7*x7 + r1^2*x7^2) - sqrt(-R*r1*(-R^2 - 2*R*r7 - r7^2 + x7^2 + y7^2)*(R^2 - 2*R*r1 - 2*R*x7 + 2*r1*r7 + 2*r1*x7 - r7^2 + x7^2 + y7^2))*(-R^2 + R*r1 - R*r7 + R*x7 + r1*r7 + r1*x7)/(R^4 - 2*R^3*r1 + 2*R^3*r7 - 2*R^3*x7 + R^2*r1^2 - 4*R^2*r1*r7 + R^2*r7^2 - 2*R^2*r7*x7 + R^2*x7^2 + 2*R*r1^2*r7 + 2*R*r1^2*x7 - 2*R*r1*r7^2 + 2*R*r1*x7^2 + 4*R*r1*y7^2 + r1^2*r7^2 + 2*r1^2*r7*x7 + r1^2*x7^2));

nextcircle3(32.99999999999988, -21.59999999999963, 46.20000000000031)

   (17.769230769230685, 27.138461538461794, 60.41538461538458)

nextcircle3(17.769230769230685, 27.138461538461794, 60.41538461538458)

   (9.624999999999968, 53.20000000000012, 51.97499999999994)

nextcircle3(9.624999999999968, 53.20000000000012, 51.97499999999994)

   (5.774999999999992, 65.52000000000011, 42.73499999999996)

nextcircle3(5.774999999999992, 65.52000000000011, 42.73499999999996)

   (3.786885245901612, 71.88196721311486, 35.59672131147536)

nextcircle3(3.786885245901612, 71.88196721311486, 35.59672131147536)

   (2.6551724137930997, 75.50344827586207, 30.268965517241313)

nextcircle3(2.6551724137930997, 75.50344827586207, 30.268965517241313)

   (1.9576271186440766, 77.73559322033896, 26.232203389830453)

nextcircle3(1.9576271186440766, 77.73559322033896, 26.232203389830453)

   (1.4999999999999876, 79.20000000000003, 23.099999999999948)

半径が 1.5 の円が出現した。これは,初円を 1 番目としたときの 12番目の円である。

4番目の円から12番目の円までの半径はすべて,実は分子が 231 の分数である。分母は 6, 7, 13, 24, 40, 61, 87, 118, 154 である。
分母は第 2 階差数列で,n 番目の項が 5//2*n^2 - 13//2*n + 10 の数列になっている。

for n = 1:9
   分母 = 5//2*n^2 - 13//2*n + 10
   @printf("n = %g;  %g 番目の円:  分母 = %g; 半径 = %g\n", n, n + 3, 分母, 231/分母)
end

   n = 1;   4 番目の円:  分母 =   6; 半径 = 38.5
   n = 2;   5 番目の円:  分母 =   7; 半径 = 33
   n = 3;   6 番目の円:  分母 =  13; 半径 = 17.7692
   n = 4;   7 番目の円:  分母 =  24; 半径 = 9.625
   n = 5;   8 番目の円:  分母 =  40; 半径 = 5.775
   n = 6;   9 番目の円:  分母 =  61; 半径 = 3.78689
   n = 7;  10 番目の円:  分母 =  87; 半径 = 2.65517
   n = 8;  11 番目の円:  分母 = 118; 半径 = 1.95763
   n = 9;  12 番目の円:  分母 = 154; 半径 = 1.5

なお,初円,二円,三円も分数で表される。

231/33, 231/19, 231/10

   (7.0, 12.157894736842104, 23.1)

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (R, r1, r2) = (168, 88, 14) ./ 2
   (x2, y2) = ((-R^2 + R*r1 + R*r2 + r1*r2)/(-R + r1), 2*sqrt(-R*r1*r2*(-R + r1 + r2))/(-R + r1))
   (r3, x3, y3) = (R*r1*(R^4*r1^2*r2 - R^4*r2^3 - 2*R^3*r1^3*r2 - 2*R^3*r1^2*r2^2 + 2*R^3*r1*r2^3 + R^2*r1^4*r2 + 2*R^2*r1^3*r2^2 - 2*R^2*r1^2*r2^3 + 2*R*r1^3*r2^3 - r1^4*r2^3 + 2*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)))/(R^5*r1^3 - 3*R^5*r1^2*r2 + 3*R^5*r1*r2^2 - R^5*r2^3 - 2*R^4*r1^4 + 7*R^4*r1^3*r2 - 4*R^4*r1^2*r2^2 - R^4*r1*r2^3 + R^3*r1^5 - 7*R^3*r1^4*r2 + 2*R^3*r1^3*r2^2 + 3*R^2*r1^5*r2 - 4*R^2*r1^4*r2^2 + 3*R*r1^5*r2^2 + R*r1^4*r2^3 + r1^5*r2^3), R*(-R^6*r1^3 + 3*R^6*r1^2*r2 - 3*R^6*r1*r2^2 + R^6*r2^3 + 3*R^5*r1^4 - 9*R^5*r1^3*r2 + 7*R^5*r1^2*r2^2 - R^5*r1*r2^3 - 3*R^4*r1^5 + 13*R^4*r1^4*r2 - 8*R^4*r1^3*r2^2 + R^3*r1^6 - 11*R^3*r1^5*r2 + 6*R^3*r1^4*r2^2 + 4*R^2*r1^6*r2 - 5*R^2*r1^5*r2^2 - R^2*r1^4*r2^3 + 3*R*r1^6*r2^2 + R*r1^5*r2^3 + 2*R*r1*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)) + 2*r1^2*sqrt(r2^2*(R^6*r1^2 - 2*R^6*r1*r2 + R^6*r2^2 - 4*R^5*r1^3 + 6*R^5*r1^2*r2 - 2*R^5*r1*r2^2 + 6*R^4*r1^4 - 8*R^4*r1^3*r2 + 3*R^4*r1^2*r2^2 - 4*R^3*r1^5 + 8*R^3*r1^4*r2 - 4*R^3*r1^3*r2^2 + R^2*r1^6 - 6*R^2*r1^5*r2 + 3*R^2*r1^4*r2^2 + 2*R*r1^6*r2 - 2*R*r1^5*r2^2 + r1^6*r2^2))*sqrt(R*r1*r2*(R - r1 - r2)))/(-R^6*r1^3 + 3*R^6*r1^2*r2 - 3*R^6*r1*r2^2 + R^6*r2^3 + 3*R^5*r1^4 - 10*R^5*r1^3*r2 + 7*R^5*r1^2*r2^2 - 3*R^4*r1^5 + 14*R^4*r1^4*r2 - 6*R^4*r1^3*r2^2 - R^4*r1^2*r2^3 + R^3*r1^6 - 10*R^3*r1^5*r2 + 6*R^3*r1^4*r2^2 + 3*R^2*r1^6*r2 - 7*R^2*r1^5*r2^2 - R^2*r1^4*r2^3 + 3*R*r1^6*r2^2 + r1^6*r2^3), -2*R*r1*sqrt(r2*(R*r1*(R - r1 - r2)*(-R^2*r1 + R^2*r2 + R*r1^2 - 2*R*r1*r2 + r1^2*r2)^2 + (-R^2*r1 + R^2*r2 + R*r1^2 - R*r1*r2 + r1^2*r2)*(R^4*r1^2 - 2*R^4*r1*r2 + R^4*r2^2 - 2*R^3*r1^3 + 6*R^3*r1^2*r2 + R^2*r1^4 - 6*R^2*r1^3*r2 - 2*R^2*r1^2*r2^2 + 2*R*r1^4*r2 + r1^4*r2^2)))/(R^4*r1^2 - 2*R^4*r1*r2 + R^4*r2^2 - 2*R^3*r1^3 + 6*R^3*r1^2*r2 + R^2*r1^4 - 6*R^2*r1^3*r2 - 2*R^2*r1^2*r2^2 + 2*R*r1^4*r2 + r1^4*r2^2) + 2*R*r1*sqrt(R*r1*r2*(R - r1 - r2))*(R*r1 - R*r2 + r1*r2)/(-R^3*r1^2 + 2*R^3*r1*r2 - R^3*r2^2 + R^2*r1^3 - 4*R^2*r1^2*r2 - R^2*r1*r2^2 + 2*R*r1^3*r2 + R*r1^2*r2^2 + r1^3*r2^2))
   (x2, y2) = (61.6, -46.2)
   (r3, x3, y3) = (12.157894736842104, 45.09473684210526, -55.92631578947368)
   (r4, x4, y4) = (23.099999999999962, 10.079999999999686, -60.05999999999997)
   (r5, x5, y5) = (38.50000000000007, -39.200000000000394, -23.100000000000193)
   (r6, x6, y6) = (32.99999999999988, -21.59999999999963, 46.20000000000031)
   (r7, x7, y7) = (17.769230769230685, 27.138461538461794, 60.41538461538458)
   (r8, x8, y8) = (9.624999999999968, 53.20000000000012, 51.97499999999994)
   (r9, x9, y9) = (5.774999999999992, 65.52000000000011, 42.73499999999996)
   (r10, x10, y10) = (3.786885245901612, 71.88196721311486, 35.59672131147536)
   (r11, x11, y11) = (2.6551724137930997, 75.50344827586207, 30.268965517241313)
   (r12, x12, y12) = (1.9576271186440766, 77.73559322033896, 26.232203389830453)
   (r13, x13, y13) = (1.4999999999999876, 79.20000000000003, 23.099999999999948)
   plot()
   circlef(0, 0, R)
   circlef(R - r1, 0, r1, 1)
   circlef(x2, y2, r2, 2)
   circlef(x3, y3, r3, 3)
   circlef(x4, y4, r4, 4)
   circlef(x5, y5, r5, 5)
   circlef(x6, y6, r6, 6)
   circlef(x7, y7, r7, 7)
   circlef(x8, y8, r8, 8)
   circlef(x9, y9, r9, 9)
   circlef(x10, y10, r10, 10)
   circlef(x11, y11, r11, 11)
   circlef(x12, y12, r12, 12)
   circlef(x13, y13, r13, 13)
   if more
       delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
       hline!([0], color=:gray80, lw=0.5)
       vline!([0], color=:gray80, lw=0.5)
       point(R - r1, 0, "小円:r1,(R-r1,0)", :white, :center, delta=-delta/2)
       point(x2, y2, "初円:r2,(x2,y2)", :white, :right, delta=-delta/2)
       point(x3, y3, "二円:r3,(x3,y3)", :white, :right, delta=-delta/2)
       point(x13, y13, "終円:r13,(x13,y13) ", :white, :right, delta=-delta/2)
   end
end;


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 算額(その1116) | トップ | 算額(その1118) »
最新の画像もっと見る

コメントを投稿

Julia」カテゴリの最新記事