使用 Sympy 绘制隐式函数

发布于 2025-01-10 19:52:50 字数 769 浏览 0 评论 0原文

我正在尝试绘制函数
我尝试使用 plot_implicit() 来绘制它(在我的示例中分别是 n_eff vs ka - yx) code> sympy 的函数,但可能由于函数太复杂而花费了太多时间。

check here

我想到了另一种方法来解决它,即使用 sympy 的求解函数来解决 x 的不同值.即,为x创建一个数组,并使用该数组的值来查找y,然后进行绘图。我是 sympy 的新手,所以我不知道该怎么做。任何帮助表示赞赏 假设 n1、n2 和 n3 的值已知并且只是数字

import numpy as np
import matplotlib.pyplot as plt
from sympy import var, plot_implicit
import sympy
var('x y')
n1 = 2
n2 = 2.2
n3 = 2.1
U = x*(n1**2 + y)**(1/2)
W2 = x*(y**2 - n2**2)**(1/2)
W3 = x*(y**2 - n3**2)**(1/2)
f = sympy.tanh(2*U) - n1**2*U*(n3**2*W2 + n2**2*W3)/(n2**2*n3**2*U**2 + n1**4*W2*W3)
plot_implicit(f)

I am trying to plot the function
I tried to plot (n_eff vs ka - y and x respectively in my example) it by using the plot_implicit() function of sympy but it is taking too much time probably because of function being too complicated.

check here

I thought of another method to solve it by using solve function of sympy for different values of x. i.e., make an array for x and use values of that array to find y and then plot. I am new to sympy so I dont know how to do that. Any help is appreciated
Assume that values of n1, n2 and n3 are known and are just numbers

import numpy as np
import matplotlib.pyplot as plt
from sympy import var, plot_implicit
import sympy
var('x y')
n1 = 2
n2 = 2.2
n3 = 2.1
U = x*(n1**2 + y)**(1/2)
W2 = x*(y**2 - n2**2)**(1/2)
W3 = x*(y**2 - n3**2)**(1/2)
f = sympy.tanh(2*U) - n1**2*U*(n3**2*W2 + n2**2*W3)/(n2**2*n3**2*U**2 + n1**4*W2*W3)
plot_implicit(f)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文