function [Hq,TAUq,Q]=MFDFAHTau(S,FqS,Q)
% Мультифрактальний DFA (MF-DFA) за статтею
% "Multifractal detrended fluctuation analysis of nonstationary time series"
% Визначення h(q) та tau(q)
% Аргументи:
%   S          - вектор-рядок значень ширини вікна
%   FqS        - матриця значень Fq(s)
%   Q          - вектор-стовпчик значень q
% Результати:
%   Hq         - вектор-рядок значень h(q)
%   TAUq       - вектор-рядок значень tau(q)
%   Q          - вектор-рядок значень q
% Обмеження:
%

% знаходимо логарифми значень S та FqS для підрахунку h(q)
lS=log(S); lFqS=log(FqS);
% визначимо кількість степенів q для створення векторів Hq та TAUq
[m,n]=size(lFqS);
% створимо нуль-вектори Hq та TAUq
Hq=zeros(1,m); TAUq=zeros(1,m);

% проходимо по усім рядкам FqS
for i=1:m
    % знаходимо тангенс кута нахилу інтерполюючої прямої методом найменших квадратів
    A=GeneralMinSquare(lS,lFqS(i,:),1);
    % записуємо тангенс кута у вектор h(q)
    Hq(1,i)=A(1,2);
    % знаходимо та записуємо відповідне tau(q)
    TAUq(1,i)=Q(i,1)*Hq(1,i)-1;
end

% транспонуємо Q
Q=Q';

% очищуємо локальні змінні
clear m n i A lS lFqS;