質問の算額の問題をPythonで解いてみた。

 質問の算額問題Pythonで解いてみました。(^_^;

 求める小円の直径をdとして、小円、中円、大円の半径をそれぞれ、x、Z(=11/2)、yとすると、
 まず、d=2x …(1)
 一番目の参考URLの公式から、(R,r1,r2)←(x,y,Z)
 \frac{1}{\sqrt{x}}=\frac{1}{\sqrt{y}}+\frac{1}{\sqrt{Z}} …(2)
 △OO'Hは直角二等辺三角形なので辺の比から
 y-Z=\frac{y+Z}{\sqrt{2}} …(3)
 これをPythonで計算すると次の通りです。

● Sangaku1.py

# coding: UTF-8
# Sangaku1.py

from math import sqrt
import numpy as np
from scipy.optimize import newton

Z = 11.0/2.0

def g(y):
    return ( y-Z )-( (y+Z)/sqrt(2.0) )

Y = newton(g,1.0)

def f(x):
    return ( 1.0/sqrt(x) )-( 1.0/sqrt(Y)+1.0/sqrt(Z) )

def main():
    print(2.0*newton(f,1.0))

if __name__ == '__main__':
    main()

●実行結果

5.5

 ちなみに、自力で計算する場合、(3)からyを求めてxを求めると、2重根号が出てきたりして計算が大変なので、(3)の代わりに次の(3)'を使って、√x=α,√y=β,√Z=γとして計算するといいです。(^_^;
 IJ=IO''+O''J=2\sqrt{xy}+2\sqrt{xZ}=y-Z

 2\sqrt{x}=\sqrt{y}-\sqrt{Z} …(3)'

※参考URL
2つの円の共通外接線と共通内接線の長さ
算額の問題ですが、、 T_NAKAの阿房ブログ/ウェブリブログ
フォードの円
非線形方程式を解く − 読書ノート v1.4.0dev - プレハブ小屋
つまみぐいプログラミング Python で方程式を数値的に解く