Построение неявных полиномиальных функций высокого порядка в Python - PullRequest
0 голосов
/ 16 апреля 2020

Используя Python, можно ли построить неявные уравнения в x и y ?

Например,
x³ y² + 3 xy + 9 x + x⁴ y⁴ + x⁴ + 3 = 0

или, используя Python -подобную запись

x**3*y**2 + 3*x*y + 9*x + x**4*y**4 + 3 = 0

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете построить неявную функцию с помощью внешней библиотеки SymPy , а именно с помощью sympy.plot_implicit, которая в свою очередь использует Matplotlib под капотом:

from sympy import symbols, plot_implicit
x, y = symbols('x y')
plot_implicit(x**3*y**2+3*x*y+9*x+x**4*y**4+x**4+3, x, y)

enter image description here

Другой вариант, менее прямой, чем использование SymPy, заключается в расширении использования plt.contour в Matplotlib

In [1]: import matplotlib.pyplot as plt 
   ...: import numpy as np 
   ...:  
   ...: %matplotlib 
   ...:  
   ...: X = np.linspace(-4, 4, 201) 
   ...:  
   ...: x, y = np.meshgrid(X, X)                                                          

In [2]: z = x**3*y**2+3*x*y+9*x+x**4*y**4+x**4+3                                          

In [3]: plt.contour(x, y, z, (0,))                                                        
Out[3]: <matplotlib.contour.QuadContourSet at 0x7fb866c805d0>

(обратите внимание, что (0,) - это кортеж, содержащий все значения, для которых вы хотите нарисовать изолинии)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...