裏 RjpWiki

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

算額(その519)

2023年11月28日 | Julia

算額(その519)

岩手県一関市 観福寺 明治34年
一関市博物館>>和算に挑戦>>平成22年度出題問題&解答例>>平成22年度出題問題(2)[中級問題]

https://www.city.ichinoseki.iwate.jp/museum/wasan/h22/normal.html

外円内に n 個の菱形が入っている。外円の直径を r としたとき,菱形の長い方の対角線の長さを求めよ。

菱形の短い方の対角線の長さを,長い方の対角線の長さを 2b,2a とおき,以下の方程式を解く。

include("julia-source.txt");

using SymPy
@syms a::positive, b, r, n
b = r/n
eq = sqrt(a^2 + (r - b)^2) - r
a = solve(eq, a)[2]
a |> simplify |> println

   sqrt(r^2*(2*n - 1))/n

菱形の長い方の対角線の長さは 2r*sqrt(2n - 1)/n。

外円の直径が 10,n = 2 のとき,2r*sqrt(2n - 1)/n = 8.660254037844386 である。

r = 10/2
n = 2
2r*sqrt(2n - 1)/n

   8.660254037844386

draw(5, 2, true)
   a = 4.33013;  b = 2.5;  長い方の対角線 = 8.66025

draw(5, 5, true)
   a = 3;  b = 1;  長い方の対角線 = 6

function draw(r, n, more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   b = r//n
   a = r*sqrt(2n - 1)/n
   @printf("a = %g;  b = %g;  長い方の対角線 = %g\n", a, b, 2a)
   plot()
   circle(0, 0, r)
   for i = 1:n
       plot!([a, 0, -a, 0, a], r - (2i - 1)b .+ [0, b, 0, -b, 0], color=:blue, lw=0.5)
       point(0, r - (2i - 1)b, "r-$(2i-1)b ", :blue, :right, :vcenter)
   end
   if more
       delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
       hline!([0], color=:black, lw=0.5)
       vline!([0], color=:black, lw=0.5)
       point(r*sqrt(2*n - 1)/n, r - b, "(r√(2n-1)/n,r-b)", :black, :right, :top, delta=-delta)
       point(r, 0, " r", :red, :left, :bottom, delta=delta/2)
   end
end;

 


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

コメントを投稿

Julia」カテゴリの最新記事