拟合算法

拟合算法

拟合算法是数学建模中常用的算法之一,被用于解决“预测类问题”。

插值和拟合的区别:

在插值算法中,得到的多项式f(x)要经过所有的样本点,但如果样本点太多,那么会导致这个多项式次数的过高,会造成“龙格现象(Runge phenomenon)”。

尽管我们可以选择“分段”的方法来避免“龙格现象(Runge phenomenon)”,但是更多时候我们更倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可,这就是“拟合的思想”。

我们在拟合算法中使用“最小二乘法”
最小二乘法的几何解释:


在这里插入图片描述

最小二乘法的数学语言阐述:

在这里插入图片描述
在Matlab中有“拟合工具箱”,可以实现“最小二乘法”等拟合算法,也可以通过代码实现。

代码实现:
%拟合算法

%最小二乘法

%确定数据矩阵

c=input('请依次输入数据矩阵的各个元素:');

[a,b]=size(c);

%计算拟合得到的“斜率”和“截距”
k=((a*sum(c(:,1).*c(:,2)))-(sum(c(:,2)).*sum(c(:,1))))/((a*sum(c(:,1).^2))-(sum(c(:,1)).^2));
b=(((sum(c(:,1).^2))*sum(c(:,2)))-(sum(c(:,1)*sum(c(:,1).*c(:,2)))))/((a*sum(c(:,1).^2))-(sum(c(:,1)).^2));

%隐式方程
y=@(x)k*x+b;

%拟合数据
nhc(:,1)=c(:,1);
nhc(:,2)=c(:,1).*k+b;

%y的平均值
avey=mean(c(:,2));

%计算“总体平方和” SST
SST=sum((c(:,2)-avey).^2);

%计算“误差平方和” SSE
SSE=sum((c(:,2)-nhc(:,2)).^2);

%计算“回归平方和” SSR
SSR=sum((nhc(:,2)-avey).^2);

%计算“拟合优度” R
R=SSR/SST;

%取“适当区间”
x_min=min(c(:,1))-1;
x_max=max(c(:,1))+1;

%画图
fplot(y,[x_min ,x_max]);
hold on;
plot(c(:,1),c(:,2),'o');
grid on;
xlabel(['拟合优度:',num2str(R)]);
“工具箱”实现:

在这里插入图片描述

但是,通过拟合得到的数据,与真实数据总是会有“误差”。

在这里插入图片描述

拟合算法中“线性函数”的说明:

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
STM32是一款广泛应用于嵌入式系统的微控制器系列。最小二乘法是一种常用于曲线拟合的数学算法。在STM32中,可以通过使用相关的库函数或者自行编写代码来实现最小二乘法曲线拟合算法。 最小二乘法曲线拟合算法的目标是找到最合适的曲线,使其能够经过给定的数据点。具体步骤如下: 1. 收集并准备数据点:首先需要收集到一组相关的数据点,这些数据点包含了自变量和因变量的值。 2. 构建拟合曲线的模型:根据问题的性质和数据点的特点,选择适当的曲线模型。最常用的拟合模型包括线性模型、多项式模型、指数模型等。 3. 定义拟合误差函数:拟合误差函数用于度量实际数据点与拟合曲线之间的差异。最小二乘法中常用的误差函数是平方误差函数。 4. 优化参数:通过最小化拟合误差函数,来确定模型中的参数。可以使用梯度下降法、牛顿法等优化算法来求解参数。 5. 绘制拟合曲线:根据求解得到的参数,将其代入拟合模型中,得到最终的拟合曲线。 在STM32中,可以使用相关的数学库函数,如CMSIS DSP库,来进行最小二乘法曲线拟合。该库提供了许多数学函数,包括矩阵运算、向量运算等,可以方便地进行参数优化和拟合曲线的计算。此外,也可以自行编写代码实现最小二乘法曲线拟合算法,具体实现方式可以根据具体需求和平台特点来决定。 总之,在STM32中,最小二乘法曲线拟合算法常用于数据处理、信号处理等应用中,能够通过拟合曲线准确地描述和预测数据,提高系统的性能和精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rayme629

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值