学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第4部(級数)、第15章(級数)、7(べき級数の微分と積分)の練習問題1を求めてみる。
コード
Python 3
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import pprint, symbols, summation, oo, Limit, plot, factorial, Derivative
print('1.')
x, k, n = symbols('x, k, n')
s = summation((-1) ** k * x ** (2 * k + 1) / factorial(2 * k + 1), (k, 0, oo))
c = summation((-1) ** k * x ** (2 * k) / factorial(2 * k), (k, 0, oo))
class MyTestCase(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_ds_c(self):
self.assertEqual(Derivative(s, x, 1).doit(), c)
def test_dc_s(self):
self.assertEqual(Derivative(c, x, 1).doit(), -s)
def f(n):
return sum([(-1) ** k * x ** (2 * k + 1) / factorial(2 * k + 1) for k in range(n + 1)])
def g(n):
return sum([(-1) ** k * x ** (2 * k) / factorial(2 * k) for k in range(n + 1)])
ns = range(4)
fs = [s] + [f(n0) for n0 in ns]
gs = [c] + [f(n0) for n0 in ns]
p = plot(*(fs + gs),
(x, -10, 10),
ylim=(-10, 10),
legend=False,
show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']
for o, color in zip(p, colors):
o.line_color = color
for o in zip(fs + gs, colors):
pprint(o)
print()
p.show()
p.save('sample1.png')
if __name__ == '__main__':
main()
入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
% ./sample1.py -v 1. (sin(x), red) (x, green) ⎛ 3 ⎞ ⎜ x ⎟ ⎜- ── + x, blue⎟ ⎝ 6 ⎠ ⎛ 5 3 ⎞ ⎜ x x ⎟ ⎜─── - ── + x, brown⎟ ⎝120 6 ⎠ ⎛ 7 5 3 ⎞ ⎜ x x x ⎟ ⎜- ──── + ─── - ── + x, orange⎟ ⎝ 5040 120 6 ⎠ (cos(x), purple) (x, pink) ⎛ 3 ⎞ ⎜ x ⎟ ⎜- ── + x, gray⎟ ⎝ 6 ⎠ ⎛ 5 3 ⎞ ⎜ x x ⎟ ⎜─── - ── + x, skyblue⎟ ⎝120 6 ⎠ ⎛ 7 5 3 ⎞ ⎜ x x x ⎟ ⎜- ──── + ─── - ── + x, yellow⎟ ⎝ 5040 120 6 ⎠ test_dc_s (__main__.MyTestCase) ... ok test_ds_c (__main__.MyTestCase) ... ok ---------------------------------------------------------------------- Ran 2 tests in 0.002s OK %
0 コメント:
コメントを投稿