2018年7月3日火曜日

開発環境

Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の7章(初等解析問題を解く)、7.10(プログラミングチャレンジ)、問題7-3(2曲線で囲まれた領域の面積)を取り組んでみる。

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import symbols, sympify, SympifyError, Integral, plot

x = symbols('x')
colors = ['red', 'green']


def area(f, g, a, b):
    I = Integral(f - g, (x, a, b))
    return I.doit()


if __name__ == '__main__':
    f = input('Enter a function in one variable(x): ')
    g = input('Enter a function in one variable(x): ')
    a = float(input('a: '))
    b = float(input('b: '))
    try:
        f = sympify(f)
        g = sympify(g)
    except SympifyError as err:
        print(f'Invalid function entered: {err}')
    else:
        print(f'area: {area(f, g, a, b)}')
        p = plot(f, g, (x, a - 1, b + 1), legend=True, show=False)
        for i, color in enumerate(colors):
            p[i].line_color = color
        p.save('sample3.svg')

入出力結果(Terminal, Jupyter(IPython))

$ ./sample3.py
Enter a function in one variable(x): x
Enter a function in one variable(x): 0
a: 0
b: 1
area: 0.500000000000000
$ ./sample3.py
Enter a function in one variable(x): x
Enter a function in one variable(x): x ** 2
a: 0
b: 1
area: 0.166666666666667
$ 

0 コメント:

コメントを投稿