裏 RjpWiki

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

算額(その1589)

2025年02月04日 | Julia

算額(その1589)

江戸 愛宕神社 文政13年(1830)
深川英俊,トニー・ロスマン:聖なる数学:算額,森北出版株式会社,2010年4月22日.

キーワード:正方形4個
#Julia, #SymPy, #算額, #和算, #数学

辺の長さが a, b, c, d の 4 個の正方形が頂点を共有して図のように並んでいる。
a, b, c が与えられたとき,d を求める術を述べよ。

この特殊な場合が左右対称な「算額(その657)」である。

思いつくのは,第二余弦定理の適用であるが,β = π - α ではあるが,変数の個数が多くて,以下の連立方程式は解けなかった。

include("julia-source.txt")
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf

using SymPy
@syms a::positive, b::positive, c::positive, d::positive,
      α::positive, β::positive
eq1 = b^2 + d^2 - 2b*d*cos(α) - a^2
eq2 = b^2 + d^2 - 2b*d*cos(β) - c^2
res = solve([eq1, eq2], (c, d))

    2-element Vector{Tuple{Sym{PyCall.PyObject}, Sym{PyCall.PyObject}}}:
     (sqrt(a^2 + (b*cos(α) - sqrt(a^2 + b^2*cos(α)^2 - b^2))*(2*b*cos(α) - 2*b*cos(β))), b*cos(α) - sqrt(a^2 + b^2*cos(α)^2 - b^2))
     (sqrt(a^2 + (b*cos(α) + sqrt(a^2 + b^2*cos(α)^2 - b^2))*(2*b*cos(α) - 2*b*cos(β))), b*cos(α) + sqrt(a^2 + b^2*cos(α)^2 - b^2))

補助線を引くと,cos(α) は CX/BC で,CX = x とおくと,x/d である。cos(β) は -x/d。
これらを代入して,以下の連立方程式を解いて d, x を求めると a, b, c を含む式として解が得られる。

@syms x
eq11 = eq1(d*cos(α) => x)
eq11 |> println

    -a^2 + b^2 - 2*b*x + d^2

eq12 = eq2(d*cos(β) => -x)
eq12 |> println

    b^2 + 2*b*x - c^2 + d^2

res = solve([eq11, eq12], (d, x))[1]

    (sqrt(2)*sqrt(a^2 - 2*b^2 + c^2)/2, -(a - c)*(a + c)/(4*b))

# d
res[1] |> println

    sqrt(2)*sqrt(a^2 - 2*b^2 + c^2)/2


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

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Julia」カテゴリの最新記事