2026a

# 对数模型

# 关于对数模型


对数模型在以较慢的速度增长之前会有一个陡峭的初始增长期。对数模型被用于各种领域,例如人口增长和信号处理的研究。曲线拟合工具箱支持下表中描述的对数模型。

对数模型 方程
自然对数 e Y = a*log(x)+b
通用对数 10 Y = a*log10(x)+b
二进制对数 2 Y = a*log2(x)+b

在上述方程中,a 是缩放参数,b 是 x = 1 时 Y 的值。您可以使用基本公式 在不同的对数模型之间进行转换,其中 j 是要转换为的模型的底,i 是要转换的模型的底。用于拟合数据的对数模型取决于要求解的问题类型。

# 使用曲线拟合器拟合指数模型

使用 LinRange、log2 和 randn 函数生成一些数据。

using TyMath
rng = MT19937ar(5489)
x = collect(LinRange(0.01, 3, 100))
y = log2.(x) + 0.2*randn(rng, 100)

从命令行打开曲线拟合器。

using TyCurveFitter
curveFitter()

或者,在 APP 选项卡中单击曲线拟合器。

在曲线拟合器中,选择拟合的数据变量。在曲线拟合器选项卡的数据部分,单击选择数据。在选择拟合数据对话框中,选择 x 作为 X 数据,选择 y 作为 Y 数据

曲线拟合器会在您选择变量时绘制数据点。默认情况下,曲线拟合器会将多项式拟合到数据中。要拟合对数模型,请在曲线拟合器选项卡的拟合类型部分中单击"对数"。

曲线拟合器拟合自然对数模型。

当 x 比较小时,拟合的自然对数模型增长得相对较快。结果面板显示自然对数模型的方程、具有 95% 置信区间的拟合系数估计值和拟合优度统计量,其中拟合模型的误差平方和(SSE)约为 5.2,R 方的值约为 0.97。

要将自然对数模型与二进制对数模型进行比较,请在拟合选项面板中将对数的底选择为 2。曲线拟合器将使用二进制对数模型对数据进行拟合。

结果面板显示,拟合的自然对数模型和拟合的二进制对数模型具有相同的 SSE 和 R 方。该图还说明拟合模型是相同的。模型之间的唯一区别是对数模型的底以及系数 a 的值和置信边界。您可以使用方程 手动地在自然对数模型和二进制对数模型之间进行转换。

默认情况下,曲线拟合器使用线性最小二乘拟合来计算拟合系数。您可以从拟合选项面板中的 Robust选项中选择一个稳健的拟合方法。例如,选择 Bisquare 来使用双平方误差权方法。

结果面板显示,使用双平方误差权方法拟合的二进制对数模型的 SSE 比使用线性最小二乘拟合时略小,并且 R 方略大。

# 在命令行中拟合对数模型

使用 LinRange、log10 和 randn 函数生成一些数据。

using TyMath
rng = MT19937ar(5489)
x = collect(LinRange(0.01, 3, 100))
y = log10.(x) + 0.1*randn(rng, 100)

使用通用对数模型去拟合数据。

using TyCurveFitting
f = fit("log10", x, y)
f = 
    线性模型 log10:
      y(a,b,x) = a*log10(x)+b

    系数(置信边界为 95%):
      a = 0.9560925398945019 (0.9039091033921902, 1.0082759763968137)
      b = 0.014154545048160988 (-0.008812383769792981, 0.03712147386611496)

f 是一个包含拟合后结果的 FitResult 对象,其中结果显示通用对数模型的公式和具有 95% 置信边界的拟合系数。

绘制拟合曲线和数据点。

plotfit(f, x, y)

该图显示拟合曲线跟随大部分数据。

# 另请参阅

# APP

曲线拟合器

# 函数

fit | fittype | fitoptions

# 相关主题

曲线与曲面拟合的内置模型列表