Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

matlab code for solving nonlinear systems by thionov regularization

Status
Not open for further replies.

biharmonic

Newbie level 1
Joined
Dec 5, 2011
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,287
It's my first post here & I don't know much about the rules.plz help me
I need a MATLAB Code(program in the form of .m.file) for solving nonlinear system(equations in the form of matrix) by thionov regularization and discrepancy principle.
I only have time for about 5 days
best regards :sad::oops:
 

regtools: tikhonov(U,s,V,b,lambda,x_0) - File Exchange - MATLAB Central

function [fnew,cpred,wpred] = subsearch(f0,res,fdef,Afunc,Lfunc,lambda,S)
% Searches in subspace spanned by columns of S for the optimal solution
% of the regularization problem
% (lambda)^2*\vert\vert L*(f-fdef)\vert\vert^2 + \vert\vert d-A*f\vert\vert^2
% f0 = Initial guess at location of the minimum
% res = d - A*f0, the current residual
% fdef = The default image
% Afunc = Name of function which applies A to a vector
% Lfunc = Name of function which applies L to a vector
% lambda = Weighting between solution seminorm and data misfit
% S = matrix with search directions as its columns
%
% fnew = Position of minimum within subspace
% cpred = Predicted value of \vert\vert d-A*fnew\vert\vert^2
% wpred = Predicted value of \vert\vert L*(fnew-fdef)\vert\vert^2
% Sze Tan, University of Auckland, July 1998
nsrch = size(S,2);
pref = feval(Lfunc,f0-fdef);
w0 = pref’ * pref;
c0 = res’ * res;
fprintf(’Square of regularization semi-norm (current) = %f\n’,w0);
fprintf(’Square of data misfit norm (current) = %f\n’,c0);
AS = zeros(length(res),nsrch);
LS = zeros(length(pref),nsrch);
for k = 1 : nsrch
AS:),k) = feval(Afunc,S:),k));
LS:),k) = feval(Lfunc,S:),k));
end
Hc = AS’ * AS; Hw = LS’ * LS;
Gc = AS’ * res; Gw = -LS’*pref;
c = (Hc + lambda^2 * Hw) \ (Gc + lambda^2 *Gw);
cpred = c0 + c’*Hc*c - c’*Gc - Gc’*c;
wpred = w0 + c’*Hw*c - c’*Gw - Gw’*c;
fprintf(’Square of regularization semi-norm (predicted) = %f\n’,wpred);
fprintf(’Square of data misfit norm (predicted) = %f\n\n’,cpred);
fnew = f0 + S * c;
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top