長野県木曽郡植松町 臨川寺弁財天社 文政13年(1830)
中村信弥「改訂増補 長野県の算額」県内の算額(P.124)
http://www.wasan.jp/zoho/zoho.html
キーワード:円4個,外円,弦,斜線
#Julia #SymPy #算額 #和算 #数学
外円内に,弦,斜,矢を引き,天円 1 個,地円 2 個を容れる。矢および斜が与えられたとき,天円の径を求めよ。

外円の半径を \(R\)
矢,斜の長さを \(a,\ b\)
地円の半径と中心座標を \(r_1,\ (r_1,\ y_1)\)
天円の半径と中心座標を \(r_2,\ (0,\ R - r_2)\)
弦と外円の交点座標を \( (x,\ a - R) \)
として方程式を立てる。
\(y_1\) は負の値も取りうるので ::positive を指定しない。
include("julia-source.txt"); # julia-source.txt ソース
using SymPy
@syms y1, r1::positive, R::positive, r2::positive, x::positive, a::positive, b::positive;
eq1 = r1^2 + y1^2 - (R - r1)^2
eq2 = r1^2 + (R - r2 - y1)^2 - (r1 + r2)^2
eq3 = x^2 + a^2 - b^2
eq4 = x^2 + (a - R)^2 - R^2
eq5 = y1 + (R - a) - r1
以上の連立方程式を \(a,\ b\) について解く。
res = solve([eq1, eq2, eq3, eq4, eq5], (y1, r1, r2, x, R))[1]
(b*(2*a - b)/(2*a), -a + b, (-a*b^2 + b^3)/(2*a^2 + 2*a*b), sqrt(-a + b)*sqrt(a + b), b^2/(2*a))
任意の \(a,\ b\) を式に与えれば数値解が得られる。
# r2: 天円の半径
res[3](a => 3, b => 5)
25/24
描画関数プログラムのソースを見る
function draw(a, b, more)
pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
(y1, r1, r2, x, R) = (b*(2*a - b)/(2*a), -a + b, (-a*b^2 + b^3)/(2*a^2 + 2*a*b), sqrt(-a + b)*sqrt(a + b), b^2/(2*a))
@printf("y1 = %.5f; r1 = %.5f; r2 = %.5f; x = %.5f; R = %.5f\n", y1, r1, r2, x, R)
plot()
circle(0, 0, R, :black)
circle2(r1, y1, r1)
circle(0, R - r2, r2, :blue)
if more
point(r1, y1, " (r1,y1) 地")
point(0, R - r2, " R-r2 天")
point(0, -R, " -R")
point(0, a - R, " a-R")
point(x, a - R, "(x,a-R)", :blue, :right, :bottom)
point(0, (a - 2R)/2, "a", :green, mark=false)
point(x/2, (a - 2R)/2, "b", :green, mark=false)
hline!([0], color=:black, lw=0.5)
vline!([0], color=:black, lw=0.5)
end
plot!([0, x, -x, 0, 0], [-R, a - R, a - R, -R, a - R], color=:magenta, lw=0.5)
end;
以下のアイコンをクリックして応援してください