function [ALPHA,FALPHA]=MFDFAAlphaFH(Q,Hq)
% Мультифрактальний DFA (MF-DFA) за статтею
% "Multifractal detrended fluctuation analysis of nonstationary time series"
% Визначення alpha та F(alpha)
% Аргументи:
%   Q          - вектор-рядок значень q
%   Hq         - вектор-рядок значень h(q)
% Результати:
%   ALPHA      - значення аргументів ALPHA
%   FALPHA     - значення функції F(alpha)
% Обмеження:
%

% визначимо кількість значень Q
[m,n]=size(Q);
% якщо Q має більше одного рядка - транспонуємо
if (m>1) Q=Q'; [m,n]=size(Q); end
% визначимо кількість значень Hq
[m,n]=size(Hq);
% якщо Q має більше одного рядка - транспонуємо
if (m>1) Hq=Hq'; [m,n]=size(Hq); end
    
% виділяємо пам"ять для ALPHA та FALPHA
ALPHA=zeros(1,n);
FALPHA=zeros(1,n);
% знаходимо alpha
% шукаємо коефіцієнти інтерполяційного поліному для перших 9 точок
A=InterPol1(Q(1,1:9),Hq(1,1:9));
% шукаємо похідні у кожній із цих 9 точок і записуємо похідні
for i=3:9
    ALPHA(1,i)=Hq(1,i)+Q(1,i)*DFRidr(A,Q(1,i),0.1);
    FALPHA(1,i)=Q(1,i)*(ALPHA(1,i)-Hq(1,i))+1;
end
% шукаємо коефіцієнти інтерполяційного поліному для останніх 9 точок
A=InterPol1(Q(1,n-8:n),Hq(1,n-8:n));
% шукаємо похідні у кожній із цих 9 точок і записуємо похідні
for i=n-8:n-2
    ALPHA(1,i)=Hq(1,i)+Q(1,i)*DFRidr(A,Q(1,i),0.1);
    FALPHA(1,i)=Q(1,i)*(ALPHA(1,i)-Hq(1,i))+1;
end
% шукаємо похідні для усіх проміжних точок, беручи по 10 точок
for i=2:n-9
    A=InterPol1(Q(1,i:i+8),Hq(1,i:i+8));
    ALPHA(1,i)=Hq(1,i)+Q(1,i)*DFRidr(A,Q(1,i),0.1);
    FALPHA(1,i)=Q(1,i)*(ALPHA(1,i)-Hq(1,i))+1;
end

ALPHA=ALPHA(1,3:n-2);
FALPHA=FALPHA(1,3:n-2);

% очищуємо локальні змінні
clear ORDER A m n x1 x2 y1 y2;