为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在 python 中为 scipy.integrate 乘以 lambda 函数?

是否可以在 python 中为 scipy.integrate 乘以 lambda 函数?

慕森卡 2023-07-18 09:46:48
我想积分从 -1 到 1 的两个函数的x(t)*p1(t)乘积t。目前我编写了以下代码:import scipy.integrate as simport numpy as npp1 = lambda t: 1p2 = lambda t: tp3 = lambda t: (3*(t**2)-1)/2x = 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,所以这似乎效率很低。有没有更干净的方法来做到这一点?
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您想找到一个确定的积分(只是积分结果值,当给出限制时,就像您的情况一样)您不需要任何符号,事实上它只会使您的生活变得复杂并减慢计算速度。


为了找到f1()和乘法的定积分f2(),您只需执行以下操作:


import scipy.integrate as s

import numpy as np


def f1(t):

    return np.abs(t)


def f2(t):

    return (3*(t**2)-1)/2


def f(t):

    return f1(t) * f2(t)


integral = s.quad(f, -1, 1)

print(integral)

# or, if you like lambda functions ;-)

integral = s.quad(lambda t: f1(t)*f2(t), -1, 1)

print(integral)

我仅使用 f1 和 f2 进行演示,因为您定义了更多实际尝试集成的函数。


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信