python - 计算递归方程的列表结果

标签 python for-loop for-in-loop

我在计算方程的元素列表时遇到了一些麻烦,结果给出了影响第一个方程的第二个方程的元素列表。方程设置为L1(i) =lambda1(i) * W1(i)W1(i) = Q1(i-1)(R1/c1) + L1(i- 1)(s1/c1),其中 lamb1Q1 的列表值已知,且 L1(0) = W1 的初始列表值(0) = 0

c1 = 1
R1 = 4.58
s1 = 8.41
lamb1 = [0.0, 0.0072, 0.0145, 0.0216, 0.0287, 0.0357, 0.0426, 0.0494, 0.0561, 0.0626, 0.0689]
Q1 = [0.0, 0.0612, 0.1219, 0.1821, 0.2417, 0.3006, 0.3586, 0.4158, 0.4719, 0.5268, 0.5802]

L1 = [0]
W1 = [0]

for i,j in zip(lamb1,W1):
    L_1 = i * j
    L1.append(L_1)

for i,j in zip(Q1,L1):
    W_1 = (R1/c1) * i + (s1/c1) * j
    W1.append(W_1)

完成后,L1 的迭代在第二个元素处停止,W1 的迭代在第三个元素处停止,所以我尝试了以下操作:

for i,j in zip(lamb1,W1):
    L_1 = i * j
    print(L_1)
    L1.append(L_1)
    for i,j in zip(Q1,L1):
        W_1 = (R1/c1) * i + (s1/c1) * j
        W1.append(W_1)

但是附加 L_1W_1 会弄乱 future 的结果。

对出了什么问题有什么想法吗?也许这是一个基本错误,但我已经挠头好几天了。

最佳答案

你的错误是L1和W1应该只用于存储结果。您不需要它们来进行计算。

这是我的版本。我对列表使用大写名称,对元素使用小写名称,以避免混淆(i 和 j 是不好的选择,因为它通常用于整数或计数器,并且没有给出它们在公式中的含义的线索)。

c1 = 1
R1 = 4.58
s1 = 8.41
LAMB1 = [0.0, 0.0072, 0.0145, 0.0216, 0.0287, 0.0357, 0.0426, 0.0494, 0.0561, 0.0626, 0.0689]
Q1 = [0.0, 0.0612, 0.1219, 0.1821, 0.2417, 0.3006, 0.3586, 0.4158, 0.4719, 0.5268, 0.5802]

L1 = [0.]
W1 = [0.]

w1=0.
l1=0.

for lamb1,q1 in zip(LAMB1[1:],Q1[:-1]):
    
    # calculation
    w1 = (R1/c1) * q1 + (s1/c1) * l1
    l1 = w1 * lamb1
    
    
    # storage
    L1.append(l1)
    W1.append(w1)

print(L1)
print(W1)

这给了我:

 [0.0, 0.0, 0.004064292, 0.012797626227552001, 0.027025241249665544, 0.047633377557075834, 0.07571488444386332, 0.11259001880174077, 0.1599549038606801, 0.21950832361591682, 0.29343194021091945]
[0.0, 0.0, 0.280296, 0.59248269572, 0.9416460365737124, 1.3342682789096871, 1.7773447052550075, 2.2791501781728902, 2.8512460581226398, 3.5065227414683195, 4.258809001609861]

关于python - 计算递归方程的列表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65220062/

相关文章:

Java 的 for 循环问题

c# - 如何在 C# 中从这种类型的字典中获取值

python - 优化列表范围内的数字总和

dictionary - Swift for-in 循环字典实验

javascript - 我可以在 Javascript for...in 和 for...of 循环中使用 continue 和 break 吗?

python - 当调试设置为 False 时,我无法登录我的 Django 应用程序

python - 为什么这个看似递归的代码在 skimage 的源代码中可以工作?

python - HTTP 错误 404 : Not Found - BeautifulSoup and Python

javascript - ESLint 不允许 in

python - 在 Gridsearchcv 中评分