以下の内容はhttps://sangaku0418.hatenablog.com/entry/2023/07/16/174349より取得しました。


算額(その0332)

石川県能登町 白山神社 文政6年(1823)

【算額に挑戦】石川県の算額 ―その2―
http://blog.livedoor.jp/enjoy_math/archives/51206109.html
キーワード:円4個,直線上
#Julia #SymPy #算額 #和算 #数学


直線上に甲円と乙円が載っており,互いに接している。
大円と小円も同じ直線上にあり,互いに接している。
また,甲円と大円,乙円と小円も互いに接している。
甲円,乙円,大円の直径がそれぞれ 64寸,54寸,11寸のとき,小円の直径を求めよ。

甲円の半径,中心座標を \(r_1,\ (0,\ r_1)\)
乙円の半径,中心座標を \(r_2,\ (x_2,\ r_2)\)
大円の半径,中心座標を \(r_3,\ (x_3,\ r_3)\)
小円の半径,中心座標を \(r_4,\ (x_4,\ r_4)\)
とおき,以下の連立方程式を解く。
なお,同一直線に載っている2つの円 \(r_1,\ r_2\) の中心間の水平距離は \(2\sqrt{}(r_1*r_2)\) なので,eq1  は見かけは長ったらしいが実際には \(x_2^2 = 3456\)

という式になっている。ほかも同様である。

include("julia-source.txt");  # julia-source.txt ソース

using SymPy

@syms r1::positive, r2::positive, x2::positive,
     r3::positive, x3::positive, r4::positive, x4::positive;
#@syms r1, r2, x2, r3, x3, r4, x4;
(r1, r2, r3) = (64, 54, 11) .// 2
eq1 = x2^2 + (r1 - r2)^2 - (r1 + r2)^2
eq2 = x3^2 + (r1 - r3)^2 - (r1 + r3)^2
eq3 = (x2 - x4)^2 + (r2 - r4)^2 - (r2 + r4)^2
eq4 = (x4 - x3)^2 + (r3 - r4)^2 - (r3 + r4)^2
res = solve([eq1, eq2, eq3, eq4], (x2, x3, r4, x4))[1]

    (24*(18 - sqrt(66))/sqrt(65 - 6*sqrt(66)), 8*(-11 + 3*sqrt(66))/sqrt(65 - 6*sqrt(66)), 211232/1849 - 24960*sqrt(66)/1849, 48*sqrt(4290/1849 - 396*sqrt(66)/1849))

それぞれの式は,必要に応じて分母の有理化や二重根号を外すなどで簡約化できる場合もある。

@syms dummy
apart(res[1][1], dummy) |> sympy.sqrtdenest |> simplify |> println
apart(res[1][2], dummy) |> sympy.sqrtdenest |> simplify |> println
apart(res[1][3], dummy) |> println
apart(res[1][4], dummy) |> sympy.sqrtdenest |> simplify |> println

   24*sqrt(6)
   8*sqrt(11)
   211232/1849 - 24960*sqrt(66)/1849
   -528*sqrt(6)/43 + 864*sqrt(11)/43

小円の直径は \(2(211232 - 24960\sqrt{66})/1849 = 9.146567247470445\) である

2(211232 - 24960*sqrt(66))/1849

   9.146567247470445

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

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (r1, r2, r3) = (64, 54, 11) .// 2
   x2 = 24*sqrt(6)
   x3 = 8*sqrt(11)
   r4 = 211232/1849 - 24960*sqrt(66)/1849
   x4 = -528*sqrt(6)/43 + 864*sqrt(11)/43
   @printf("小円の直径 = %.6f\n", 2r4)
   plot()
   circle(0, r1, r1)
   circle(x2, r2, r2, :blue)
   circle(x3, r3, r3, :green)
   circle(x4, r4, r4, :orange)
   if more
       point(0, r1, " 甲円\n r1", :red, :left, :vcenter)
       point(x2, r2, " 乙円:r2\n (x2,r2)", :blue, :left, :vcenter)
       point(x3, r3, " 大円:r3   \n(x3,r3)   ", :green, :right, :bottom)
       point(x4, r4, "    小円:r4,(x4,r4)", :orange, :left, :bottom)
       vline!([0], color=:black, lw=0.5)
       hline!([0], color=:black, lw=0.5)
   end
end;


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




以上の内容はhttps://sangaku0418.hatenablog.com/entry/2023/07/16/174349より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14