我正在尝试创建一个python函数,使输出成为一个周期函数。但是,我不知道如何编码一个变量(例如X )作为输出。我知道对输出为x**2的东西使用Sympy,但出于某种原因,我不能以同样的方式使用这个变量。当我试图使用渐近得到一些输出函数时,对于一个随机的例子,cos(4x),我从python得到的错误解释是“‘符号’对象没有属性'cos'”。在python中,如果输出是cos(4x)函数,而不是在某个预定的x上计算的cos(4x),我如何编写一个函数来给出输出cos(4x)?
发布于 2017-07-26 18:48:56
函数是对象。您可以在函数内定义函数,然后返回新定义的函数。这些被称为闭包
import sympy
def expansion(coef1, coef2):
def exp(x):
return sympy.cos(coef1*x) + sympy.cos(coef2*x)
return exp
c1 = 1
c2 = 2
my_exp = expansion(c1, c2)
x = sympy.symbols("x")
print(my_exp(x))指纹:
cos(x) + cos(2*x)发布于 2017-07-26 18:33:58
根据你的评论:
基本上,我写的是一个很大的函数,它把cos(kx)+sin(kx)与k值相加。例如k个数字1,2,3的列表,所以我想要输出的函数是cos(x)+sin(x)+cos(2x)+sin(2x)+cos(3x)+sin(3x).输出是待定x处的余弦函数。
试着这样做:
import math
def func(x, arr):
res = 0
for k in arr:
res += (math.cos(k*x) + math.sin(k*x))
return res
if __name__ == '__main__':
arr = [1,2,3]
x = 4
print(func(x, arr))https://stackoverflow.com/questions/45334853
复制相似问题