📄 sobolev_estimate.m
字号:
function sigma = sobolev_estimate(H)
% SOBOLEV_ESTIMATE -- estimate Sobolev exponent of multiwavelet (fast, but crude)
%
% sigma = sobolev_estimate(H)
%
% The input parameter H can be either a symbol or a polyphase matrix
% This routine uses a quick and dirty estimate based on the largest
% eigenvalue of the transition matrix which is not one of the
% power-of-two eigenvalues predicted by the approximation order.
%
% The multiscaling function phi given by the coefficients H is in the Sobolev
% space W^\sigma for any \sigma < s = - log_4(rho_max)
% (the log of the largest eigenvalue other than the power-of-two eigenvalues
% provided by the approximation order).
%
% Routine SOBOLEV_EXPONENT provides a better estimate, but this
% routine is faster. (Try multiwavelet CL2 for an example of
% where the two differ).
% Copyright (c) 2004 by Fritz Keinert (keinert@iastate.edu),
% Dept. of Mathematics, Iowa State University, Ames, IA 50011.
% This software may be freely used and distributed for non-commercial
% purposes, provided this copyright statement is preserved, and
% appropriate credit for its use is given.
%
% Last update: Feb 20, 2004
H = symbol(H);
m = H.m;
r = H.r;
H = H(1:r,:);
p = approximation_order(H);
T = transition_matrix(H);
lambda = sort(abs(eig(T)));
lambda = lambda(end:-1:1);
known = m.^(0:-1:-2*p-1);
i = 1;
for j = 1:length(lambda)
if (i > length(known))
% no more know eigenvalues; this one must be it
sigma = -log(lambda(j))/log(4);
return;
end
if iszero(lambda(j) - known(i))
% eliminate a known one
i = i+1;
else
% this is the first spurious one
sigma = -log(lambda(j))/log(4);
return;
end
end
error('this should not happen');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -