You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制根式方程?含三元根式方程绘图需求

直接绘制根式方程图像的方法与Python库推荐

方法一:隐式函数绘图(无需消元)

直接用支持隐式方程绘图的工具,跳过消根号的步骤,从根源上避免增根问题。matplotlib结合numpy就能实现,核心是生成网格点代入方程,筛选满足条件的点绘制曲线。

示例代码

import numpy as np
import matplotlib.pyplot as plt

# 替换成你的实际参数
X1, Y1 = 0, 0
X2, Y2 = 2, 0
X3, Y3 = 1, 2
t1, t2, t3 = 1, 1, 1
S = 3

# 定义你的三个根式方程(根据实际形式修改)
def eq1(x, y):
    return np.sqrt((x - X1)**2 + (y - Y1)**2) + t1 * np.sqrt((x - X2)**2 + (y - Y2)**2) - S

def eq2(x, y):
    return np.sqrt((x - X1)**2 + (y - Y1)**2) + t2 * np.sqrt((x - X3)**2 + (y - Y3)**2) - S

def eq3(x, y):
    return np.sqrt((x - X2)**2 + (y - Y2)**2) + t3 * np.sqrt((x - X3)**2 + (y - Y3)**2) - S

# 生成绘图网格
x_range = np.linspace(-5, 5, 1000)
y_range = np.linspace(-5, 5, 1000)
X, Y = np.meshgrid(x_range, y_range)

# 绘制曲线
plt.figure(figsize=(8,8))
plt.contour(X, Y, eq1(X,Y), levels=[0], colors='r', label='方程1')
plt.contour(X, Y, eq2(X,Y), levels=[0], colors='g', label='方程2')
plt.contour(X, Y, eq3(X,Y), levels=[0], colors='b', label='方程3')

plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()

这种方式直接保留根式原形式,不会引入额外解,省去手动筛选的麻烦。

方法二:SymPy符号化绘图

如果需要更精准的符号级绘图,用SymPy的plot_implicit函数,它会自动处理根式的定义域(比如根号内非负),只绘制有意义的曲线部分。

示例代码

from sympy import symbols, sqrt, plot_implicit

x, y = symbols('x y')

# 代入参数定义符号方程
eq1 = sqrt((x - X1)**2 + (y - Y1)**2) + t1*sqrt((x - X2)**2 + (y - Y2)**2) - S
eq2 = sqrt((x - X1)**2 + (y - Y1)**2) + t2*sqrt((x - X3)**2 + (y - Y3)**2) - S
eq3 = sqrt((x - X2)**2 + (y - Y2)**2) + t3*sqrt((x - X3)**2 + (y - Y3)**2) - S

# 合并绘图
p1 = plot_implicit(eq1, (x, -5, 5), (y, -5, 5), line_color='red', show=False)
p2 = plot_implicit(eq2, (x, -5, 5), (y, -5, 5), line_color='green', show=False)
p3 = plot_implicit(eq3, (x, -5, 5), (y, -5, 5), line_color='blue', show=False)

p1.extend(p2)
p1.extend(p3)
p1.show()

实用提示

  • 调整网格范围:如果曲线不在当前区间,扩大linspace的取值范围即可;增加点数能让曲线更平滑,但会增加计算量。
  • 误差控制:用contour时,若因浮点数计算出现曲线断裂,可把levels设为[-1e-6, 1e-6]来允许微小误差。
  • 定义域处理:numpy版本可提前筛选网格点,避免根号内为负的情况,减少复数警告。

内容的提问来源于stack exchange,提问作者Narsimha Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:40:43