開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の7章(初等解析問題を解く)、7.10(プログラミングチャレンジ)、問題7-4(曲線の長さを求める)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 from sympy import symbols, sympify, SympifyError, Integral, Derivative, sqrt, plot x = symbols('x') def length(f, a, b): f1 = Derivative(f, x, 1).doit() I = Integral(sqrt(1 + f1 ** 2), (x, a, b)) return I.doit() if __name__ == '__main__': f = input('Enter a function in one variable(x): ') a = float(input('a: ')) b = float(input('b: ')) try: f = sympify(f) except SympifyError as err: print(f'Invalid function entered: {err}') else: print(f'length: {length(f, a, b)}') p = plot(f, (x, a - 1, b + 1), legend=True, show=False) p.save('sample4.svg')
入出力結果(Terminal, Jupyter(IPython))
$ ./sample4.py Enter a function in one variable(x): 1 a: 0 b: 10 length: 10.0000000000000 $ ./sample4.py Enter a function in one variable(x): x a: 0 b: 1 length: 1.0*sqrt(2) $ ./sample4.py Enter a function in one variable(x): 2 * x ** 2 + 3 * x + 1 a: -5 b: 10 length: 268.372650946022 $
0 コメント:
コメントを投稿