学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windowsアプリ)
- iPad
- MyScript Nebo - MyScript(iPadアプリ(iOS))
- 参考書籍
新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第10章(新しい数とその表示ー複素数と複素平面)、10.1(複素平面)、ド・モアブルの公式と複素数のn乗根の問13の解答を求めてみる。
n が3の倍数のとき。
とおく。
n が3の 倍数ではないとき。
コード
#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, solve, I
print('13.')
w = symbols('w', imag=False)
ws = [z for z in solve(w ** 3 - 1) if z != 1]
n, k = symbols('n, k', integer=True)
fs = [(w ** (2 * n) + w ** n + 1).subs({w: w0}) for w0 in ws]
class MyTestCubic(TestCase):
def test_0(self):
for f in fs:
self.assertEqual(f.subs({n: 3 * k}).simplify(), 3)
def test_1(self):
for f in fs:
a, b = f.subs({n: 3 * k + 1}).as_real_imag()
self.assertEqual(a.simplify(), 0)
self.assertEqual(b.simplify(), 0)
def test_2(self):
for f in fs:
a, b = f.subs({n: 3 * k + 2}).as_real_imag()
self.assertEqual(a.simplify(), 0)
self.assertEqual(b.simplify(), 0)
if __name__ == "__main__":
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample13.py -v
13.
test_0 (__main__.MyTestCubic) ... ok
test_1 (__main__.MyTestCubic) ... ok
test_2 (__main__.MyTestCubic) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.720s
OK
%
0 コメント:
コメントを投稿