gpt4 book ai didi

python - 使用数组进行二维求和 - Python

转载 作者:行者123 更新时间:2023-12-01 01:34:10 28 4
gpt4 key购买 nike

我正在尝试使用数组方法对二维函数求和,但不知何故,使用 for 循环并没有输出正确的答案。我想找到(在 latex 中) $$\sum_{i=1}^{M}\sum_{j=1}^{M_2}\cos(i)\cos(j)$$ 根据 Mathematica 的答案当M=5时为1.52725。根据for循环:

def f(N):
s1=0;
for p1 in range(N):
for p2 in range(N):
s1+=np.cos(p1+1)*np.cos(p2+1)
return s1
print(f(4))

是 0.291927。

因此,我一直在尝试使用以下形式的一些代码:

def f1(N):
mat3=np.zeros((N,N),np.complex)
for i in range(0,len(mat3)):
for j in range(0,len(mat3)):
mat3[i][j]=np.cos(i+1)*np.cos(j+1)
return sum(mat3)

又是这样

print(f1(4))

输出 0.291927。查看数组,我们应该为 i 和 j 的每个值找到一个形式为

的矩阵
mat3=[[np.cos(1)*np.cos(1),np.cos(2)*np.cos(1),...],[np.cos(2)*np.cos(1),...]...[np.cos(N+1)*np.cos(N+1)]]

所以对于 N=4 我们应该有

mat3=[[np.cos(1)*np.cos(1) np.cos(2)*np.cos(1) ...] [np.cos(2)*np.cos(1) ...]...[... np.cos(5)*np.cos(5)]]

但我实际得到的是以下内容

mat3=[[0.29192658+0.j 0.+0.j 0.+0.j ... 0.+0.j] ... [... 0.+0.j]]

或除 mat3[0][0] 元素外全部为零的矩阵。

有人知道正确的方法来做到这一点并得到正确的答案吗?我选择这个作为例子,因为我试图解决的问题涉及绘制一个对两个索引求和的函数,并且 python 输出的函数与 Mathematica 不同(即 $$f( 形式的函数) E)=\sum_{i=1}^{M}\sum_{j=1}^{M_2}F(i,j,E)$$)。

最佳答案

示例代码中的 return 语句缩进不正确。它在第一次循环迭代中立即返回。相反,在函数体上缩进它,以便两个 for 循环都完成:

def f(N):
s1=0;
for p1 in range(N):
for p2 in range(N):
s1+=np.cos(p1+1)*np.cos(p2+1)
return s1

>>> print(f(5))
1.527247272700347

关于python - 使用数组进行二维求和 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52538032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com