我目前正在使用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'中的大小是固定的,那么这似乎会容易得多,因为我可以分别定义函数,然后将它们乘以一个新函数,但是由于大小不是固定的,因此这种方法不适合。有人有办法解决吗?
您可以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
说实话,我并没有太多收获,我仍在努力弄清楚如何使功能不重叠。
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对其进行集成。
说实话,我并没有太多收获,我仍在努力弄清楚如何使功能不重叠。
[3.51188643 5.51188643 9.51188643]
18.53565929452874
我应该澄清最终结果不能在float中,因为以后需要使用dblquad对其进行集成。