裏 RjpWiki

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

和算の心(その001)

2022年12月22日 | Julia

和算の心(その001)

算額の問題を解くための定石をまとめておく。

直角三角形において,直角を挟む短い辺(鉤:こう)と長い辺(股:こ)と直角に対する辺(弦:げん)をいう(鉤は勾とも書かれる)。また「鉤股弦」は直角三角形のこと。ちなみに,「鉤股弦の定理」は三平方の定理(ピタゴラスの定理)のこと。

この直角三角形に内接する円の径(直径)は,鉤,股,弦を用いて以下のように表される。

径 = 鉤 + 股 - 弦

using Plots

function circle(ox, oy, r, color=:red; beginangle=0, endangle=360)
   θ = beginangle:0.1:endangle
   x = r.*cosd.(θ)
   y = r.*sind.(θ)
   plot!(ox .+ x, oy .+ y, color=color, linewidth=0.5)
end;

function point(x, y, string="", color=:green, position=:left, vertical=:top; mark=true)
   mark && scatter!([x], [y], color=color, markerstrokewidth=0)
   annotate!(x, y, text(string, 10, position, color, vertical))
end;

function segment(x1, y1, x2, y2, color=:black; linestyle=:solid, linewidth=0.5)
   plot!([x1, x2], [y1, y2], color=color, linestyle=linestyle, linewidth=linewidth)
end

function kou_ko_gen(鉤, 股, 弦)
   println("鉤 = $鉤;  股 = $股;  弦 = $弦")
   isapprox(鉤^2 + 股^2, 弦^2) || (println("鉤,股,弦の直角三角形ではない"); return)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   径 = 鉤 + 股 - 弦
   println("径 = $径")
   r = 径/2
   plot(showaxis=false)
   ox, oy = 股-r, r
   x, y = (股 - r) .* ([股, 鉤] ./ 弦)
   circle(股-r, r, r, :cyan)
   # 内接円の中心から,鉤,股,弦への垂線
   segment(ox, oy, ox, 0, :blue)
   segment(ox, oy, 股, oy, :blue)
   segment(ox, oy, x, y, :blue)
   # 鉤,股,弦
   segment(0, 0, x, y, :green)
   segment(0, 0, 股-r, 0, :green)
   segment(股, 0, 股-r, 0, :blue)
   segment(股, 0, 股, r, :blue)
   segment(股, 鉤, 股, r, :red)
   segment(股, 鉤, x, y, :red)
   point(0.2, 鉤, "鉤 = 赤 + 青\n股 = 緑 + 青\n弦 = 緑 + 赤\n" *
       "辺々足して\n鉤 + 股 + 弦\n = 2赤 + 2緑 + 2青\n" *
       " = 2(鉤 - 半径) + 2(股 - 半径) + 2半径\n" *
       "移項,整理して,\n鉤 + 股 - 弦 = 直径\n", :black, mark=false)
end;

kou_ko_gen(3, 8, sqrt(9+64))

   鉤 = 3;  股 = 8;  弦 = 8.54400374531753
   径 = 2.4559962546824696

kou_ko_gen(3, 4, 6)

   鉤 = 3;  股 = 4;  弦 = 6
   鉤,股,弦の直角三角形ではない

 

 


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

コメントを投稿

Julia」カテゴリの最新記事