資源簡介
關于解決病態方程組常用的Tikhonov正則化方法,對開始學習求解不適定問題有比較大的意義。
代碼片段和文件信息
function?[x_lambdarhoeta]?=?tikhonov(UsVblambdax_0)?
%TIKHONOV?Tikhonov?regularization.?
%?
%?[x_lambdarhoeta]?=?tikhonov(UsVblambdax_0)?
%?[x_lambdarhoeta]?=?tikhonov(UsmXblambdax_0)???sm?=?[sigmamu]?
%?
%?Computes?the?Tikhonov?regularized?solution?x_lambda.??If?the?SVD?
%?is?used?i.e.?if?U?s?and?V?are?specified?then?standard-form?
%?regularization?is?applied:?
%????min?{?||?A?x?-?b?||^2?+?lambda^2?||?x?-?x_0?||^2?}?.?
%?If?on?the?other?hand?the?GSVD?is?used?i.e.?if?U?sm?and?X?are?
%?specified?then?general-form?regularization?is?applied:?
%????min?{?||?A?x?-?b?||^2?+?lambda^2?||?L?(x?-?x_0)?||^2?}?.?
%?
%?If?x_0?is?not?specified?then?x_0?=?0?is?used.
%
%?Note?that?x_0?cannot?be?used?if?A?is?underdetermined?and?L?~=?I.
%?
%?If?lambda?is?a?vector?then?x_lambda?is?a?matrix?such?that?
%????x_lambda?=?[?x_lambda(1)?x_lambda(2)?...?]?.?
%?
%?The?solution?norm(standard-form?case)?or?seminorm?(general-form
%?case)?and?the?residual?norm?are?returned?in?eta?and?rho.?
?
%?Per?Christian?Hansen?IMM?April?14?2003.?
?
%?Reference:?A.?N.?Tikhonov?&?V.?Y.?Arsenin?“Solutions?of?
%?Ill-Posed?Problems“?Wiley?1977.?
?
%?Initialization.?
if?(min(lambda)<0)?
??error(‘Illegal?regularization?parameter?lambda‘)?
end?
m?=?size(U1);
n?=?size(V1);
[pps]?=?size(s);?
beta?=?U(:1:p)‘*b;?
zeta?=?s(:1).*beta;?
ll?=?length(lambda);?x_lambda?=?zeros(nll);?
rho?=?zeros(ll1);?eta?=?zeros(ll1);?
?
%?Treat?each?lambda?separately.?
if?(ps==1)?
??
??%?The?standard-form?case.
??if?(nargin==6)?omega?=?V‘*x_0;?end?
??for?i=1:ll?
????if?(nargin==5)?
??????x_lambda(:i)?=?V(:1:p)*(zeta./(s.^2?+?lambda(i)^2));?
??????rho(
- 上一篇:基于matlab的信號調頻仿真
- 下一篇:matlab 矩陣增加一行或一列。
評論
共有 條評論