算額あれこれ

算額問題をコンピュータで解きます

算額(その2470)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円4個,半円,長方形
#Julia #SymPy #算額 #和算 #数学


長方形の中に,大円(半円)2 個,中円 2 個,小円 2 個を容れる。大円の直径が 3 寸のとき,中円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (x_1,\ 0)\)
小円の半径と中心座標を \(r_2,\ (0,\ r_1 - r_2)\)
中円の半径と中心座標を \(r_3,\ (0,\ r_3)\)
とおき,以下の連立方程式の解を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1, x1, r2, r3
eq1 = r1 - (2r2 + 2r3)
eq2 = x1^2 + (r1 - r2)^2 - (r1 + r2)^2
eq3 = x1^2 + r3^2 - (r1 + r3)^2
res = solve([eq1, eq2, eq3], (x1, r2, r3))[2]  # 2 of 2

    (2*sqrt(3)*r1/3, r1/3, r1/6)

# r2
ans_r2 = res[2]
@show(ans_r2)

    ans_r2 = r1/3

    \(\displaystyle \frac{r_{1}}{3}\)

中円の半径 \(r_2\) は,大円の半径 \(r_1\) の 1/3 倍である。
大円の直径が 3 寸のとき,中円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (x1, r2, r3) = (2*sqrt(3)*r1/3, r1/3, r1/6)
    plot([x1, x1, -x1, -x1, x1], [-r1, r1, r1, -r1, -r1], color=:green, lw=0.5)
    circle(x1, 0, r1, :magenta, beginangle=90, endangle=270)
    circle(-x1, 0, r1, :magenta, beginangle=-90, endangle=90)
    circle22(0, r1 - r2, r2)
    circle22(0, r3, r3, :blue)
    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(x1, 0, "大円:r1,(x1,0)", :magenta, :right, :vcenter, deltax=-delta)
        point(0, r1 - r2, "中円:r2\n(0,r1-r2)", :red, :center, delta=-delta)
        point(0, r3, "小円:r3:(0,r3)", :blue, :left, :vcenter, deltax=r3 + delta)
        point(0, r1, "(0,r1)", :green, :center, :bottom, delta=delta/2)
        point(0, 0, "(0,0)", :green, :center, delta=-delta)
    end
end;
draw(3, true)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2469)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円2個,半円,正三角形
#Julia #SymPy #算額 #和算 #数学


長方形の中に,大円(半円)2 個,小円 2 個,正三角形 1 個を容れる。大円の直径が 3 寸のとき,小円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (x_1,\ r_1)\)
小円の半径と中心座標を \(r_2,\ (r_2,\ 2r_1 - r_2)\)
正三角形の頂点座標を \( (a/2,\ 0),\ (0,\ \sqrt{3}a/2)\)
とおき,以下の連立方程式の解を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms a, r1, x1, r2
eq1 = (x1 - r2)^2 + (r1 - r2)^2 - (r1 + r2)^2
eq2 = dist2(0, √Sym(3)a/2, a/2, 0, x1, r1, r1)
eq3 = dist2(0, √Sym(3)a/2, a/2, 0, r2, 2r1 - r2, r2)
res = solve([eq1, eq2, eq3], (a, x1, r2))[2]

    (2*r1*(1 + sqrt(3))/3, r1*(1/3 + 2*sqrt(3)/3), r1/3)

# r2: 小円の半径
ans_r2 = res[3]
@show(ans_r2)

    ans_r2 = r1/3

    \(\displaystyle \frac{r_{1}}{3}\)

小円の半径 \(r_2\) は,大円の半径 \(r_1\) の 1/3 倍である。
大円の直径が 3 寸のとき,小円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (a, x1, r2) = (2*r1*(1 + sqrt(3))/3, r1*(1/3 + 2*sqrt(3)/3), r1/3)
    plot([x1, x1, -x1, -x1, x1], [0, 2r1, 2r1, 0, 0], color=:green, lw=0.5)
    plot!([a/2, 0, -a/2], [0, √3a/2, 0], color=:green, lw=0.5)
    circle(x1, r1, r1, :blue, beginangle=90, endangle=270)
    circle(-x1, r1, r1, :blue, beginangle=-90, endangle=90)
    circle2(r2, 2r1 - r2, r2)
    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(x1, r1, "大円:r1,(x1,r1)", :blue, :right, :vcenter, deltax=-delta)
        point(r2, 2r1 - r2, "小円:r2\n(r2,2r1-r2)", :red, :center, delta=-delta)
        point(a/2, 0, "(a/2,0)", :green, :center, delta=-delta)
        point(0, 2r1, "(0,2r1)", :green, :center, :bottom, delta=delta/2)
        point(0, 0, "(0,0)", :green, :center, delta=-delta)
        point(0, √3a/2, "(0,√3a/2)", :green, :right, :vcenter, deltax=-delta)
    end
end;
r1 = 3
draw(r1, true)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2468)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円5個,半円
#Julia, #SymPy, #算額, #和算,#数学


半円の中に,甲円 2 個,乙円 1 個,丙円 2 個を容れる。甲円の直径が 5 寸のとき,丙円の直径はいかほどか。

半円の半径と中心座標を \(R,\ (0,\ 0)\)
甲円の半径と中心座標を \(r_1,\ (r_1,\ r_1)\)
乙円の半径と中心座標を \(r_2,\ (0,\ R - r_2)\)
丙円の半径と中心座標を \(r_3,\ (x_3,\ y_3)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms R, r1::positive, r2, r3, x3, y3
eq1 = 2r1^2 - (R - r1)^2
eq2 = r1^2 + (r1 - R + r2)^2 - (r1 + r2)^2
eq3 = x3^2 + y3^2 - (R - r3)^2
eq4 = x3^2 + (R - r2 - y3)^2 - (r2 + r3)^2
eq5 = (r1 - x3)^2 + (r1 - y3)^2 - (r1 + r3)^2;

eq1, eq2, eq3, eq4 を解いて,\(R,\ r_2,\ x_3, y_3\) を求める。

res = solve([eq1, eq2, eq3, eq4], (R, r2, x3, y3))[4]  # 4 of 4

    (r1*(1 + sqrt(2)), r1*(-1 + sqrt(2)), sqrt(r3*(2*r1 - r3)), r1 + sqrt(2)*(r1 - r3))

得られた解を eq5 に代入し新たな方程式 eq5_2 とする。

eq5_2 = eq5(R => res[1], r2 => res[2], x3 => res[3], y3 => res[4]) |> factor

    \(2 r_{1} \left(r_{1} - 2 r_{3} - \sqrt{2 r_{1} r_{3} - r_{3}^{2}}\right)\)

eq5_2 を解いて \(r_3\) を得る。

# r3
ans_r3 = solve(eq5_2, r3)[1]

    \(\displaystyle \frac{r_{1}}{5}\)

丙円の半径 \(r_3\) は甲円の半径 \(r_1\) の 1/5 倍である。
甲円の直径が 5 寸のとき,丙円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    r3 = r1/5
    (R, r2, x3, y3) = (r1*(1 + √2), r1*(√2 - 1), sqrt(r3*(2r1 - r3)), r1 + √2(r1 - r3))
    println( (R, r2, r3, x3, y3))
    plot()
    circle(0, 0, R, :green, beginangle=0, endangle=180)
    circle2(r1, r1, r1, :magenta)
    circle(0, R - r2, r2, :red)
    circle2(x3, y3, r3, :blue)
    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(0, R, "(0,R)", :green, :center, :bottom, delta=delta/2)
        point(0, 0, "外円:R,(0,0)", :green, :center, delta=-delta)
        point(r1, r1, "甲円:r1,(r1,r1)", :magenta, :center, delta=-delta)
        point(0, R - r2, "乙円:r2\n(0,R-r2)", :red, :center, delta=-delta)
        point(x3, y3, "丙円:r3,(x3,y3)", :blue, :left, :bottom, delta=r3)
    end
end;
r1 = 5/2
draw(r1, true)

    (6.035533905932738, 1.0355339059327378, 0.5, 1.5, 5.32842712474619)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2467)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円5個,直線上
#Julia, #SymPy, #算額, #和算,#数学


直線上に大円 2 個が交わっており,小円 3 個を容れる。大円の直径が 6 寸のとき,小円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (x_1,\ r_1)\)
小円の半径と中心座標を \(r_2,\ (0,\ r_2),\ (0,\ r_1 \pm r_2)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1, x1, r2
eq1 = x1^2 + r2^2 - (r1 - r2)^2
eq2 = x1^2 + (r1 - r2)^2 - (r1 + r2)^2
res = solve([eq1, eq2], (r2, x1))[2]  # 2 of 2

    (r1/6, sqrt(6)*r1/3)

# r2
res[1]

    \(\displaystyle \frac{r_{1}}{6}\)

小円の半径 \(r_2\) は大円の半径 \(r_1\) の 1/6 倍である。
大円の直径が 6 寸のとき,小円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, x1) = r1.*(1/6, √6/3)
    @printf("大円の直径が %.15g のとき,小円の直径は %.15g である。\n", 2r1, 2r2)
    plot()
    circle2(x1, r1, r1)
    circle(0, r1 + r2, r2, :blue)
    circle(0, r1 - r2, r2, :blue)
    circle(0, r2, r2, :blue)
    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(x1, r1, "大円:r1,(x1,r1)", :red, :left, :vcenter, deltax=delta)
        point(0, r1 + r2, "小円:r2,(0,r1+r2)", :blue, :right, :vcenter, deltax=-r2 - delta)
        point(0, r1 - r2, "小円:r2,(0,r1-r2)", :blue, :right, :vcenter, deltax=-r2 - delta)
        point(0, r2, "小円:r2,(0,r2)", :blue, :right, :bottom, delta=delta, deltax=-r2 - 2delta)
        point(0, 0, "(0,0)", :black, :center, delta=-delta)
    end
end;
r1 = 6/2
draw(r1, true)

    大円の直径が 6 のとき,小円の直径は 1 である。

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2466)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円9個,直線上
#Julia, #SymPy, #算額, #和算,#数学


直線上に大円 2 個が交わっており,小円 1 個,甲円 6 個を容れる。大円の直径が 6 寸のとき,甲円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (x_1,\ r_1)\)
小円の半径と中心座標を \(r_2,\ (0,\ r_1)\)
甲円の半径と中心座標を \(r_3,\ (0,\ r_1 - r_2 - r_3),\ (r_2 - r_3,\ y_3)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1, x1, r2, r3, y3
x1 = r1 - r2
eq1 = x1^2 + (r2 + r3)^2 - (r1 - r3)^2
eq2 = (r1 - 2r2 +  r3)^2 + (r1 - y3)^2 - (r1 - r3)^2
eq3 = (2x1 - r1 + 2r2 - r3)^2 + (r1 - y3)^2 - (r1 + r3)^2;

res = solve([eq1, eq2, eq3], (r2, r3, y3))[2]  # 2 of 4

    (r1/2, r1/6, r1*(1 - sqrt(6)/3))

# r3
res[2]

    \(\displaystyle \frac{r_{1}}{6}\)

甲円の半径 \(r_3\) は大円の半径 \(r_1\) の 1/6 倍である。
大円の直径が 7 寸のとき,甲円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, r3, y3) = (r1/2, r1/6, r1*(1 - sqrt(6)/3))
    x1 = r1 - r2
    @printf("大円の直径が %.15g のとき,甲円の直径は %.15g である。\n", 2r1, 2r3)
    plot()
    circle2(x1, r1, r1)
    circle(0, r1, r2, :blue)
    circle(0, r1 - r2 - r3, r3, :green)
    circle2(r2 - r3, y3, r3, :green)
    circle(0, r1 + r2 + r3, r3, :green)
    circle2(r2 - r3, 2r1 - y3, r3, :green)
    segment(r2, 0, r2, 2r1)
    segment(-r2, 0, -r2, 2r1)
    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(x1, r1, "大円:r1,(x1,r1)", :red, :left, :vcenter, deltax=delta)
        point(0, r1, "小円:r2,(0,r1)", :blue, :center, :bottom, delta=delta)
        point(0, r1 - r2 - r3, "甲円:r2,(0,r1-r2-r3)", :green, :left, :vcenter, deltax=r2 + delta)
        point(r2 - r3, y3, "甲円:r2,(r2-r3,y3)", :green, :left, :vcenter, deltax=r3 + delta)
        point(0, 0, "(0,0)", :black, :center, delta=-delta)
    end
end;
r1 = 6/2
draw(r1, true)

    大円の直径が 6 のとき,甲円の直径は 1 である。

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2465)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円6個
#Julia, #SymPy, #算額, #和算,#数学


大円 3 個が交わっており,小円 3 個を容れる。大円の直径が 7 寸のとき,小円の直径はいかほどか。

大円の半径と中心座標を \(r_1,\ (0,\ r1),\ (\sqrt{3}r_1,\ -r_1/2)\)
小円の半径と中心座標を \(r_2,\ (x_2,\ x_2/\sqrt{3})\)
とおき,以下の連立方程式を解いて \(r_2\) が与えられたときの \(r_1\) を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1::positive, x1::positive, y1::negative, r2::positive, x2::positive, y2::negative
x1 = √Sym(3)r1/2
y1 = -r1/2
y2 = -x2/√Sym(3)
eq1 = x1^2 + (2r1 - r2 - y1)^2 - (r1 + r2)^2
eq2 = x2^2 + (r1 - y2)^2 - (r1 + r2)^2
res = solve([eq1, eq2], (r2, x2))[1]

    (6*r1/7, 4*sqrt(3)*r1/7)

# r2
res[1]

    \(\displaystyle \frac{6 r_{1}}{7}\)

小円の半径 \(r_2\) は大円の半径 \(r_1\) の 7/6 倍である。
大円の直径が 7 寸のとき,小円の直径は 6 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, x2) = r1.*(6/7, 4√3/7)
    y2 = -x2/√3
    x1 = √3r1/2
    y1 = -r1/2
    @printf("大円の直径が %.15g のとき,小円の直径は %.15g である。\n", 2r1, 2r2)
    plot()
    rotate(0, r1, r1)
    rotate(0, 2r1 - r2, r2, :blue)
    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(0, r1, "大円:r1,(0,r1)", :red, :center, delta=-delta/2)
        point(0, 2r1 - r2, "小円:r2,(0,2r1-r2)", :blue, :center, :bottom, delta=delta)
        point(x1, y1, "(x1,y1)", :red, :left, :bottom, delta=delta)
        point(x2, y2, "(x2,y2)", :blue, :left, delta=-delta)
    end
end;
draw(7, true)

    大円の直径が 14 のとき,小円の直径は 12 である。

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2464)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円7個,外円,二等辺三角形
#Julia #SymPy #算額 #和算 #数学


外円の中に二等辺三角形を設け,甲円 4 個,乙円 2 個を容れる。甲円の直径が 8 寸のとき,乙円の直径はいかほどか。

外円の半径と中心座標を \(R,\ (0,\ 0)\)
外円の円周上にある二等辺三角形の頂点座標を \( (\sqrt{R^2 - y^2},\ y),\ (0,\ R)\)
甲円の半径と中心座標を \(r_1,\ (r_1,\ y + r_1),\ (r_1,\ y - r_1)\)
乙円の半径と中心座標を \(r_2,\ (x_2,\ y_2)\)
とおき,以下の連立方程式の数値解を求める。

include("julia-source.txt");  # julia-source.txt ソース
function driver(r1)
    function H(u)
        function parameters()
            eq1 = r1^2 + (y - r1)^2 - (R - r1)^2
            eq2 = x2^2 + y2^2 - (R - r2)^2
            eq3 = dist3(0, R, sqrt(R^2 - y^2), y, r1, y +  r1, r1)
            eq4 = dist3(0, R, sqrt(R^2 - y^2), y, x2, y2, r2)
            eq5 = (R - y)/sqrt(R^2 - y^2) - x2/y2
            return [eq1, eq2, eq3, eq4, eq5]
        end;
        (R, y, r2, x2, y2) = u
        return parameters()
    end;
    iniv = BigFloat[3.1, -0.88, 0.63, 2.0, 1.5].*r1
    res = nls(H, ini=iniv)
    res[2] || println("収束していない")
    return res[1]
end;

甲円の半径 \(r_1\) に任意の値を与えて解を求め,比 \(p = r_2/r_1\) を求める。

r1 = pi
(R, y, r2, x2, y2) = driver(r1)
(R, y, r2, x2, y2) |> println

    (9.817477042468104, -2.748893571891069, 1.9634954084936207, 6.283185307179586, 4.71238898038469)

println(r2)

    1.9634954084936207

p = r2/r1

    0.625

sympy.nsimplify(r2/r1)

    \(\displaystyle \frac{5}{8}\)

乙円の半径 \(r_2\) は,甲円の半径 \(r_1\) の 5/8 倍である。
甲円の直径が 8 寸のとき,乙円の直径は 5 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (R, y, r2, x2, y2) = driver(r1)
    x = sqrt(R^2 - y^2)
    plot([x, 0, -x, x], [y, R, y, y], color=:green, lw=0.5)
    circle(0, 0, R, :magenta)
    circle2(r1, y + r1, r1)
    circle2(r1, y - r1, r1)
    circle2(x2, y2, r2, :blue)
    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(0, 0, "外円:R,(0,0)", :magenta, :right, :vcenter, deltax=-delta)
        point(r1, y + r1, "甲円:r1,(r1,y+r1)", :red, :center, delta=-delta)
        point(r1, y - r1, "甲円:r1,(r1,y-r1)", :red, :center, delta=-delta)
        point(x2, y2, "乙円:r2\n(x2,y2)", :blue, :center, delta=-delta)
        point(0, y, "(0,y)", :green, :center, delta=-delta)
        point(x, y, "(x,y)", :green, :right, delta=-delta)
    end
end;
r1 = 8/2
draw(r1, true)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2463)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円5個,長方形,斜線
#Julia #SymPy #算額 #和算 #数学


長方形の中に斜線を 2 本引き,大円 1 個,小円 4 個を容れる。大円の直径が 4 寸のとき,小円の直径はいかほどか。

長方形の長辺,短辺を \(b,\ h;\ h = 2r_1\)
斜線と長方形の長辺の交点座標を \( (a,\ 0)\)
大円の半径と中心座標を \(r_1,\ (0,\ r_1)\)
小円の半径と中心座標を \(r_2,\ (b - r_2,\ r_2),\ (2\sqrt{r_1 r_2},\ h - r_2)\)
とおき,以下の連立方程式の解を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms a, b, h, r1, r2
h = 2r1
eq1 = r1^2 - a*b  # 算法助術-公式82
# eq2 = (b - a) + h - sqrt( (b - a)^2 + h^2) - 2r2
eq2 = (b - a) + h - (a + b) - 2r2  # 斜線の長さは a + b
eq3 = r2/(b - 2sqrt(r1*r2)) - r1/b;
res = solve([eq1, eq2, eq3], (r2, a, b))[1];

# r2: 小円の半径
ans_r2 = res[1]

    \(\displaystyle \frac{r_{1}}{4}\)

小円の半径は,大円の半径の 1/4 倍である。
大円の直径が 4 寸のとき,小円の直径は 1 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, a, b) = (r1/4, 3*r1/4, 4*r1/3)
    @printf("大円の直径が %.15g のとき,小円の直径は %.15g である。\n", 2r1, 2r2)
    h = 2r1
    plot([b, b, -b, -b, b], [0, h, h, 0, 0], color=:green, lw=0.5)
    segment(a, 0, b, h)
    segment(-a, 0, -b, h)
    circle(0, h/2, r1, :blue)
    circle2(2sqrt(r1*r2), h - r2, r2)
    circle2(b - r2, r2, r2)
    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(0, r1, "大円:r1,(0,r1)", :blue, :center, delta=-delta)
        point(b - r2, r2, "小円:r2\n(b-r2,r2)", :red, :center, delta=-delta)
        point(2sqrt(r1*r2), h - r2, "小円:r2,(2sqrt(r1*r2),h-r2)", :red, :right, :bottom, delta=r2 + delta/2, deltax=4delta)
        point(a, 0, "(a,0)", :green, :center, delta=-delta)
        point(b, 0, "(b,0)", :green, :center, delta=-delta)
        point(b, h, "(b,h)", :green, :center, :bottom, delta=delta/2)
        point(0, 0, "(0,0)", :green, :center, delta=-delta)
    end
end;
r1 = 4/2
draw(r1, true)

    大円の直径が 4 のとき,小円の直径は 1 である。

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2462)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円5個,正方形,斜線
#Julia #SymPy #算額 #和算 #数学


正方形の中に斜線を 4 本引き,大円 4 個,小円 1 個を容れる。大円の直径が 5 寸のとき,小円の直径はいかほどか。

正方形の一辺の長さを \(a\)
大円の半径と中心座標を \(r_1,\ (a/2 - r_1,\ 0)\)
小円の半径と中心座標を \(r_2,\ (0,\ 0)\)
とおき,以下の連立方程式の解を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms a::positive, r1::positive, r2::positive
eq1 = dist2(0, 2r1 - a/2,  a/2, a/2, a/2 - r1, 0, r1)
eq2 = dist2(0, 2r1 - a/2,  a/2, a/2, 0, 0, r2)
res = solve([eq1, eq2], (r2, a))[2]  # 2 of 2;

    (3*r1/5, 6*r1)

# r2: 小円の半径
ans_r2 = res[1]

    \(\displaystyle \frac{3 r_{1}}{5}\)

小円の半径は,大円の半径の 3/5 倍である。
大円の直径が 5 寸のとき,小円の直径は 3 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, a) = r1.*(3/5, 6)
    plot([1, 1, -1, -1, 1].*a/2, [-1, 1, 1, -1, -1].*a/2, color=:green, lw=0.5)
    plot!([a/2, 0, -a/2], [-a/2, a/2 - 2r1, -a/2], color=:green, lw=0.5)
    plot!([a/2, 0, -a/2], [a/2, -a/2 + 2r1, a/2], color=:green, lw=0.5)
    circle42(0, a/2 - r1, r1, :blue)
    circle(0, 0, r2)
    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(a/2, a/2, "(a/2,a/2)", :green, :right, :bottom, delta=0.4delta)
        point(a/2 - r1, 0, "大円:r1,(a/2-r1,0)", :blue, :center, delta=-delta)
        point(0, 0, "小円:r2\n(0,0)", :red, :center,  delta=-delta)
        #adjust_xlims!(right=5delta)
    end
end;
draw(5, true)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2461)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円2個,四分円,正方形
#Julia #SymPy #算額 #和算 #数学


正方形の中に甲円 1 個,乙円 1 個,四分円 2 個,小正方形 1 個を容れる。甲円の直径が 39 寸のとき,乙円の直径はいかほどか。

正方形の一辺の長さを \(a,\ b\)
甲円の半径と中心座標を \(r_1,\ (0,\ b + r_1)\)
乙円の半径と中心座標を \(r_2,\ (0,\ a - r_2)\)
とおき,以下の連立方程式の解を求める。

include("julia-source.txt");  # julia-source.txt ソース
@syms a::positive, b::positive, R::positive, r1::positive, r2::positive
R = a
eq1 = (a/2)^2 + (b + r1)^2 - (R - r1)^2
eq2 = (a/2)^2 + (a - r2)^2 - (R + r2)^2
eq3 = (a/2 + b/2)^2 + b^2 - R^2
res = solve([eq1, eq2, eq3],(r2, a, b))[1]

    (20*r1/39, 320*r1/39, 64*r1/13)

# r2: 乙円の半径
ans_r2 = res[1]

    \(\displaystyle \frac{20 r_{1}}{39}\)

乙円の半径は,甲円の半径の 20/39 倍である。
甲円の直径が 39 寸のとき,乙円の直径は 20 寸である。

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, a, b) = r1.*(20/39, 320/39, 64/13)
    R = a
    println( (r2, a, b))
    plot([1, 1, -1, -1, 1].*a/2, [0, 1, 1, 0, 0].*a, color=:green, lw=0.5)
    plot!([1, 1, -1, -1, 1].*b/2, [0, 1, 1, 0, 0].*b, color=:green, lw=0.5)
    circle(a/2, 0, R, :magenta,  beginangle=90, endangle=180)
    circle(-a/2, 0, R, :magenta,  beginangle=0, endangle=90)
    circle(0, a - r2, r2, :blue)
    circle(0, b + r1, r1)
    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(0, 0, "(0,0)", :green, :center, delta=-delta)
        point(b/2, 0, "(b/2,0)", :green, :center, delta=-delta)
        point(0, a, "(0,a)", :green, :center, :bottom, delta=0.4delta)
        point(a/2, a, "(a/2,a)", :green, :center, :bottom, delta=0.4delta)
        point(0, b, "(0,b)", :green, :center, delta=-delta)
        point(a/2, 0, "(a/2,0)", :green, :center, delta=-delta)
        point(0, a - r2, "乙円:r2,(a-r2,r2)", :red, :center, delta=-delta)
        point(0, b + r1, "甲円:r1\n(b,b+r1)", :blue, :center, :bottom, delta=delta/2)
    end
end;
draw(39, true)

    (20.0, 320.0, 192.0)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2460)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円4個,円弧,正三角形
#Julia #SymPy #算額 #和算 #数学


正三角形の中に円弧を隔てて全円 1 個,上円 1 個,下円 2 個を容れる。上円の直径が 5 寸のとき,下円の直径はいかほどか。

正三角形の一辺の長さを \(a\)
斜線と辺の交点座標を \( (c_x,\ c_y),\ (d_x,\ d_y)\)
全円の半径と中心座標を \(r_0,\ (0,\ r_0);\ r_0 = a/2√3\)
上円の半径と中心座標を \(r_1,\ (0,\ 2r_0 + r_1)\)
下円の半径と中心座標を \(r_2,\ (2\sqrt{r_0 r_2},\ r_2)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1,  r0, a, x1, y1, r2, cx, dx
r0 = a/2√Sym(3)
cy = √Sym(3)*(a/2 - cx)
dy = √Sym(3)*(a/2 - dx)
eq1 = dist2(-a/2, 0, cx, cy, 0, r2, r2) |> numerator
eq2 = dist2(-a/2, 0, cx, cy, 0, y1, r1) |> numerator
eq3 = dist2(-a/2, 0, dx, dy, 0, 2r0 + r1, r1) |> numerator
eq4 = dist2(-a/2, 0, dx, dy, 0, y1, r1) |> numerator
eq5 = a/2 - (2sqrt(r0*r1) + √Sym(3)r1);

一度に解けないが,以下の順で一つづつ解けばよい。

# a を求める
ans_a = solve(eq5, a)[2]  # 2 of 2

    \(6 \sqrt{3} r_{1}\)

# dx を求める
eq3_2 = eq3(a => ans_a) |> factor

    \(- 1728 dx r_{1}^{2} \left(- 7 dx + 5 \sqrt{3} r_{1}\right)\)

ans_dx = solve(eq3_2, dx)[2]  # 2 of 2

    \(\displaystyle \frac{5 \sqrt{3} r_{1}}{7}\)

# y1 を求める
eq4_2 = eq4(a => ans_a, dx => ans_dx) |> factor

    \(\displaystyle \frac{156 r_{1}^{2} \left(- 53 r_{1} + 13 y_{1}\right) \left(- 7 r_{1} + y_{1}\right)}{49}\)

ans_y1 = solve(eq4_2, y1)[1]  # 1 of 2

    \(\displaystyle \frac{53 r_{1}}{13}\)

# cx を求める
eq2_2 = eq2(a => ans_a, y1 => ans_y1) |> factor

    \(\displaystyle \frac{36 r_{1}^{2} \left(784 cx^{2} - 1757 \sqrt{3} cx r_{1} + 2565 r_{1}^{2}\right)}{169}\)

ans_cx = solve(eq2_2, cx)[2]  # 2 of 2

    \(\displaystyle \frac{171 \sqrt{3} r_{1}}{112}\)

# r2 を求める
eq1_2 = eq1(a => ans_a, cx => ans_cx) |> factor

    \(\displaystyle \frac{4455 r_{1}^{2} \left(15 r_{1} - 11 r_{2}\right) \left(99 r_{1} + 5 r_{2}\right)}{784}\)

ans_r2 = solve(eq1_2, r2)[2]  # 2 of 2

    \(\displaystyle \frac{15 r_{1}}{11}\)

下円の半径 \(r_2\) は,上円の半径 \(r_1\) の 15/11 倍である。
上円の直径が 11 寸のとき,下円の直径は 15 寸である。

ちなみに,三角形の一辺の長さとの比を取ると,上円の直径は三角形の一辺の長さの \(\displaystyle \frac{\sqrt{3}}{9}\) 倍,下円の直径は三角形の一辺の長さの \(\displaystyle \frac{5\sqrt{3}}{33}\) 倍である。

2r1/ans_a

    \(\displaystyle \frac{\sqrt{3}}{9}\)

2ans_r2/ans_a

    \(\displaystyle \frac{5 \sqrt{3}}{33}\)

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (a, dx, y1, cx, r2) = r1.*(6√3, 5√3/7, 53/13, 171√3/112, 15/11)
    println( (a, dx, y1, cx, r2))
    r0 = a/2√3
    cy = √3(a/2 - cx)
    dy = √3(a/2 - dx)
    plot([a/2, 0, -a/2, a/2], [0, √3a/2, 0, 0], color=:green, lw=0.5)
    circle(0, 2r0 + r1, r1, :blue)
    circle(0, y1, r1, :blue)
    circle(0, r2, r2)
    circle(0, r0, r0, :orange)
    segment(-a/2, 0, cx, cy)
    segment(-a/2, 0, dx, dy)
    segment(a/2, 0, -cx, cy)
    segment(a/2, 0, -dx, dy)
    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(0, r0, "全円:r0,(0,r0)", :orange, :left, :vcenter, deltax=3delta)
        point(a/2, 0, "(a/2,0)", :green, :right, delta=-delta)
        point(0, 0, "(0,0)", :green, :center, delta=-delta)
        point(0, √3a/2, "(0,√3a/2)", :green, :center, :bottom, delta=delta/2)
        point(cx, cy, "(cx,cy)", :green, :left, :vcenter, deltax=delta)
        point(dx, dy, "(dx,dy)", :green, :left, :vcenter, deltax=delta)
        point(0, r2, "下円:r2,(0,r2)", :red, :center, delta=-delta)
        point(0, y1, "上円:r1\n(0,y1)", :blue, :center, :bottom, delta=delta/2)
        point(0, 2r0 + r1, "上円:r1\n(0,2r0+r1)", :blue, :center, :bottom, delta=delta/2)
    end
end;
draw(11, true)

    (114.3153532995459, 13.608970630898321, 44.84615384615384, 29.089174723545163, 14.999999999999998)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2459)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円4個,円弧,正三角形
#Julia #SymPy #算額 #和算 #数学


正三角形の中に円弧を隔てて全円 1 個,上円 1 個,下円 2 個を容れる。上円の直径が 5 寸のとき,下円の直径はいかほどか。

注:問題は簡潔に記載されているが,算額(その2458)でも注記した通り,円弧は正三角形の頂点を通るだけではなく,正三角形の重心も通り,辺に接する。つまり,正三角形の一辺の長さを \(a\),外円の半径と中心座標を \(R,\ (x_0,\ y_0)\)としたとき,
\(x_0 = a/2,\ R = y_0 = a/\sqrt{3}\) である。

そのほか,
全円の半径と中心座標を \(r_0,\ (0,\ r_0);\ r_0 = R/2\)
上円の半径と中心座標を \(r_1,\ (0,\ 2r_0 + r_1)\)
下円の半径と中心座標を \(r_2,\ (2\sqrt{r_0 r_2},\ r_2)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1,  r0, a, x1, y1, r2
R = a/√Sym(3)
r0 = R/2
x0 = a/2
y0 = R
x2 = 2sqrt(r0*r2)
eq1 = x0^2 + r1^2 - (R - r1)^2
eq2 = x2^2 + (r2 + r0)^2 - (R - r2)^2
res = solve([eq1, eq2], (r2, a))[2]  # 2 of 2

    (6*r1/5, 8*sqrt(3)*r1)

# r2: 下円の半径
ans_r2 = res[1]
@show(ans_r2)

    ans_r2 = 6*r1/5

    \(\displaystyle \frac{6 r_{1}}{5}\)

下円の半径は上円の半径の 6/5 倍である。
上円の直径が 5 寸のとき,下円の直径は 6 寸である。

# a:正三角形の一辺の長さ
ans_a = res[2]
@show(ans_a)

    ans_a = 8*sqrt(3)*r1

    \(8 \sqrt{3} r_{1}\)

# R: 外円(円弧)の半径
ans_a/√Sym(3)

    \(8 r_{1}\)

# r0: 全円の半径
ans_a/√Sym(3)/2

    \(4 r_{1}\)

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    (r2, a) = (6r1/5, 8√3r1)
    R = a/√3
    r0 = R/2
    x0 = a/2
    y0 = R
    x2 = 2sqrt(r0*r2)
    @printf("上円の直径が %.15g のとき,下円の直径は %.15g, 三角形の一辺の長さは %.15g,円弧(外円)の直径は %.15g,全円の直径は %.15g である。\n",
        2r1, 2r2, a, 2R, 2r0)
    plot([a/2, 0, -a/2, a/2], [0, √3a/2, 0, 0], color=:green, lw=0.5)
    circle(x0, y0, R, beginangle=150, endangle=270)
    circle(-x0, y0, R, beginangle=-90, endangle=30)
    circle(0, -a/2√3, R, beginangle=30, endangle=150)
    circle2(x2, r2, r2, :blue)
    circle(0, 2r0 + r1, r1, :magenta)
    circle(0, r0, r0)
    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(x0, y0, "外円:R,(x0,y0)", :red, :right, :bottom, delta=delta/2)
        point(0, R + r1, "上円:r1,(0,R+r1)", :magenta, :left, :bottom, delta=3delta, deltax=8delta)
        point(x2, r2, "下円:r2,(x2,r2)", :blue, :right, delta=-r2 - delta, deltax=3delta)
        point(a/2, 0, "(a/2,0)", :green, :right, delta=-delta)
        point(0, 0, "(0,0)", :green, :center, delta=-delta)
        point(0, r0, "(0,r0)", :black, :left, :bottom, delta=delta/2, deltax=2delta)
        point(0, √3a/2, "(0,√3a/2)", :green, :center, :bottom, delta=delta/2)
        point(0, -r0, "(0,-r0)", :red, :center, delta=-delta)
    end
end;
draw(5/2, true)

    上円の直径が 5 のとき,下円の直径は 6, 三角形の一辺の長さは 34.6410161513775,円弧(外円)の直径は 40,全円の直径は 20 である。

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください

算額(その2458)

算法便覧巻之五 眞元整数篇

算法便覧,武田真元著,高岡貞覚,秋田伊任校,文化11年(1814)
東北大学総合知デジタルアーカイブ
Tohoku University Digital Archives (ToUDA)
https://touda.tohoku.ac.jp/collection/database/library//10020000003479
キーワード:円3個,円弧,正三角形
#Julia #SymPy #算額 #和算 #数学


正三角形の中に円弧を隔てて甲円 2 個乙円 1 個を容れる。甲円の直径が 64 寸のとき,乙円の直径はいかほどか。

注:問題は簡潔に記載されているが,予備的な分析により,円弧は正三角形の頂点を通るだけではなく,正三角形の重心も通り,辺に接する。つまり,正三角形の一辺の長さを \(a\),外円の半径と中心座標を \(r_0,\ (x_0,\ y_0)\)としたとき,
\(x_0 = a/2,\ y_0 = a/\sqrt{3},\ r_0 = y_0\) である。

そのほか,
甲円の半径と中心座標を \(r_1,\ (x_1,\ y_1)\)
乙円の半径と中心座標を \(r_1,\ (0,\ r_-2)\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース
@syms r1,  r0, a, x1, y1, r2
x0 = a/2
y0 = a/√Sym(3)
r0 = y0
eq3 = (x0 - x1)^2 + (y0 - y1)^2 - (r0 - r1)^2
eq4 = (x0 + x1)^2 + (y0 - y1)^2 - (r0 + r1)^2
eq5 = x0^2 + (y0 - r2)^2 - (r0 + r2)^2
eq6 = dist2(a/2, 0, 0, √Sym(3)a/2, x1, y1, r1)
res = solve([eq3, eq4, eq5], (a, x1, y1))[5]  # 5 of 6

    (16*sqrt(3)*r2/3, 2*sqrt(3)*(-4*r2 + sqrt(r1^2 + 8*r1*r2 + 16*r2^2))/3, 16*r2/3 - sqrt(-3*r1^2 + 64*r2^2)/3)

eq6_2 = eq6(a => res[1], x1 => res[2], y1 => res[3]) |> factor

    \(\displaystyle - \frac{3 r_{1}^{2} - 288 r_{1} r_{2} - 1664 r_{2}^{2} - 64 r_{2} \sqrt{- 3 r_{1}^{2} + 64 r_{2}^{2}} + 384 r_{2} \sqrt{r_{1}^{2} + 8 r_{1} r_{2} + 16 r_{2}^{2}} + 12 \sqrt{- 3 r_{1}^{2} + 64 r_{2}^{2}} \sqrt{r_{1}^{2} + 8 r_{1} r_{2} + 16 r_{2}^{2}}}{36}\)

# r2 乙円の半径
ans_r2 = solve(eq6_2, r2)[1]
@show(ans_r2)

    ans_r2 = 49*r1/64

    \(\displaystyle \frac{49 r_{1}}{64}\)

乙円の半径は,甲円の半径の 49/64 倍である。
甲円の直径が 64 寸のとき,乙円の直径は 49 寸である。

# a:正三角形の一辺の長さ
ans_a = res[1](r2 => 49r1/64)

    \(\displaystyle \frac{49 \sqrt{3} r_{1}}{12}\)

# r0: 外円(円弧)の半径
ans_a/√Sym(3)

    \(\displaystyle \frac{49 r_{1}}{12}\)

 

描画関数プログラムのソースを見る

function draw(r1, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, showaxis=false, label="", fontfamily="IPAexMincho")
    r2 = 49r1/64
    (a, x1, y1) = (16*sqrt(3)*r2/3, 2*sqrt(3)*(-4*r2 + sqrt(r1^2 + 8*r1*r2 + 16*r2^2))/3, 16*r2/3 - sqrt(-3*r1^2 + 64*r2^2)/3)
    x0 = a/2
    y0 = (x0 + a/2)/√3
    r0 = y0
    println( (a, r0, x0, y0, x1, y1, r2))
    plot([a/2, 0, -a/2, a/2], [0, √3a/2, 0, 0], color=:green, lw=0.5)
    circle(x0, y0, r0, beginangle=150, endangle=270)
    circle(-x0, y0, r0, beginangle=-90, endangle=30)
    circle2(x1, y1, r1, :blue)
    circle(0, r2, r2, :magenta)
    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(x0, y0, "外円:r0,(x0,y0)", :red, :right, :bottom, delta=delta/2)
        point(x1, y1, "甲円:r1,(x1,y1)", :blue, :center, delta=-delta)
        point(0, r2, "乙円:r2,(0,r2)", :magenta, :center, delta=-delta)
        point(a/2, 0, "(a/2,0)", :green, :right, delta=-delta)
        point(0, 0, "(0,0)", :green, :right, delta=-delta)
        point(0, √3a/2, "(0,√3a/2)", :green, :center, :bottom, delta=delta/2)
    end
end;
draw(64/2, true)

    (226.3213055223333, 130.66666666666666, 113.16065276116665, 130.66666666666666, 36.95041722813605, 68.0, 24.5)

 

「算額あれこれ」の全ページの索引


以下のアイコンをクリックして応援してください