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

如何在Python中绘制隐式方程:基于不同L值的V-t曲线

隐式方程曲线绘制实现方案

问题说明

需要绘制以t(时间)为X轴、V(速度)为Y轴的曲线,参数设定:

  • L取5个值:[5, 10, 15, 20, 25]
  • b = 0.0032
  • 隐式方程:(b*V*0.277*t) - (b*L) = log(1 + b*V*0.277*t)

实现思路

先通过变量替换简化方程:令x = b*V*0.277*t,方程转化为x - bL = ln(1+x)。固定V的取值范围,对每个L,通过数值方法求解对应的t值,最终绘制曲线。

Python 代码实现

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import root

# 定义参数
b = 0.0032
L_values = [5, 10, 15, 20, 25]
V_range = np.linspace(0, 120, 200)  # 速度范围匹配参考图

# 定义隐式方程(针对t求解)
def equation(t, V, L, b):
    x = b * V * 0.277 * t
    return x - b * L - np.log(1 + x)

# 初始化绘图
plt.figure(figsize=(8, 6))

# 遍历每个L值求解并绘图
colors = ['blue', 'orange', 'green', 'red', 'purple']  # 对应不同L的颜色
for L, color in zip(L_values, colors):
    t_values = []
    for V in V_range:
        # 初始猜测值,避免log(0)问题
        initial_guess = 0.1 if V == 0 else (b*L)/(b*V*0.277)
        sol = root(equation, initial_guess, args=(V, L, b))
        if sol.success:
            t_values.append(sol.x[0])
        else:
            t_values.append(np.nan)  # 求解失败标记为NaN
    plt.plot(t_values, V_range, color=color, label=f'L={L}')

# 设置图形样式,匹配参考图
plt.xlabel('Time (t)')
plt.ylabel('Velocity (V)')
plt.title('Velocity vs Time for Different L Values')
plt.legend()
plt.grid(True)
plt.xlim(0, 120)  # X轴范围匹配参考图
plt.ylim(0, 120)  # Y轴范围匹配参考图

plt.show()

代码说明

  1. 变量替换与方程定义:将原方程转化为便于数值求解的形式,传入t、V、L、b参数,返回方程的残差值。
  2. 数值求解:使用scipy.optimize.root对每个V值求解对应的t,确保求解稳定。
  3. 绘图设置:设置坐标轴标签、标题、图例、网格,调整坐标轴范围以匹配参考图样式,用不同颜色区分不同L的曲线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:55:09