致谢:

1)论文

Iterative Reweighted Least Squares:

https://pdfs.semanticscholar.org/9b92/18e7233f4d0b491e1582c893c9a099470a73.pdf

2)卡内基梅隆大学的计算机科学学院 内网

内含尚没有模块化的irls的matlab代码:http://www.cs.cmu.edu/~ggordon/IRLS-example/

压缩感知重构算法之IRLS算法python实现,有matlab独立例程,非常感谢:https://blog.csdn.net/hjxzb/article/details/51077309

3)公式例程等

含python例程:https://blog.csdn.net/qq_34840129/article/details/83419685

有整理:https://blog.csdn.net/maum61/article/details/87019858

英文:http://blog.sina.com.cn/s/blog_8db50cf70101by25.html

4)百科:

https://baike.baidu.com/item/%E5%8A%A0%E6%9D%83%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95/9849270?fr=aladdin

1 概述

IRLS是iterative reweighted least squares,和OSL相比起来,多了两个单词iterative 和 reweighted。

……

2公式

(1)

IRLS迭代加权最小二乘

(2)

Ax = b

(3)

e = Ax − b.

(14)

IRLS迭代加权最小二乘

(15)

IRLS迭代加权最小二乘

(17)a least weighted squared error:

IRLS迭代加权最小二乘

(18)

IRLS迭代加权最小二乘

(19)

IRLS迭代加权最小二乘

 

 

3步骤

IRLS迭代加权最小二乘

 

4例程

% m-file IRLS0.m to find the optimal
% minimizing the L_p norm ||Ax-b||_p, using
% csb 11/10/2012
function x = IRLS0(A,b,p,KK)
if nargin < 4, KK=10; end;
x = pinv(A)*b;
E = [];
for k = 1:KK
    e = A*x - b; % Error vector
    w = abs(e).^((p-2)/2); % Error weights for IRLS
    W = diag(w/sum(w)); % Normalize weight matrix
    WA = W*A; % apply weights
    x = (WA'*WA)\(WA'*W)*b; % weighted L_2 sol.
    ee = norm(e,p); E = [E ee]; % Error at each iteration
    E = [E ee];
end
plot(E)

感兴趣的同学,可以在代码中按照常规处理增加epsilon。

5应用

除了Ax=b之外的各种应用,包括非线性方程中的应用,见文首的致谢论文。

 

 

相关文章: