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

最小二乘幂拟合:为何变量a的计算结果与预期值不符?

幂函数拟合中系数a计算错误的原因及修正方法

你计算出的a=2.1是对数转换后的截距,并非原幂函数y = A * x^b中的系数A。

问题根源

幂函数拟合的核心是通过对数转换将非线性问题转为线性回归:
原公式:y = A * x^b
取自然对数后:ln(y) = ln(A) + b * ln(x)
你当前代码中计算的a对应的是ln(A),而非直接是A。要得到原公式中预期的约8的系数,需要对这个a取自然指数还原。

修正代码

修改代码中计算a的部分,添加指数转换步骤:

# 计算对数空间的截距(对应ln(A))
a_log = (sumLog_y - sumLog_x * b) / n
# 转换为原空间的系数A
A = math.exp(a_log)

print("modeling: y = A * x^b")
print("指数 b = ", format(b, "0.6f"))
print("系数 A = ", format(A, "0.6f"))

修正后结果

运行修正后的代码,会得到:

[1, 2, 3, 4, 5, 6]
[8, 11, 19, 20, 18, 22]
modeling: y = A * x^b
指数 b =  0.573009
系数 A =  8.210034

这个结果符合你预期的约8的数值。

内容的提问来源于stack exchange,提问作者silver-fang87

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:40:15