2026a

# 曲线与曲面拟合

命令行窗口的曲线与曲面拟合

# 拟合曲线

为了编程式地拟合曲线,可以使用以下的步骤:

  1. 读取数据。
using TyCurveFitting
using TyMath
include(pkgdir(TyCurveFitting) * "/examples/docs/hahn1.jl")
  1. 使用 fit 函数创建拟合,指定变量、初值(固定结果)与模型类型(这个示例中使用的模型为有理数模型,模型名称为 "rational23")。
ip = rand(MersenneTwister(1234),6)
f = fit("rational23", temp, thermex,startpt=ip)
  1. 绘制拟合与数据。
plotfit(f,temp,thermex)

# 拟合曲面

为了编程式地拟合曲面,可以使用以下的步骤:

  1. 读取数据。
using TyCurveFitting
include(pkgdir(TyCurveFitting) * "/examples/docs/franke.jl")
  1. 使用 fit 函数创建拟合,指定变量、初值(固定结果)与模型类型(这个示例中 poly23 为模型类型)。
f = fit("poly23",[x y],z)
  1. 绘制拟合与数据。
plot3fit(f,[x y],z)

# 模型类型与拟合分析

特定模型类型与拟合分析的细节与示例可以参见以下几节:

# 命令行拟合的工作流

曲线拟合工具箱提供了数据分析与建模的多种方法。

为了使用编程式拟合与分析的曲线拟合函数,参照这个工作流:

  1. 使用 include 指令导入数据(如果您的数据之前就以 Syslab 变量的形式储存了)或者任意读取其他文件格式的其他 Syslab 函数。您可能可能需要改变数据形状,参见prepareCurveDataprepareSurfaceData

  2. (可选)如果您的数据存在噪声,则您可能想要使用smooth函数平滑数据。平滑是为了识别出数据的主要趋势,这可以帮助您选择合适的参数拟合模型。如果参数模型不适用,平滑本身也可以成为拟合的最后一步,这为数据提供了一个非参数拟合。

注意

平滑估计响应分布在各预测基点处的中心值。这违背了数据中的误差独立的假设,也因此无法计算信赖与预测区间。因此,即使通过平滑知道了需要使用什么参数模型,也需要把数据传给fit函数。

  1. 指定数据的参数模型,要么是一个曲面拟合工具箱的内置模型,要么是您定义的自定义模型。您可以把模型名称或者表达式或使用 fittype 函数创建的 FitType 对象传入 fit 函数以指定模型。

    已有的内置模型,可以参见曲线与曲面拟合的内置模型列表

  2. (可选)您可以使用 fitoptions 函数创建拟合线性结构体。拟合选项可以指定比如数据的权重,拟合算法,以及拟合算法下界选项。

  3. (可选)您可以使用 excludedata 函数创建排除规则。排除规则指定了什么数据应该被视为例外值并从拟合中排除。

  4. 指定模型(名称,表达式或 FitType 对象),x,y 以及(可选)拟合选项结构体以及排除规则,使用 fit 函数进行拟合。

    fit 函数返回 FitResult 对象,该对象包含所有计算的系数与拟合统计参数。如果您希望更多地了解拟合对象,参见[曲线与曲面拟合对象与对象函数]。

  5. 您可以对 fit 函数返回的拟合对象进行后处理,这可以通过将其传入各种函数里完成,比如 fvallm, differentiate1, differentiate2, integrate, plotfit, plot3fit, coeffvalues, probvalues, confint, 以及 predint

曲线或曲面拟合方法 说明
argnames 读取输入参数名称
category 读取拟合类别
coeffnames 读取系数名称
coeffvalues 读取系数值
confint 读取拟合系数信赖区间
dependnames 读取因变量名称
differentiate1 微分曲线拟合
differentiate2 微分曲面拟合
excludedata 从拟合中排除数据
fvallm 模型在特定点进行求值
fittype 构造 FitType 对象
formula 读取公式
indepnames 读取自变量名称
integrate 积分曲线拟合
islinear 决定模型是否线性
numargs 读取输入参数个数
numcoeffs 读取系数个数
plotfit 绘制曲线拟合
plot3fit 绘制曲面拟合
predint 读取预测区间
probnames 读取问题参数名称
probvalues 读取问题参数值
quad2d 数值积分曲面拟合
set_option 设置模型拟合选项
typecur 读取模型名称

# 另请参阅

fit | fittype | fitoptions | excludedata | prepareCurveData | prepareSurfaceData

# 相关主题