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

求可过原点、支持负值且趋近无穷呈对数特性的对数函数

满足需求的对数变形函数方案

嘿,这个问题很有针对性!先直接给结论:标准对数函数(比如ln(x)、log_b(x))本身做不到——它们只接受正输入,而且零点在x=1而非原点,但我们可以通过简单变形得到满足所有要求的函数:

1. 基础对称对数函数

最直接的方案是用符号函数+绝对值扩展定义域,同时调整零点到原点:

f(x) = sign(x) * log(|x| + 1)

这里的sign(x)是符号函数:x>0时取1,x<0时取-1,x=0时取0。

为什么满足你的要求:

  • 支持负值输入:|x|保证对数内部始终是正实数,不管x正负都有定义;
  • 经过原点:当x=0时,sign(0)*log(0+1) = 0*0 = 0,完美落在原点;
  • 趋近无穷的对数行为:
    • 当x→+∞时,log(|x|+1) ≈ log(x),函数表现为标准对数的增长趋势;
    • 当x→-∞时,f(x) = -log(-x+1) ≈ -log(-x),是负方向的对数衰减,同样符合对数的渐近特性。

如果不想用符号函数,也可以用x/|x|代替(x≠0时),x=0处单独定义为0,效果完全一致:

f(x) = (x / |x|) * log(|x| + 1) (x≠0)
f(0) = 0

2. 平滑可导的变种(可选)

如果需要函数在原点处可导(比如做数据分析或可视化时更顺滑),可以调整为:

f(x) = x * log(1 + |x|) / (|x| + ε)

这里的ε是一个极小的正数(比如1e-4),用来避免x=0时分母为0。当x→∞时,x/(|x|+ε)趋近于sign(x),所以函数依然会表现出对数的渐近行为;同时原点处的导数存在,图像过渡更平滑。

补充:为什么标准对数不行?

标准对数函数log_b(x)的定义域是x>0,而且只有当x=1时函数值为0,天然不满足「支持负值输入」和「过原点」的要求,必须通过引入绝对值、符号函数这类操作来扩展定义域并调整零点位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:22:30