2016年9月8日木曜日

開発環境

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 コメント:

コメントを投稿