【发布时间】:2020-09-04 14:24:12
【问题描述】:
我想集成两个函数 x(t)*p1(t) 的乘积,因为 t 从 -1 变为 1。
目前我已经编写了这段代码:
import scipy.integrate as s
import numpy as np
p1 = lambda t: 1
p2 = lambda t: t
p3 = lambda t: (3*(t**2)-1)/2
x = lambda t: abs(t)
integral = s.quad(x*p1, -1, 1)
print(integral)
但是,我收到以下错误:
TypeError: unsupported operand type(s) for *: 'function' and 'function'
是否可以象征性地组合两个 lambda 函数来整合它们?我可以定义一个函数xp1 = lambda t: x(t)*p1(t),但由于我必须为所有pn 都这样做,这似乎有点低效。
有没有更简洁的方法来做到这一点?
【问题讨论】:
-
Python 函数,无论是否为 lambda,都不是符号的。如您所见,没有函数乘法之类的东西。您担心什么效率低下?运行?还是你的键盘时间?