回転体の体積を計算するプログラムを書いています。この最初のステップは、積分を計算することです。私はscipy.integrate
これに使用していますが、方程式を作成するための最良の方法を見つけることができません(x=x**2
コマンドラインでの入力など。当初は、x | yに関して引数を追加してから、残念ながら、argparse
ラムダを引数型として使用することはありません。文字列を使用してラムダ(f = lambda x: args.equation
)を作成しようとすると、文字列が返されます(当然のことながら実際に)。
これが私がこれまでに得たものです:
import sys
import argparse
import math
from scipy import integrate
parser = argparse.ArgumentParser(description='Find the volume of the solid of rotation defined')
parser.add_argument('equation', help='continous function')
parser.add_argument('a', type=float, help='bound \'a\'')
parser.add_argument('b', type=float, help='bound \'b\'')
parser.add_argument('-axis', metavar='x|y', help='axis of revolution')
args = parser.parse_args()
def volume(func, a, b, axis=None):
integral = integrate.quad(func, a, b)
return scipy.py * integral
print volume(args.equation, args.a, args.b)
アドバイスをいただければ幸いです