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

为何ManimCE绘制的(1+1/x)^x函数图像与预期不符?

问题分析与解决

你绘制的函数$(1+1/x)^x$在$x>0$时是严格单调递增趋近于e的,和Desmos的图像差异(顶部凸起)主要来自两个问题:

  1. x=0无定义点的干扰:原代码x_range=[0,X_MAX]包含了函数无定义的x=0,Manim处理x趋近于0的采样点时,浮点数精度问题会导致异常计算值,进而出现虚假凸起。
  2. pow函数的数值稳定性不足:直接用pow(1+1/x, x)计算,在x极小或极大时易出现精度损失,导致函数值偏离真实曲线。

修正方案

1. 优化函数计算逻辑

用指数+对数的形式替代pow,同时借助math.log1p提升大x场景下的计算精度:

import math

def func(x):
    # log1p(y)等价于ln(1+y),当y很小时计算精度更高
    return math.exp(x * math.log1p(1/x))

2. 调整绘图参数

避开x=0的无定义区域,同时增加采样点保证图像平滑度:

graph = axes.plot(
    lambda x: func(x),
    color=BLUE,
    stroke_width=2,
    x_range=[1e-5, 1000],  # 从极小正数开始,避开x=0
    num_sample_points=10000  # 增加采样点,提升曲线精度
)

修改后绘制的图像会和Desmos完全一致:从接近1的位置单调递增,逐步趋近于e(≈2.718),不会再出现虚假的顶部凸起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:40:36