裏 RjpWiki

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

算額(その978)

2024年05月20日 | Julia

算額(その978)

一七 大里郡岡部村岡 稲荷社 文化13年(1816)

埼玉県立図書館:埼玉県史料集 第二集『埼玉の算額』,昭和44年,誠美堂印刷所,埼玉県与野市.

横倒しされた台形で,斜辺の一部を共用する正方形が入っている。本来の台形の高さ(股),上底(小頭)がそれぞれ 2 寸,1 寸のとき,下底(大頭)を求めよ。

注:下図は,小頭,股が 1.5 寸,2 寸の場合である。

正方形の一辺の長さを a
正方形の一辺と台形の二辺の一部できる 3 個の直角三角形は相似である。その短い方の辺の長さを b
大頭,小頭,股をそのまま変数名として使う。

include("julia-source.txt");

using SymPy
@syms a::positive, b::positive, θ::positive,
     大頭::positive, 小頭::positive, 股::positive
eq1 = (股 - b)/a - 小頭/a
eq2 = a/(大頭 - b) - 小頭/a
eq3 = (小頭^2 + b^2) - a^2
res = solve([eq1, eq2, eq3], (大頭, a, b))[1]

   (小頭 - 股 + 股^2/小頭, sqrt(2*小頭^2 - 2*小頭*股 + 股^2), -小頭 + 股)

大頭は「小頭 - 股 + 股^2/小頭」で計算できる。
小頭が 1 寸,股が 2 寸のとき,大頭は 3 寸である。

小頭 = 1
股 = 2
小頭 - 股 + 股^2/小頭

   3.0

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   (股, 小頭) = (2, 1.5)
   (大頭, a, b) = (小頭 - 股 + 股^2/小頭, sqrt(2*小頭^2 - 2*小頭*股 + 股^2), -小頭 + 股)
   str = @sprintf("小頭 = %g;  股 = %g;  大頭 = %g\n正方形の一辺の長さ = %g;  b = %g", 小頭, 股, 大頭, a, b)
   θ = acos(小頭/a)
   plot([0, 小頭 + b, 小頭 + b, 0, 0], [0, 0, 小頭, 大頭, 0], color=:blue, lw=0.5)
   segment(0, b, 小頭, 0, :red)
   segment(小頭, 0, 小頭 + b, 小頭, :red)
   segment(0, b, a*cos(pi/2 - θ), b + a*sin(pi/2 - θ), :red)
   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(股, 小頭, "(股,小頭) ", :blue, :right)
       point(0, 大頭, " 大頭", :blue, :left, :bottom)
       point(0, b, " b", :red, :left, :bottom)
       point(股 - b, 0, " 股-b", :red, :left, :bottom, delta=delta/2)
       point(股, 0, " 股", :blue, :left, :bottom, delta=delta/2)
       point(股/2, 大頭/2, str, :black, :center, :vcenter, mark=false)
   end
end;


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

コメントを投稿

Julia」カテゴリの最新記事