裏 RjpWiki

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

算額(その309)

2023年07月01日 | Julia

算額(その309)

「三重県に現存する算額の研究」福島完(2007/2/13)
https://mie-u.repo.nii.ac.jp/?action=repository_uri&item_id=7216
三重県伊賀市 永保寺 弘化4年(1847)

問題文2

鉤が 3 丈,股が 4 丈の鉤股弦に,内接円,正三角形をいれる。直角の頂点から弦へ垂線(垂線の長さが中股)を下ろす。

弦,中股,円の直径,正三角形の一辺を求めよ。

中股と弦の交点の座標を (x , y), 円の半径を r とする。

以下の方程式を解く。

include("julia-source.txt");

using SymPy

@syms 鉤::positive, 股::positive, 弦::positive, r::positive, x::positive, y::positive

(鉤, 股) = (3, 4)
eq1 = 鉤^2 + 股^2 - 弦^2
eq2 = 鉤 + 股 - 弦 - 2r
eq3 = (3 - y)/x - 3//4
eq4 = 5*(sqrt(x^2 + y^2)) - 3*4
solve([eq1, eq2, eq3, eq4], (弦, r, x, y))

   1-element Vector{NTuple{4, Sym}}:
    (5, 1, 36/25, 48/25)

以下の数値の単位は「丈」

(弦, r, x, y) = (5, 1, 36/25, 48/25)
弦 |> println
中股 = sqrt(x^2 + y^2) |> println
円の直径 = 2r |> println
正三角形の一辺 = (2cos(PI/6)r).evalf() |> println

   5
   2.4
   2
   1.73205080756888

using Plots

function draw(zoomin=false, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (鉤, 股) = (3, 4)
   (弦, r, x, y) = (5, 1, 36/25, 48/25)
   plot([0, 股, 0, 0], [0, 0, 鉤, 0], color=:black, lw=0.5)
   circle(r, r, r, :blue)
   segment(0, 0, x, y, :red)
   plot!([r*(1-√3/2), r*(1+√3/2), r, r*(1-√3/2)], [r/2, r/2, 2r, r/2], color=:green, lw=0.5)
   if more
       point(股, 0, "股", :black, :left, :bottom)
       point(0, 鉤, " 鉤", :black, :left, :bottom)
       point(x, y, " (x,y)", :red, :left, :bottom)
       point(r, r, " (r,r)", :blue)
       vline!([0], color=:black, lw=0.5)
       hline!([0], color=:black, lw=0.5)
   else
       plot!(showaxis=false)
   end
end;


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

コメントを投稿

Julia」カテゴリの最新記事