裏 RjpWiki

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

算額(その849)

2024年04月10日 | Julia

算額(その849)

五 岩手県遠野市綾織町字向 月山神社奉納(現駒形神社) 文化5年(1808)

山村善夫:現存 岩手の算額,昭和52年1月30日,熊谷印刷,盛岡市.
http://www.wasan.jp/yamamura/yamamura.html

牧下英世:数学史を取り入れた授業実践―算額の教材化と総合的な学習―,2000筑波大学附属駒場論集第40集
https://tsukuba.repo.nii.ac.jp/record/6486/files/10.pdf

鈎股弦(直角三角形)内に菱面(菱形),甲円,乙円が入っている。菱面(菱形の一辺の長さ)が 1 尺 5 寸,甲円,乙円の直径の和が 1 尺 6 寸のとき乙円の直径はいかほどか。

直角三角形の辺上の線分を子,丑,寅,卯,菱面
甲円,乙円の半径を r1, r2
として,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy
@syms 子::positive, 丑::positive, 寅::positive, 卯::positive, 菱面::positive,
     K::positive, r1::positive, r2::positive
半径の和 = 16//2
菱面 = 15
eq1 = r1 + r2 - 半径の和
eq2 = 菱面^2 + 寅^2 - 卯^2
eq3 = 菱面 + 寅 - 卯 - 2r1
eq4 = 子^2 + 丑^2 - 菱面^2
eq5 = 子 + 丑 - 菱面 - 2r2
eq6 = (菱面 + 子)^2 + (丑 + 寅)^2 - (菱面 + 卯)^2 |> expand
res = solve([eq1, eq2, eq3, eq4, eq5, eq6], (子, 丑, 寅, 卯, r1, r2));

解は 2 つある。最初のものは誰もが考えるであろう直角三角形。この解においては,乙円の直径は 6 寸である。

res[1] |> println

   (9, 12, 20, 25, 5, 3)

2 つ目のものはずいぶん細長い直角三角形。この解では乙円は 2(-17/2 + 3*sqrt(41)/2) = 2.2093727122985456 寸である。和算家は,2 番目の解があるのに気づかなかったのであろうか。

round.(Float64[x.evalf() for x in res[2]], digits=5) |> println

   [2.40312, 14.80625, 92.41875, 93.62812, 6.89531, 1.10469]

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   K = 16//2
   菱面 = 15
   (子, 丑, 寅, 卯, r1, r2) = (9, 12, 20, 25, 5, 3)
   # (子, 丑, 寅, 卯, r1, r2) = (-4 + √41, 2 + 2√41, 6√41 + 54, 36 + 9√41, 33/2 - 3√41/2, -17/2 + 3√41/2)
   plot([0, 丑, 丑, 0], [子, 0, 菱面, 子 + 菱面], color=:orange, lw=0.5)
   circle(丑 + r1, r1, r1)
   circle(r2, r2, r2, :green)
   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(丑 + r1, r1, "甲円:r1,(丑+r1,r1)", :red, :center, delta=-delta)
       point(r2, r2, "乙円:r2\n(r2,r2)", :red, :center, delta=-delta)
       dimension_line(0, 0, 丑, 0, "丑", delta=-2delta)
       dimension_line(丑, 0, 丑 + 寅, 0, "寅", :green, delta=-2delta)
       dimension_line(丑, 菱面, 丑 + 寅, 0, " 卯", :magenta, :bottom, delta=3delta)
       dimension_line(0, 0, 0, 子, "子 ", :blue, :right, :vcenter)
       dimension_line(0, 子, 0, 子 + 菱面, "菱面 ", :black, :right, :vcenter)
       plot!(xlims=(-3, 34), ylims=(-2, 26))
   end
end;


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

コメントを投稿

Julia」カテゴリの最新記事