二维曲线拟合

本文概述了二维曲线拟合的基础理论,包括最小二乘法、广义逆(伪逆矩阵)和矩阵分解。重点介绍了Matlab中的样条工具箱,如csapi、csape、ppmak等,用于生成和处理各种样条函数,如三次样条、分段多项式样条和B样条。此外,还讨论了polyfit函数在拟合数据上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.相关基础理论知识

最近在学习这方面的知识,本文为网上资料的总结和自己的一些代码验证。
我们根据平面上的一些离散点绘制出一条近似曲线。如果曲线通过所有点,称为插值;如果曲线不一定通过点,而是以某种方式逼近这些点,称为拟合。
构造拟合曲线,通常有以下几种方法:
(1)最小二乘法;
(2)分段拟合法;
(3)…

1. 最小二乘法

根据解的存在情况,线性方程可以分为:

  1. 有唯一解的恰定方程组
  2. 解不存在的超定方程组
    (Ax=b,A为n×m矩阵,如果A列满秩,且n>m,方程组没有精确解,常用于数据拟合);
  3. 有无穷多解的欠定方程组
    (Ax=b,A为n×m矩阵,如果A行满秩,且n<m);

在MATLAB中求解超定方程,有以下几种方法:

  1. 左除是建立在奇异值分解基础之上得到最小二乘法的解,因此最可靠;
x=A\b;
  1. 最小二乘法求解;
x=lsqnonneg(A,b);
  1. 广义逆,解不一定满足Ax=b,x只是最小二乘意义上的解;
x=pinv(A);

2. 广义逆(伪逆矩阵)

广义逆法(伪逆矩阵)是建立在对原超定方程直接进行 householder变换的基础上,其算法可靠性稍逊与(SVD)奇异值求解,但速度较快;以B=pinv(A)为例,函数返回矩阵A的伪逆矩阵。如果矩阵A是可逆(非奇异)的,那么pinv(A)与inv(A)的结果是一样的,而且pinv比inv效率低。但如果矩阵A是非方阵或奇异矩阵,则inv(A)不存在,但pinv(A)仍然存在,并表现出一些与逆矩阵类似的性质。

【定义】
令A是任意m x n矩阵,若G满足下述条件(Moore-penrose条件),称矩阵G是A的广义逆矩阵:
(1)GAG = G;
(2)AGA = A;
(3)AG为hermitian矩阵,即(AG)^H=AG;
(4)GA为hermitian矩阵,即(GA)^H=GA;

【测试】
在Matlab中,用以下几种方式求逆:
(1)直接求解:InvA = inv(A’*A)*A’; %求导,令导数为0,结果如下: InvA=(ATA)-1AT
(2)SVD分解:[U,Λ,V]=svd(A)
(3)QR分解:[Q,R]=qr(A)
(4)LU分解:[L,U]=lu(A)

 a=[1 2 3; 4 5 6; 23 3 6];
 b=inv(a);
 c=pinv(a);
 [U,D,V]=svd(a);
 D1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值