美文网首页
曲线拟合的核心计算方法与CurveFitter的更新

曲线拟合的核心计算方法与CurveFitter的更新

作者: WelSim | 来源:发表于2022-08-12 08:24 被阅读0次

随着大数据技术与计算科学的发展,数据挖掘与分析工具发挥着越来越重要的工作。对于常见的二维曲线和三维曲面数据,通过给定的曲线/曲面方程和参数,可以将复杂的数据用精简抽象的函数表达出来,迅速且正确得出相关重要信息。目前曲线拟合已经大量应用于工程与科学研究,涉及社会学,医学,工学,生物学等各个领域。

WELSIM早在2年前就发布了免费的CurveFitter工具软件,获得了很多好评与热度。最早的CurveFitter版本是为了计算结构力学中超弹材料的测试数据-曲线拟合,以及磁性材料中损耗的数据-曲线拟合而开发。之后按用户的要求添加了许多常用曲线,如多项式,幂函数,指数函数等等。这些曲线的大多都是非线性的,只有通过计算机才能快速的准确的得到相应参数。

最小二乘法(Least Squares)

在计算机求解曲线拟合时,最常用的方法是最小二乘法。这种计算方法广泛应用于曲线拟合以及优化计算中。算法的核心是在给定的数据区间内找到泛函的全局最小值。通过构建雅克比矩阵,以及每个步长下的线性化,获得以参数为自变量的线性方程组,求解收敛后得到我们需要的参数值。

对于求解非线性问题的通用方法是用线性化方法将其转化为一系列假设并求解。在每次迭代中,假设被求解来决定正确的步长。为了更快更准确地收敛,步长的控制尤为重要。非线性优化算法(又称最小化方法)主要可以分为两类。1. 信任区域法(Trust Region)。2. 线性搜索法(Line Search)。这两种方法有很多地方相似。信任区域法先选择一个步长,再决定步长方向。而线性搜索法相反,先选择一个方向,再决定步长。通常对于计算量不大的曲线拟合问题,信任区域法是一个更好的选择。

Levenberg-Marquardt算法

Levenberg-Marquardt算法(以下简称LM法)是求解非线性最小二乘法的最常用的方法。LM算法是在 1960 年代初开发的,属于信任区域法,用于解决非线性最小二乘问题。LM算法结合了两种数值最小化算法:梯度下降法(Gradient Descent)和高斯-牛顿法(Gauss-Newton)。在梯度下降法中,通过更新最速下降方向的参数来减小平方误差之和。在高斯-牛顿法中,通过假设最小误差函数在参数中是局部二次的来减小平方误差的总和,并且找到这个二次方的最小值。LM方法当参数远离其最佳值时,像是梯度下降法,当参数接近其最优值时,更像高斯-牛顿法。

除了LM法,狗腿法(Dogleg)也是一种常用计算信任区域优化问题的方法。和LM不同的是,狗腿法计算两个关于步长的向量。狗腿法的优点是不需要从头计算,且信任区域半径小。狗腿法一般只能用直接法(分解因式法)求解线性方程组Ax=b。

CurveFitter最近更新

最近,WELSIM开发的免费软件CurveFitter进行了很多升级。其中包含:

1. 支持多核并行计算。对于大量测试数据,可以迅速得到曲线参数。

2. 支持用户输入求解器参数,如最大迭代次数,函数收敛公差值等。目前,前端支持的求解控制参数有:

最大迭代次数:求解器最大的迭代次数,超过此数值,判定不收敛。默认为100。

函数阈值:用于判断目标函数值变化的临界值。小于此值时判定收敛。默认为1e-9。

梯度阈值:用于判断最大范数的临界值。默认为1e-10。

参数阈值:用于判断步长参数的临界值。默认为1e-8。

3. 新增 1-6阶的Schulz-Flory函数。

Schulz-Flory函数已经广泛应用于描述各种复杂材料的聚合与结晶过程。的控制方程如下:

可以看出此方程具有高度非线性的特征,对于曲线拟合算法有着很高的要求。

4. 大量的软件优化与增强。

目前CurveFitter已经支持多种非线性曲线拟合,随着使用者的需求,将来会添加更多曲线仿真。目前可以从WELSIM的官网下载并免费使用。

相关文章

  • 曲线拟合的核心计算方法与CurveFitter的更新

    随着大数据技术与计算科学的发展,数据挖掘与分析工具发挥着越来越重要的工作。对于常见的二维曲线和三维曲面数据,通过给...

  • 一款好用且免费的曲线拟合工具CurveFitter

    点组所表示的坐标与函数值之间的关系。曲线拟合可以帮助我们了解数据之间的内在联系,并能预测此类问题在其他离散点下的变...

  • Ceres曲线拟合

    本文介绍如何使用Ceres库实现曲线拟合。 一、曲线拟合 所谓曲线拟合,就是给定一组x和y的值,它们大体上满足一条...

  • 数值计算day7-数值微分

    上一节课主要介绍了曲线拟合与插值,曲线拟合主要包括线性拟合(单特征线性回归和非线性拟合(非线性方程特征变换、高阶多...

  • MATLAB的曲线拟合

    一般使用的是Curve Fitting Toolbox 分为GUI直观实现 和 代码实现 (1)GUI直观实现: ...

  • RxSwift-MVVM

    MVVM核心在于数据与UI的双向绑定,数据的变化会更新UI,UI变化会更新我们的数据。那这种绑定操作谁来做呢?当然...

  • MySQL的QPS、TPS的获取

    QPS计算方法 TPS计算方法 or 运行命令

  • Python曲线拟合

    二项式曲线拟合 最小二乘法拟合

  • NumPy 中的线性代数

    NumPy 中的线性代数 矩阵 线性代数 多项式 曲线拟合

  • SpringBoot学习

    持续更新中 SpringBoot2核心技术与响应式编程 尚硅谷的资料[https://www.yuque.com/...

网友评论

      本文标题:曲线拟合的核心计算方法与CurveFitter的更新

      本文链接:https://www.haomeiwen.com/subject/oldxgrtx.html