2019年4月9日火曜日

学習環境

解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第4部(級数)、第14章(テイラーの公式)、4(指数関数)の練習問題11-(b)の解答を求めてみる。



    1. 置換積分法。

      t = x 2 dx dx = 2 x t = 0 , x = 0 t = 1 , x = 1 x = t 0 1 e - x 2 dx = 1 2 0 1 e - t t dt e - t = 1 - t + 1 2 ! t 2 - 1 3 ! t 3 + 1 4 ! t 4 - 1 5 ! t 5 + R 6 t R 6 t e - 0 · t 6 6 ! = t 6 6 !

      よって、

      e - t t = 1 t - t + 1 2 ! t t - 1 3 ! t 2 t + 1 4 ! t t 3 - 1 5 ! t t 4 + R 6 t t R 6 t t t t 5 6 !

      ゆえに、

      0 1 e - x 2 dx = 1 2 2 t - 2 3 t t + 2 5 · 1 2 ! t 2 t - 2 7 · 1 3 ! t t 3 + 2 9 · 1 4 ! t t 4 - 2 11 · 1 5 ! t t 5 0 1 + 1 2 0 1 R 6 t t dt 1 2 0 1 R 6 t t dt 1 2 0 1 t t 5 6 ! dt = 1 13 · 1 6 ! 1 0 - 3

      よって、求める積分の小数第3位までの値は、

      1 - 1 3 + 1 5 · 2 ! - 1 7 · 3 ! + 1 9 · 4 ! - 1 11 · 5 !

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, exp, plot, factorial, Integral, Rational

print('11-(b).')

x = symbols('x')
f = exp(-x ** 2)
If = Integral(f, (x, 0, 1))
y = sum([(-1) ** k / ((2 * k + 1) * factorial(k)) for k in range(6)])

for o in [If, If.doit(), float(If.doit()), float(y)]:
    pprint(o)
    print()

g = sum([(-1) ** k * 1 / ((2 * k + 1) * factorial(k)) *
         x ** Rational(2 * k + 1, 2)
         for k in range(6)])
p = plot(f, g, y,
         (x, -2, 2),
         ylim=(-5, 5),
         show=False, legend=False)
colors = ['red', 'green', 'blue', 'brown']

for s, color in zip(p, colors):
    s.line_color = color

p.show()
p.save('sample11.png')

入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample11.py
11-(b).
1        
⌠        
⎮    2   
⎮  -x    
⎮ ℯ    dx
⌡        
0        

√π⋅erf(1)
─────────
    2    

0.746824132812427

0.7467291967291967


C:\Users\...>

0 コメント:

コメントを投稿