You need to enable JavaScript to run this app. 如何在Python中绘制sigma(a)反演后g关于sigma的函数图像
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制sigma(a)反演后g关于sigma的函数图像

解决方案

核心思路

你不需要显式推导a(sigma)的表达式,利用现有采样的一一对应关系就能直接绘图:

  • 先验证sigma(a)在a∈[0,10]区间严格单调递增,每个sigma值唯一对应一个a值,天然满足反函数的映射要求
  • 直接用你已有的10000个a采样点,批量计算每个a对应的sigma值和g值,把sigma作为横轴、g作为纵轴直接绘图即可

完整实现代码

import numpy as np
import matplotlib.pyplot as plt
# 可选:如果需要后续查询任意sigma对应的g值,导入插值工具
from scipy.interpolate import interp1d

# 原函数定义
def sigma(a):
    sigma = 1 + 2*a*(np.sinh(a) - np.sin(a))/(np.cosh(a) + np.cos(a))
    return sigma

def g(a, sigma):
    g = 2*sigma*(np.cosh(a*(sigma - 1)/(sigma + 1)) + np.cos(a*(sigma - 1)/(sigma + 1)))/((sigma + 1)*(np.cosh(a) + np.cos(a)))
    return g

# 生成a采样
a = np.linspace(0, 10, 10000)
# 批量计算对应sigma和g
sigma_arr = sigma(a)
g_arr = g(a, sigma_arr)

# 绘制g关于sigma的图像
plt.figure(figsize=(10,6))
plt.plot(sigma_arr, g_arr, label='g(σ)', linewidth=1.5)
plt.xlabel('σ', fontsize=12)
plt.ylabel('g(σ)', fontsize=12)
plt.title('g关于σ的变化曲线', fontsize=14)
plt.grid(alpha=0.3)
plt.legend()
plt.show()

# 可选:构建a(sigma)的插值函数,支持任意sigma查询
a_of_sigma = interp1d(sigma_arr, a, kind='cubic')
# 测试示例:查询sigma=5对应的a和g
test_sigma = 5
test_a = a_of_sigma(test_sigma)
test_g = g(test_a, test_sigma)
print(f"sigma={test_sigma}时,对应a={test_a:.4f},g={test_g:.4f}")

补充说明

如果你的a采样区间更大、或者需要更高的反演精度,可以:

  • 加密a的采样点数
  • 替换插值方法为更高精度的方案,或者用scipy.optimize.root_scalar做数值求根,对任意给定sigma求解sigma(a) - target_sigma = 0的根得到对应a

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 10:18:03