我试图使用欧拉方法求解一阶微分方程,然后通过使用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()
答案 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))