首页 > 解决方案 > 如何在 Python 中绘制函数 ax^2+bxy+cy^2+d=0?

问题描述

我有一个形式为ax^2+bxy+cy^2+d=0. 这个可以写成f(x,y) = 0。我尝试编写代码来在 x,y 平面上绘制函数,如下所示

import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    return 0.01*x**2+0.008*x*y-0.013*y**2+0.15*x+0.003*y+1.0097

x = np.arange(-10.0,10.0,0.1)
y = np.arange(-10.0,10.0,0.1)
plt.plot(x, f(x, y));

错误的图表

但我只得到了我的函数的一维图。f(x,y)我想要取值的图表0

标签: python

解决方案


要将您的函数与 2D 坐标一起使用,您可以使用创建的网格xy值来评估它np.meshgrid。要将图形绘制为 2D 函数,您可以使用plt.contour并将级别设置为您感兴趣的函数值

import numpy as np
import matplotlib.pyplot as plt

def f(x,y):
    return 0.01*x**2+0.008*x*y-0.013*y**2+0.15*x+0.003*y+1.0097

x = np.arange(-10.0,10.0,0.1)
y = np.arange(-10.0,10.0,0.1)
X, Y = np.meshgrid(x,y)
plt.contour(x, y, f(X, Y), [0]);

输出

f(x)


推荐阅读