[Master Index] [Index for PublicToolbox/regutools]

gen_form

(PublicToolbox/regutools/gen_form.m in BrainStorm 2.0 (Alpha))


Function Synopsis

x = gen_form(L_p,x_s,A,b,K,M)

Help Text

GEN_FORM Transform a standard-form problem back to the general-form setting.

 x = gen_form(L_p,x_s,A,b,K,M)    (method 1)
 x = gen_form(L_p,x_s,x_0)        (method 2)

 Transforms the standard-form solution x_s back to the required
 solution to the general-form problem:
    x = L_p*x_s + d ,
 where L_p and d depend on the method as follows:
    method = 1: L_p = pseudoinverse of L, d  = K*(b - A*L_p*x_s)
    method = 2: L_p = A-weighted pseudoinverse of L, d = x_0.

 Usually, the standard-form problem is generated by means of
 function std_form.

 Note that x_s may have more that one column.

Listing of function C:\BrainStorm_2001\PublicToolbox\regutools\gen_form.m

function x = gen_form(L_p,x_s,A,b,K,M)
%GEN_FORM Transform a standard-form problem back to the general-form setting.
%
% x = gen_form(L_p,x_s,A,b,K,M)    (method 1)
% x = gen_form(L_p,x_s,x_0)        (method 2)
%
% Transforms the standard-form solution x_s back to the required
% solution to the general-form problem:
%    x = L_p*x_s + d ,
% where L_p and d depend on the method as follows:
%    method = 1: L_p = pseudoinverse of L, d  = K*(b - A*L_p*x_s)
%    method = 2: L_p = A-weighted pseudoinverse of L, d = x_0.
%
% Usually, the standard-form problem is generated by means of
% function std_form.
%
% Note that x_s may have more that one column.

% References: L. Elden, "Algorithms for regularization of ill-
% conditioned least-squares problems", BIT 17 (1977), 134-145.
% L. Elden, "A weighted pseudoinverse, generalized singular values,
% and constrained lest squares problems", BIT 22 (1982), 487-502.
% M. Hanke, "Regularization with differential operators.  An itera-
% tive approach", J. Numer. Funct. Anal. Optim. 13 (1992), 523-540.

% Per Christian Hansen, UNI-C, 06/12/93.

% Nargin determines which method.
if (nargin==6)
  [p,q] = size(x_s); [Km,Kn] = size(K);
  if (Km==0)
    x = L_p*x_s;
  else
    x = L_p*x_s + K*(M*(b*ones(1,q) - A*(L_p*x_s)));
  end
else
  x_0 = A; [p,q] = size(x_s);
  x = L_p*x_s + x_0*ones(1,q);
end

Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Oct 12 12:05:14 2004
Cross-Directory links are: ON