我正在尝试使用箭头函数绘制动态系统的矢量场。
我有2个列表X和V.
我需要构建2个列表UE和VE分别包含f返回的第一个和第二个值,但是我有以下错误:
解包的价值太多了。
这是我的代码。
import numpy as np
import scipy # donne acces aux librairies scipy, scipy.linalg et scipy.integrate
import scipy.linalg
import scipy.integrate
import matplotlib.pyplot as plt
import math
%matplotlib inline
def f(x,v,t):
return v,-(float(g)/l)*np.sin(x)
t0=0
x0=1
v0=0
T=20
l=1
g=9.81
UE, VE = np.array([f(x,v,0) for x,v in zip(X,V)])
plt.quiver(X, Y, UE, VE)
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
通过查看错误的详细信息,您应该能够发现有问题的错误发生在
np.array([f(x,v,0) for x,v in zip(X,V)])
问题是数组包含两个以上的元素,因此将其解压缩到UE
和VE
是不可能的。
在你的情况下,它看起来你真正想要的是数组的转置,
np.array([f(x,v,0) for x,v in zip(X,V)]).T