二维曲线拟合

二维曲线拟合相关基础理论知识最小二乘法广义逆(伪逆矩阵)矩阵分解特征值分解(Eigen Value Decomposition,EVD)Householder变换法(QR Factorization,QR分解)奇异值分解(singular value decomposition,SVD)Matlab样条工具箱(Curve Fitting Toolbox)与曲线拟合导入数据,打开工具箱选择合适的模型...
摘要由CSDN通过智能技术生成

一.相关基础理论知识

最近在学习这方面的知识,本文为网上资料的总结和自己的一些代码验证。
我们根据平面上的一些离散点绘制出一条近似曲线。如果曲线通过所有点,称为插值;如果曲线不一定通过点,而是以某种方式逼近这些点,称为拟合。
构造拟合曲线,通常有以下几种方法:
(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
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在MATLAB中,可以使用高斯函数进行二维曲线拟合。以下是一个示例代码: ```matlab x = \[0:0.1:10\]; % x轴坐标 y = 50*exp(-(x-5).^2./2); % 初始函数值 % 添加噪声 y0 = 1*randn(1,101); % 形成1行101列随机数 y1 = y + y0; % 加上噪声后的函数值 % 高斯函数拟合 Mytype = fittype('A*exp(-(x-u)^2/(2*d^2))'); % 需要拟合的函数类型 \[cf, gof\] = fit(x(:), y1(:), Mytype); % fit函数 % 绘制拟合结果 xi = 0:0.1:10; yi = cf.A*exp(-(xi-cf.u).^2/(2*cf.d^2)); plot(x, y1, 'g.'); % 加噪声的函数为绿色的点 hold on; plot(xi, yi, 'r'); % 拟合后的曲线为红色的线 plot(x, y, 'b'); % 拟合前的标准曲线为蓝色的线 ``` 这段代码使用了`fit`函数进行高斯函数拟合,其中`x`和`y1`是需要拟合数据拟合结果存储在`cf`中,可以通过`cf.A`、`cf.u`和`cf.d`获取拟合参数。最后,使用`plot`函数绘制拟合结果。 #### 引用[.reference_title] - *1* [MATLAB实现任意函数曲线拟合(高斯曲线为例)](https://blog.csdn.net/ruredfive/article/details/122996534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MATLAB实现高斯曲线拟合](https://blog.csdn.net/KEY_Init/article/details/103258920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [高斯曲线拟合](https://blog.csdn.net/Yuancccc/article/details/85307980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值