分配列表

时间:2018-01-06 19:18:51

标签: python syntax

我试图使用欧拉方法求解一阶微分方程,然后通过使用0到4和0.5区间的范围将它们绘制在一起来将其与实际解决方案进行比较。下面是代码。

它在第19行显示语法错误(array = [])。有人可以解释一下为什么会这样吗?

import matplotlib.pyplot as plt

def derivative(x):
    return (-2 * (x ** 3) + 12 * (x **2) - 20 * x + 8.5)

def value_new(value, derivative):
    return value + derivative * 0.5

def real_value(x):
    return (-0.5 * (x ** 4) + 4 * (x ** 3) - 10 * (x ** 2) + 8.5 * x + 1)

x = [0.5 * i for i in range(9)]
value = [1]

for i in x:
    y.append(value_new(y[-1], derivative(i))


actual = [] # this line shows invalid syntax

for i in x:
    actual.append(real_value(i))

plt.plot(x, value, x, actual, 'ro')
plt.show()

1 个答案:

答案 0 :(得分:2)

您在下面的代码行中缺少右括号。

if (not ({200,404}.contains(S) && P)){
    log();
    return;
}
if (S !=200){
    return;
}
// other stuff

添加它,你应该很高兴。

y.append(value_new(y[-1], derivative(i))