2020年1月12日日曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第8章(積分の計算)、8.2(定積分の計算)、問題4の解答を求めてみる。


  1. 3次以下の整式 f を

    fx=k=03ckxk

    とおく。

    abfxdx=abk=03ckxkdx=k=03ckk+1xk+1ab=k=03ckk+1bk+1-ak+1=c0b-a+c12b2-a2+c23b3-a3+c34b4-a4=b-ac0+c12b+a+c23a2+ab+b2+c34b2+a2b+a=b-a66c0+3c1b+a+2c2a2+ab+b2+3c32a3+a2b+ab2+b3fa+4fa+b2+fb=c0+c1a+c2a2+c3a3+4c0+c1·a+b2+c2·a+b22+c3a+b23+c0+c1b+c2b2+c3b3=6c0+c1a+2a+b+b+c2a2+a+b2+b2+c3a3+a+b32+b3=6c0+3c1a+b+2c2a2+ab+b2+12c32a3+a3+3a2b+3ab2+b3+2b3=6c6+3c1a+b+2c2a2+ab+b2+32c3a3+a2b+ab2+b3

    よって、

    abfxdx=b-a6fa+4fa+b2+fb

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Integral

print('4.')


class MyTestCase(TestCase):
    def test(self):
        x, a, b = symbols('x, a, b')
        f = sum([symbols(f'c{i}') * x ** i for i in range(4)])
        self.assertEqual(Integral(f, (x, a, b)).doit().expand(),
                         ((b - a) / 6 * (f.subs({x: a}) + 4 * f.subs({x: (a + b) / 2}) + f.subs({x: b}))).expand())


if __name__ == '__main__':
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample4.py -v 
4.
test (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.091s

OK
%

0 コメント:

コメントを投稿