当前位置:   article > 正文

递推最小二乘法——Matlab实现算法_kt方程递推最小二乘法matlab

kt方程递推最小二乘法matlab

递推最小二乘法

主要用于求解超定方程的未知解

实现代码见博客最下方


算法实现

  • 利用递推最小二乘法,求解Ax=b的解
  • A为m*x维的矩阵,元素服从独立同分布的正态分布
  • b为m维的已知向量,元素也是服从独立同分布的正态分布

设计思路

  • 首先设置好迭代所需要的初始参数
  • 将A中的10000个方程提取出来,依次做10000次迭代
  • 最后将每一次迭代的x的结果输出

数值实验

  • 递推最小二乘法未知解
    这里写图片描述

结果分析

  • 由上图可以得知,由于一开始的未知解是随机生成的,误差比较大,经过了10000次的迭代之后,开始震荡收敛于某个值。因为随机生成的矩阵的元素是正态分布的,因此10个未知解都大致收敛于0附近的值上。

代码实现

clear;
format long;
A = randn([10000 10]);
b = randn([10000 1]);
x = rand(10,1);
I = eye(10, 10);
P = (10^6) * I;

for k = 1:10000
    Ak = A(k,:);
    Q1 = P*(Ak');
    Q2 = 1 + Ak * P * (Ak');
    Q = Q1/Q2;
    x = x + Q * (b(k) - Ak*x);
    P = (I - Q*Ak)*P;
    result2(:,k) = x;
    result1(k) = k;
end
result1 = result1';
%result = [result1; result2];
plot(result1, result2);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/131513
推荐阅读
相关标签
  

闽ICP备14008679号