我具有以下二次形式f(x)= x ^ T A x-b ^ T x,我用numpy定义了矩阵A = np.array([4,3], [3,7])
和b = np.array([3,-7])
。所以我们在这里谈论二维,这意味着等高线图将具有x1和x2轴,我希望它们的范围从-4到4。
[我尝试先做u = np.linspace(-4,4,100)
,然后做x,y=np.meshgrid(u,u)
,以创建2轴x1和x2,但后来我不知道如何定义函数f(x),如果我做plt.contour(x,y,f)
,将不起作用,因为仅将x作为参数定义了函数f(x)。
任何想法都将不胜感激。谢谢!
如果您的变换矩阵A,b看起来像
A = np.array([[4,3], [3,7]])
b = np.array([3,-7])
您的数据看起来像
u = np.linspace(-4,4,100)
x, y = np.meshgrid(u,u)
x.shape
x和y的形状为(100,100)
。
您可以将f(x)定义为
def f(x):
return np.dot(np.dot(x.T,A),x) - np.dot(b,x)
然后将形状为(2,N)的任何内容输入到函数f中。不幸的是,我不确定要输入哪个值。但是一个例子是:[(-4:4),(-4:4)]
plt.contour(x, y, f(x[0:2,:]))