在Python中一起乘法功能

问题描述 投票:0回答:2

我目前正在使用Python,并且我有一个函数需要针对不同的常数对其自身进行乘法运算。

例如如果我有f(x,y)= x^2y+a,则'a'是一些常数(可能是常数列表)。

如果'a'是一个列表(大小取决于输入,未知大小,那么如果我们说a = [1,3,7],我要执行的操作是

(x^2y+1)*(x^2y+3)*(x^2y+7)

但是一般化为'a'中的n个元素。在Python中是否有一种简单的方法可以做到这一点,因为我想不出解决此问题的合适方法?如果'a'中的大小是固定的,那么这似乎会容易得多,因为我可以分别定义函数,然后将它们乘以一个新函数,但是由于大小不是固定的,因此这种方法不适合。有人有办法解决吗?

python-3.x function lambda multiplying
2个回答
0
投票

您可以numpy ftw,很容易进入。

import numpy as np
a = np.array([1,3,7])
x = 10
y = 0.2
print(x ** (2*y) + a)
print(np.sum(x**(2*y)+a))

输出:

[3.51188643 5.51188643 9.51188643]
18.53565929452874

0
投票

说实话,我并没有太多收获,我仍在努力弄清楚如何使功能不重叠。

a=[1,3,7]

for i in range(0,len(a)-1):
    def f(x,y):
        return (x**2)*y+a[i]
    def g(x,y):
        return (x**2)*y+a[i+1]
    def h(x,y):
        return f(x,y)*g(x,y)
f1= lambda y, x: h(x,y)
integrate.dblquad(f1, 0, 2, lambda x: 1, lambda x: 10)

我应该澄清最终结果不能在float中,因为以后需要使用dblquad对其进行集成。


0
投票

说实话,我并没有太多收获,我仍在努力弄清楚如何使功能不重叠。

[3.51188643 5.51188643 9.51188643]
18.53565929452874

我应该澄清最终结果不能在float中,因为以后需要使用dblquad对其进行集成。

© www.soinside.com 2019 - 2024. All rights reserved.