裏 RjpWiki

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

算額(その89)

2023年01月05日 | Julia

算額(その89)

栃木県足利市家富町 鑁阿寺 明治17年(1884)3
http://www.wasan.jp/totigi/bannaji2.html

3 種類の円が図のように配置されている。中円,小円の径(直径)が 2 寸,1 寸のとき,大円の径を求めよ。

大円の半径を r とする。中円,小円の半径を 2, 1 とする。

大円と中円が外接していることに基づく方程式を解く。

using SymPy

@syms r::positive;
eq = (1 + r)^2 + (1 + 2)^2 - (2 + r)^2
r = solve(eq)[1]
println(r)

   3

using Plots

function circle(ox, oy, r, color=:red; beginangle=0, endangle=360)
 θ = beginangle:0.1:endangle
 x = r.*cosd.(θ)
 y = r.*sind.(θ)
 plot!(ox .+ x, oy .+ y, color=color, linewidth=0.5)
end;

function point(x, y, string="", color=:green, position=:left, vertical=:top; fontsize=10, mark=true)
  mark && scatter!([x], [y], color=color, markerstrokewidth=0)
  annotate!(x, y, text(string, fontsize, vertical, position, color))
end;

function draw(more=false)
   pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
   r = 3
   println("大円の半径は $r")
   plot()
   circle(0, 3, 2, :green)
   circle(0, -3, 2, :green)
   circle(0, 0, 1, :blue)
   circle(1 + r, 0, r)
   circle(-1 - r, 0, r)
   if more
       hline!([0], color=:black, lw=0.5)
       vline!([0], color=:black, lw=0.5)
       point(0, 3, "3 ", :green, :bottom, :right)
       point(1 + r, 0, " 1+r", :red, :top, :left)
       point(1, 0, " 1", :red, :top, :left)
       point(0, 0, " 0", :blue, :top, :left)
   end
end;

   大円の半径は 3

 

 


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

コメントを投稿

Julia」カテゴリの最新記事