亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在 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 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號