裏 RjpWiki

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

算額(その322)

2023年07月12日 | Julia

算額(その322)

早坂平四郎:算額の一考察,苫小牧工業専門学校紀要
https://www.tomakomai-ct.ac.jp/wp01/wp-content/uploads/2014/06/kiyou5-8.pdf

(16) 京都府京都市右京区山ノ内宮脇町 山王神社 明治23年(1890)
近畿数学史学会:近畿の算額「数学の絵馬を訪ねて」,平成4年5月16日 初版第一刷,大阪教育図書株式会社,大阪市.

直角三角形に関するもの
京都府京都市左京区西院 猿田彦神社 明治23年(1890)

鉤股弦内に正方形と正三角形を入れる。鈎が 3 寸,股が 7 寸のとき,三角形の一辺を求めよ。

正三角形と正方形の一辺の長さをそれぞれ a, b とする。
⊿OBE と ⊿OCF と ⊿ ODG は相似。
BE:BO = CF:CO = DG:DO = 3:7 なので以下の連立方程式を a, b について(鈎,股は未知数のままとして)解く。

include("julia-source.txt");

using SymPy

@syms 鈎::positive, 股::positive, 弦::positive, a::positive, b::positive, c::positive;
eq1 = sqrt(Sym(3))/2*a/(股 - b - a/2) - 鈎//股
eq2 = b/(股 - b) - 鈎//股
res = solve([eq1, eq2], (a, b));
res[a] |> factor |> println
res[b] |> println

   2*股^2*鈎*(sqrt(3)*股 + 鈎)/((股 + 鈎)*(3*股^2 + 2*sqrt(3)*股*鈎 + 鈎^2))
   股*鈎/(股 + 鈎)

a の分母にある 3*股^2 + 2*sqrt(3)*股*鈎 + 鈎^2 は (sqrt(3)*股 + 鈎)^2 で分子の (sqrt(3)*股 + 鈎) と約分され 2*股^2*鈎/((股 + 鈎)*(sqrt(3)*股 + 鈎)) になるが,SymPy ではそこまでの簡約化はできない。

鈎 = 3, 股 = 7 を代入すると,

   正三角形の一辺 = 1.943884;  正方形の一辺 = 2.100000

using Plots

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (鈎, 股) = (3, 7)
   a = 2*股^2*鈎/((股 + 鈎)*(sqrt(3)*股 + 鈎))
   b = 股*鈎/(股 + 鈎)
   @printf("正三角形の一辺 = %.6f;  正方形の一辺 = %.6f\n", a, b)
   plot([0, 股, 股, 0], [0, 0, 鈎, 0], color=:black, lw=0.5)
   rect(股 - b, 0, 股, b, :red)
   plot!([股 - b - a, 股 - b - a/2, 股 - b], [0, √3a/2, 0, 0], color=:blue, lw=0.5)
   if more
       point(0, 0, "O ", :green, :right, :bottom)
       point(股 - b - a, 0, "A ", :blue, :right, :bottom)
       point(股 - b - a/2, 0, "B ", :blue, :right, :bottom)
       point(股 - b, 0, " C", :red, :left, :bottom)
       point(股, 0, "D ", :red, :right, :bottom)
       point(股 - b - a/2, √3a/2, "E ", :blue, :right, :bottom)
       point(股 - b, b, "F ", :red, :right, :bottom)
       point(股, 鈎, "G ", :red, :right, :bottom)
       vline!([0], color=:black, lw=0.5)
       hline!([0], color=:black, lw=0.5)
   else
       plot!(showaxis=false)
   end
end;

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村