赞
踩
我试图在
python中创建一个函数,它将添加一堆数学术语,其中包括一些任意变量名称,在构造完整的东西之后进行评估.所以举个例子
def transform(terms, xterm):
function=.5
step=terms
odd=1
while step>0:
function+=(2/odd*np.pi)*np.sin(odd*np.pi*xterm)
odd+=2
step-=1
return function
test=transform(10,somexvariable)
print test
这是我在力学课上必须完成的特定函数的傅立叶级数.
基本上我想,对于术语数量(比如5),创建一个如下所示的变量:
function = .5 + (2/odd*np.pi)*np.sin(odd*np.pi*xvariable) +.......
我想要的许多术语,其中变量’odd’是唯一改变的数字.
这个问题的关键和难点是插入一些名为’xvariable’的虚拟变量,以便稍后我可以创建一个这样的数组:
x2 = np.arange(0,10,.05)
y = transform(2,x2)
结果将是在我使用’transform’创建的函数中计算的那些x值的数组.
我确信我会以错误的方式解决这个问题……但我似乎无法弄清楚这项工作的必要步骤顺序.
请帮忙.谢谢!
最佳答案 我相信你要找的是
functools.partial.它允许你创建一个带有一些预填充参数的函数.
from functools import partial
def sum_powers(x, terms):
result = 0
for term in terms:
result += term ** x
return result
sum_squares = partial(sum_powers, x=2)
sum_squares(terms=[1, 2, 3])
# 14
sum_cubes = partial(sum_powers, x=3)
sum_cubes(terms=[1, 2, 3])
# 36
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。