裏 RjpWiki

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

算額(その1351)

2024年10月14日 | Julia

算額(その1351)

九 群馬県群馬郡群馬町引間 妙見寺 寛政9年(1797)
キーワード:直角三角形2個
#Julia, #SymPy, #算額, #和算

2 つの直角三角形が共通の底辺を持つ。長股(高さの長い方)が 30 寸,短股(高さの短い方)が 20 寸のとき,矢(2 つの斜辺の交点から底辺へおろした垂線の長さ)はいかほどか。

注:底辺の長さにかかわらず矢は一定の長さである。

短股,長股,矢をそのまま変数名とする
斜辺の交点座標を (a, 矢) として,以下の方程式を解く。

include("julia-source.txt");

using SymPy
@syms a::positive, 矢::positive,
     短股::positive, 長股::positive
eq = 矢/短股 - (長股 - 矢)/長股

res = solve(eq, 矢)[1]
res |> println

   短股*長股/(短股 + 長股)

矢は,短股*長股/(短股 + 長股) である。
長股,短股が 30 寸,20 寸のとき,矢は 12 寸である。

function draw(長股, 短股, a, more)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   矢 =  短股*長股/(短股 + 長股)
   b = a*長股/短股
   @printf("短股 = %g;  長股 = %g;  矢 = %g;  a = %g;  b = %g;  a + b = %g\n", 短股, 長股, 矢, a, b, a + b)
   plot([0, a + b, 0, 0, a + b, a + b, 0], [0, 0, 短股, 0, 長股, 0, 0], color=:blue, lw=1)
   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(a, 矢, "(a,矢)", :red, :center, delta=-3delta)
       point(0, 短股, "短股", :blue, :left, :bottom, deltax=2delta)
       point(a*(長股 + 短股)/短股, 長股, "(a*(長股+短股)/短股,長股)", :blue, :right, :vcenter, deltax=-4delta)
       # xlims!(-12delta, a + b + 10delta)
   end  
end;

draw(30, 20, 18, true)

 

 


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

コメントを投稿

Julia」カテゴリの最新記事