python递归函数1到n求和_使用递归函数的python求和

我正在计算下面的总和

SjNdk.jpg

其中f_j,f_j是之前计算的q的函数,q=sin(theta)where theta varies[0,90],而{}是我计算的每两个元素之间的距离。在

我起初使用了sum()函数,但由于它返回了一个浮点数,所以它不可能正常工作,但由于q在变化,而且没有求和,所以我希望得到一个数组!所以我放弃了。在

我的第二种方法是递归函数来计算这个求和,但是我得到了很多错误,我不知道我的代码有什么问题,因为我认为所有的语法都是正确的,我不知道为什么我一个接一个地得到错误或错误的值!在theta=arange(radians(0.5), radians(40.010), radians(0.03))

q=sin(theta)

f_q_1= 2*exp(-3*pow(q,2))+4*exp(-5*pow(q,2))+1.95

f_q_2=...

.

f_q_i(or j).

atom_positions= open('coordinates.txt','r')

lines = atom_positions.readlines()

for i in range(0, len(lines)):

line = lines[i]

values = line.split(" ")

for j in range(0,len(lines)):

if j<>i:

nextLine = lines[j]

nextLineValues = nextLine.split(" ")

r =sqrt((float(values[5])-float(nextLineValues[5]))**2 + (float(values[6])

-float(nextLineValues[6]))**2+(float(values[7])-float(nextLineValues[7]))**2)

line_len = len(lines)

def I_tot(line_len,i,f_i,f_j,r):

I=0

if i

I=I+(f_i*f_j*sin(q*r)/(q*r))

return I + I_tot(line_len,i,f_i,f_j,r)

else:

return I

else:

plot(2*theta,I_tot)

show()

atom_positions.close()

错误:

^{pr2}$

+这个问题不是以前这里所问的递归求和问题的重复,因为我检查了它们,找不到问题的解决方案。在

我也试过这个功能def I_tot():

I=0

for i in range(0,len(lines)):

I=I+(f_i*f_j*sin(q*r)/(q*r))

return I

但我不知道它是否给出了正确的求和,因为最后得到的图形与我的预期相差甚远,表明这个求和不应该是正确的。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值