開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の4章(SymPyで代数と式を計算する)、4.6(プログラミングチャレンジ)、問題4-2(グラフを使った方程式ソルバー)を取り組んでみる。
問題4-2(グラフを使った方程式ソルバー)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sympy
from sympy.plotting import plot
def plot_expressions(*exprs):
y = sympy.Symbol('y')
exprs_y = map(lambda expr: sympy.solve(expr, y)[0], exprs)
p = plot(*exprs_y, show=False)
p.save('sample2.png')
p.show()
if __name__ == '__main__':
expr1 = input('Enter your first expression in terms of x and y: ')
expr2 = input('Enter your first expression in terms of x and y: ')
try:
expr1 = sympy.sympify(expr1)
expr2 = sympy.sympify(expr2)
except SympifyError as err:
print(err)
except Exception as err:
print(err)
else:
print(sympy.solve((expr1, expr2), dict=True))
plot_expressions(expr1, expr2)
入出力結果(Terminal, IPython)
$ ./sample2.py Enter your first expression in terms of x and y: 2 * x + 3 * y - 6 Enter your first expression in terms of x and y: 3 * x + 2 * y - 12 [{x: 24/5, y: -6/5}] $
0 コメント:
コメントを投稿