読者です 読者をやめる 読者になる 読者になる

何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

冬休み課題の解答を提出します

冬休み課題②:円周率を使わない話 - マクロツイーターにある冬休みの課題をSymPyの宣伝を兼ねて提出する。
問題は上記のリンクを参照して欲しい。

import sympy

t = sympy.Symbol('t')
x = sympy.Symbol('x(t)')
y = sympy.Symbol('y(t)')

alpha = sympy.Symbol(r'\alpha')
## alpha = 4 * (sympy.sqrt(2) - 1) / 3
x_0, y_0 = 1, 0
x_1, y_1 = 1, alpha
x_2, y_2 = alpha, 1
x_3, y_3 = 0, 1

x = pow((1-t),3)*x_0 + 3*pow((1-t),2)*t*x_1 + 3*(1-t)*pow(t,2)*x_2 + pow(t,3)*x_3
y = pow((1-t),3)*y_0 + 3*pow((1-t),2)*t*y_1 + 3*(1-t)*pow(t,2)*y_2 + pow(t,3)*y_3
A = (1/2)*sympy.integrate((x * sympy.diff(y, t) - y * sympy.diff(x, t)), (t, 0, 1))

print("pict2e:",4*A.evalf())
print("sympy.pi:",sympy.pi.evalf())
print("diff",4*A.evalf() - sympy.pi.evalf())

最も、ヒントがあるので自分では殆ど考えていない。これとPythonTeXを組み合わせれば美しいレポートを作ることが出来るがそれは今後の課題としよう(?)。