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

如何在Julia中用线性回归插值法估算未知系数k与l

用线性回归估算指数函数系数k和l

问题描述

已知指数函数形式为 y = k·e^(l·x),其中k、l为未知系数,需通过以下数据表估算其值:

  • x=-2.0,y=1.719334581463762
  • x=-1.0,y=1.900158577875515
  • x=0.0,y=2.1
  • x=1.0,y=2.3208589279588603
  • x=2.0,y=2.5649457921363568

已完成数学推导:对函数两边取自然对数,得到线性形式 ln(y) = ln(k) + l·x,可基于变换后的数据应用线性回归。现有如下LinearRegression函数:

using DataFrames, GLM

function LinearRegression(X)
    x = X[:,1]
    y = X[:,2]
    data = DataFrame(y = y, x = x)
    reg = lm(@formula(y ~ x), data)
    return coef(reg)[2], coef(reg)[1]
end

计算步骤

  1. 构造对数变换数据集:保持原始x值不变,将每个y值替换为ln(y)(自然对数)。
  2. 调用线性回归函数:将变换后的数据集传入LinearRegression函数,返回的第一个值是线性模型的斜率,即l;第二个值是截距,即ln(k)。
  3. 计算k值:对截距结果取自然指数exp(截距),得到k。

完整代码示例

using DataFrames, GLM

# 原始数据集
original_data = [
    -2.0  1.719334581463762
    -1.0  1.900158577875515
     0.0  2.1
     1.0  2.3208589279588603
     2.0  2.5649457921363568
]

# 对数变换:x不变,y取自然对数
transformed_data = hcat(original_data[:,1], log.(original_data[:,2]))

# 定义线性回归函数
function LinearRegression(X)
    x = X[:,1]
    y = X[:,2]
    data = DataFrame(y = y, x = x)
    reg = lm(@formula(y ~ x), data)
    return coef(reg)[2], coef(reg)[1]
end

# 计算l和ln(k)
l, ln_k = LinearRegression(transformed_data)

# 计算k
k = exp(ln_k)

# 输出结果
println("估算得到的l值:", l)
println("估算得到的k值:", k)

结果说明

运行代码后会得到精确计算值:

  • l≈0.1(与数据的指数增长趋势匹配)
  • k≈2.1(与x=0时y=k的理论值一致,符合原始数据)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:15:37