2020年1月12日日曜日

学習環境

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


  1. 3次以下の整式 f を

    f x = k = 0 3 c k x k

    とおく。

    a b f x dx = a b k = 0 3 c k x k dx = k = 0 3 c k k + 1 x k + 1 a b = k = 0 3 c k k + 1 b k + 1 - a k + 1 = c 0 b - a + c 1 2 b 2 - a 2 + c 2 3 b 3 - a 3 + c 3 4 b 4 - a 4 = b - a c 0 + c 1 2 b + a + c 2 3 a 2 + a b + b 2 + c 3 4 b 2 + a 2 b + a = b - a 6 6 c 0 + 3 c 1 b + a + 2 c 2 a 2 + a b + b 2 + 3 c 3 2 a 3 + a 2 b + a b 2 + b 3 f a + 4 f a + b 2 + f b = c 0 + c 1 a + c 2 a 2 + c 3 a 3 + 4 c 0 + c 1 · a + b 2 + c 2 · a + b 2 2 + c 3 a + b 2 3 + c 0 + c 1 b + c 2 b 2 + c 3 b 3 = 6 c 0 + c 1 a + 2 a + b + b + c 2 a 2 + a + b 2 + b 2 + c 3 a 3 + a + b 3 2 + b 3 = 6 c 0 + 3 c 1 a + b + 2 c 2 a 2 + a b + b 2 + 1 2 c 3 2 a 3 + a 3 + 3 a 2 b + 3 a b 2 + b 3 + 2 b 3 = 6 c 6 + 3 c 1 a + b + 2 c 2 a 2 + a b + b 2 + 3 2 c 3 a 3 + a 2 b + a b 2 + b 3

    よって、

    a b f x dx = b - a 6 f a + 4 f a + b 2 + f b

コード

#!/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 コメント:

コメントを投稿