C++最小二乘拟合 (高阶最小二乘拟合)(附C++代码)

本文介绍如何使用Eigen矩阵库实现二次曲线拟合,并通过Python生成数据,最后采用C++完成拟合过程并验证结果。

配置Eigen矩阵运算库

后续计算需要利用矩阵运算来求解拟合系数,用到Eigen矩阵运算库,配置方法可自行搜索或MacOs可以参考Mac配置Eigen库进行配置。

拟合原理

以二次曲线拟合为例,拟合曲线应满足以下方程:

a ∗ X 2 + b ∗ X + c = y a*X^2 + b*X + c = y aX2+bX+c=y

如要要拟合的4个点为:

(3, 6)

(5, 8)

(6, 12)

(7, 4)

则有:

在这里插入图片描述

即有:

A W = B A W = B AW=B

A T A W = A T B A^TAW = A^TB ATAW=ATB

( A T A ) − 1 A T A W = ( A T A ) − 1 A T B (A^TA)^ {-1}A^TAW = (A^TA)^{-1}A^TB

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值