function [rr,times, extrems]=MinMaxPredict(infile,outfile,window);
% прогнозирование по временам локальных минимумов-максимумов
y=dlmread(infile);
if (size(y,2)<size(y,1))
    y=transpose(y);
end
n=length(y);
nbeg=n;
remains=y(1:nbeg);
maswindows=[window,window*0.6,window*0.2,window*0.1,window*0.05,window*0.03,window*0.02,window*0.01,window*0.01,window*0.005,window*0.005];
oscillations_min=[];
oscillations_max=[];
for i=1:10
    window=maswindows(1)*(0.5^i)%maswindows(i);
    [y_cosinuses,rr,times, extrems,amplitudes,oscillations_min2,oscillations_max2]=serier2rr(remains,window,0);
    [oscillations_min,oscillations_max]=all_extremums_remove_similar(oscillations_min,oscillations_max,oscillations_min2,oscillations_max2);
    imin=min(length(remains),length(y_cosinuses));
    remains=remains(1:imin)-y_cosinuses(1:imin);
    %window=floor(window*0.7);
    % отображает неправильно: старая апроксимация к новым остаткам.
    %figure;
    %plot(remains);
    %hold on;
    %plot(y_cosinuses);
    title(['Test prediction n=',num2str(i)]);

end
%figure;
%plot(y);
%hold on;
%plot(y_cosinuses);
%title('Test prediction');
%[y_cosinuses2,rr2,times2, extrems2]=serier2rr(y(1:n),window);
%mintime=min(length(times),length(times2));
%diftimes=abs(times(1:mintime)-times2(1:mintime));
%minotklon=find(diftimes>0);
%minotklon=min(minotklon);
%avgotklon=mean(diftimes(minotklon:mintime));
%fprintf(1,'Avegage min/max diviation is %d days, max diviation is %d days.\n',avgotklon,max(diftimes));
%dlmwrite (outfile,y_cosinuses,'\n');


figure;
amplitudes=oscillations_min(:,2);
periods=oscillations_min(:,3);
h=plot(periods/250,-amplitudes);
set(h,'LineStyle','none');
set(h,'Marker','.');
xlabel('periods, years');
ylabel('Amplitudes');
title('min Ampl/chast');

figure;
amplitudes=oscillations_max(:,2);
periods=oscillations_max(:,3);
h=plot(periods/250,amplitudes);
set(h,'LineStyle','none');
set(h,'Marker','.');
xlabel('periods, years');
ylabel('Amplitudes');
title('max Ampl/chast');


% Новый вариант 20110403. Его использую для анализа колебаний в ряде....
% Тестирую командную строку:
%minmaxpredict('dj_remains.txt','dj_remainsPredict.txt',9000);
