2020年7月28日火曜日

学習環境

微分積分学 (ちくま学芸文庫) (吉田 洋一(著)、筑摩書房)のⅣ.(積分法)、演習問題3、4、5、6、7、8.の解答を求めてみる。


  1. dx a - b x = - 2 a - b x b

  2. x ( a 2 + x 2 ) 2 dx = ( a 2 + x 2 ) 2 2

  3. x 2 dx x 3 + 3 = 2 x 3 + 3 3

  4. ( a - x ) 2 x dx = - 2 ( a - x ) 3 3

  5. 2 x + 1 x 2 + x + 1 dx = 2 x 2 + x + 1

  6. x 2 + 2 ( x 3 + 6 x + 5 ) 1 3 dx = ( x 3 + 6 x + 5 ) 2 3 2

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import sqrt, root, Rational, Derivative
from sympy.abc import x, a, b

print('3, 4, 5, 6, 7, 8.')


class Test(TestCase):
    def test1(self):
        fs = [1 / sqrt(a - b * x),
              x * (a ** 2 + x ** 2) ** 2,
              x ** 2 / sqrt(x ** 3 + 3),
              (sqrt(a) - sqrt(x)) ** 2 / sqrt(x),
              (2 * x + 1) / sqrt(x ** 2 + x + 1),
              (x ** 2 + 2) / root(x ** 3 + 6 * x + 5, 3)]
        gs = [- 2 * sqrt(a - b * x) / b,
              (a ** 2 + x ** 2) ** 3 / 6,
              2 * sqrt(x ** 3 + 3) / 3,
              -2 * (sqrt(a) - sqrt(x)) ** 3 / 3,
              2 * sqrt(x ** 2 + x + 1),
              (x ** 3 + 6 * x + 5) ** Rational(2, 3) / 2]
        for i, (f, g) in enumerate(zip(fs, gs), 3):
            print(f'({i})')
            self.assertEqual(f.expand(), Derivative(g, x, 1).doit().expand())


if __name__ == "__main__":
    main()

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

% ./sample3.py -v
3, 4, 5, 6, 7, 8.
test1 (__main__.Test) ... (3)
(4)
(5)
(6)
(7)
(8)
ok

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

OK
%

0 コメント:

コメントを投稿