算額あれこれ

算額問題をコンピュータで解きます

算額(その1562)

70 岩手県川崎村薄衣字諏訪前(現一関市川崎町) 浪分神社 明治35年(1902)

安富有恒:和算—岩手の現存算額のすべて,青磁社,東京都,1987.
http://www.wasan.jp/iwatenosangaku_yasutomi.pdf
キーワード:3次元,球,円錐,四角柱
#Julia #SymPy #算額 #和算 #数学


底面が正方形の四角柱の中に等球 4 個と円錐 1 個を容れる。円錐と四角柱の高さは等しい。等球は 2 個の等球と外接し,円錐と 1 点で外接し,四角柱に 3 点で内接する。等球の直径が与えられたとき,円錐(四角柱)の高さはいかほどか。

円錐の底面の半径と中心座標を \(a, (0, 0, 0)\)
四角柱の底面の座標を \( (a, a, 0), (a, -a, 0), (-a, a, 0), (-a, -a, 0)\)
等球の半径と中心座標を \(r, (a - r, a - r, h - r); a = 2r\)
とおき,以下の連立方程式を解く。

include("julia-source.txt");  # julia-source.txt ソース

using SymPy
using LinearAlgebra

function shortest_distance_to_line(p0, p1, p2)
    """
    点 p0 から p1, p2 を通る直線までの垂直距離を計算
    """
    line_dir = p2 - p1  # 直線の方向ベクトル
    numerator = norm(cross(line_dir, p0 - p1))  # 外積の大きさ
    denominator = norm(line_dir)  # 直線の方向ベクトルの大きさ
    return numerator / denominator
end;

@syms a::positive, h::positive, r::positive
a = 2r
eq = shortest_distance_to_line([a - r, a - r, h - r], [a/√Sym(2), a/√Sym(2), 0], [0, 0, h]) - r
eq |> println

    -r + sqrt(2)*Abs(h*(-sqrt(2)*r + r) + sqrt(2)*r*(h - r))/sqrt(h^2 + 4*r^2)

ans_h = solve(eq, h)[1]
ans_h |> println

    4*sqrt(2)*r

円錐の高さ h は,等円の半径 r の \(4\sqrt{2}\) 倍である。
等円の直径が 1 寸のとき,円錐の高さは \(2\sqrt{2} = 2.82842712474619\) 寸である。


以下のアイコンをクリックして応援してください