我用sympy绘制了一个隐式函数。然而,该图看起来不像曲线

2024-09-26 18:07:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数cons12,它依赖于符号变量u,v。其定义见以下代码:

from sympy import *
init_printing()
from sympy.solvers import solve

n=2

u, v, b, d, k=symbols('u v b d k')

var=[u,v]
par=[b,d]

f=Matrix([-u+d*v+u**2*v,b-d*v-u**2*v])

diffmatrix=zeros(n)
for i in range(n):
    diffmatrix[i,i]=symbols('D'+str(i+1))
    globals()['D'+str(i+1)]=symbols('D'+str(i+1))

eq=Matrix(solve(f,var)[0])

jacobianmat=f.jacobian(var)

cons1=(Add(jacobianmat,Mul(-1,Pow(k,2),diffmatrix))).det()
cons2=simplify(Mul(diff((Add(jacobianmat,Mul(-1,Pow(k,2),diffmatrix))).det(),k),Pow(Mul(2,k),-1)))

for i in range(n):
    cons1=cons1.subs({var[i]:eq[i]})
    cons2=cons2.subs({var[i]:eq[i]})
    
cons12=resultant(cons1,cons2,k)

cons12=cons12.subs({'D1':0.002025})
cons12=cons12.subs({'D2':1})

我想使用sympy隐式地绘制表达式cons12=0。我已经使用了命令

plot_implicit(Eq(cons12,0),(u,0,4),(v,0,6))

问题是,我得到了以下图片:

plot

我已经在Mathematica中绘制了相同的函数,并且我已经看到,该图应该类似,但线宽较低,如下所示:

niceplot

关于如何改进Python中的绘图有什么想法吗


Tags: 函数fromvareqsubssymbolssympystr

热门问题