首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建python函数以输出周期函数

创建python函数以输出周期函数
EN

Stack Overflow用户
提问于 2017-07-26 18:29:57
回答 2查看 1.6K关注 0票数 0

我正在尝试创建一个python函数,使输出成为一个周期函数。但是,我不知道如何编码一个变量(例如X )作为输出。我知道对输出为x**2的东西使用Sympy,但出于某种原因,我不能以同样的方式使用这个变量。当我试图使用渐近得到一些输出函数时,对于一个随机的例子,cos(4x),我从python得到的错误解释是“‘符号’对象没有属性'cos'”。在python中,如果输出是cos(4x)函数,而不是在某个预定的x上计算的cos(4x),我如何编写一个函数来给出输出cos(4x)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-26 18:48:56

函数是对象。您可以在函数内定义函数,然后返回新定义的函数。这些被称为闭包

代码语言:javascript
复制
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))

指纹:

代码语言:javascript
复制
cos(x) + cos(2*x)
票数 0
EN

Stack Overflow用户

发布于 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处的余弦函数。

试着这样做:

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45334853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档