開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の7章(初等解析問題を解く)、7.10(プログラミングチャレンジ)、問題7-3(2曲線で囲まれた領域の面積)を取り組んでみる。
問題7-3(2曲線で囲まれた領域の面積)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sympy
import matplotlib.pyplot as plt
def calc_area(f, g, var, a, b):
return sympy.Integral(f - g, (var, a, b)).doit()
if __name__ == '__main__':
f = input('Enter a upper function in one variable: ')
g = input('Enter a lower function in one variable: ')
var = input('Enter the variable: ')
a = float(input('lower: '))
b = float(input('upper: '))
try:
f = sympy.sympify(f)
g = sympy.sympify(g)
except sympify.SympifyError as err:
print(err)
else:
var = sympy.Symbol(var)
area = calc_area(f, g, var, a, b)
print('area: {0}'.format(area))
plt.rcParams['figure.figsize'] = (5, 5)
p = sympy.plot(f, g, (var, a, b), show=False)
p.save('sample3.png')
p.show()
入出力結果(Terminal, IPython)
$ ./sample3.py Enter a upper function in one variable: x Enter a lower function in one variable: x**2 Enter the variable: x lower: 0 upper: 1 area: 0.166666666666667 $
0 コメント:
コメントを投稿