Я загрузил « функции сглаживания данных » из Octave forge , и я думаю, что это здорово помогло, но мне нужно в чем-то убедиться . выполняет ли эта функция "rgdtsmcore" сглаживание, взяв обратное двухточечное среднее ? Если нет, как мне изменить его, чтобы он стал таким?
Код:
function out = rgdtsmcorewrap (log10lambda, x, y, d, mincell, varargin)
if (nargin < 5)
print_usage;
endif
lambda = 10^(log10lambda);
if ( length(mincell) == 2 ) # using stdev to find optimal lambda
stdev = mincell{2};
yhat = rgdtsmcore (x, y, d, lambda, varargin{:});
xhatprov = 0;
relative = 0;
for i = 1:length(varargin)
if strcmp(varargin{i},"relative")
relative = 1;
elseif strcmp(varargin{i},"xhat")
xhatprov = 1;
xhat = varargin{i+1};
endif
endfor
if (xhatprov)
idx = interp1(xhat,1:length(xhat),x,"nearest");
if relative
stdevd = std((y-yhat(idx))./y);
else
stdevd = std(y-yhat(idx));
endif
else
if (relative)
stdevd = std((y-yhat)./y);
else
stdevd = std(y-yhat);
endif
endif
out = (stdevd - stdev)^2;
else # use gcv to find optimal lambda
[yhat, out] = rgdtsmcore (x, y, d, lambda, varargin{:});
endif
endfunction
Заранее спасибо ...