function outInfo=afinfo
%
%  AFINFO  pomocna funkce pro SNU.
%
%  vystupem je datova struktura obsahujici seznam
%  demo programu na aproximaci funkce
%
%  Josef Danek

% Initialize demo index number
n=0;

% ===============================================
% Aproximace na okoli bodu
% ===============================================
n=n+1;
afList(n).Name='Aproximace na okoli bodu';
afList(n).Type='Aproximace funkce';
afList(n).Help= {
    ' Danou funkci f=f(x) aproximujeme pomoci Taylorova'
    ' polynomu na malem okoli bodu x0. '
    ' Ma-li funkce f v bode x0 n derivaci, potom pozadujeme, aby '
    '  '
    '      phi^(j) (x0) = f^(j) (x0) ,     j=0,1,...,n     '

};
afList(n).DemoList= {
    'Metoda Taylorova polynomu',
    '   Priklad 1'
    '   Priklad 2'
    '   Priklad 3'
    '   Priklad 4'
    '   Priklad 5'
    '   Priklad 6'
};

afList(n).FcnList= {
    '',
    'testuj 4 pr001',
    'testuj 4 pr002',
    'testuj 4 pr003',
    'testuj 4 pr004',
    'testuj 4 pr005',
    'testuj 4 pr006',
};

% ===============================================
% Interpolace
% ===============================================
n=n+1;
afList(n).Name='Aproximace interpolacnim polynomem';
afList(n).Type='Aproximace funkce';
afList(n).Help= {...           
  ' Predpokladame, ze mame funkci f=f(x) zadanou tabulkou' 
  ' hodnot v uzlovych bodech x0, x1, ... ,xn. '
  ' '
  ' Cilem je danymi body prolozit polynom P(x) tak, aby'
  ' byly splneny interpolacni podminky:'
  ' '
  '           P(xi) = f(xi) ,     i = 0,1,...,n'
  };
afList(n).DemoList={
   'Lagrangeuv interpolacni polynom'
    '   Priklad 1'
    '   Priklad 2'
    '   Priklad 3 (bez zadanych dat s vykreslenim dilcich polynomu)'
    '   Priklad 4 (bez zadanych dat bez vykresleni dilcich polynomu)'
   'Newtonuv interpolacni polynom'
    '   Priklad 5'
    '   Priklad 6'
    '   Priklad 7 (bez zadanych dat s vykreslenim dilcich polynomu)'
    '   Priklad 8 (bez zadanych dat bez vykresleni dilcich polynomu)'
   'Nevilluv algoritmus'
    '   Priklad 9 (bez geometrickeho znazorneni)'
    '   Priklad 10 (s geometrickym znazornenim)'
    '   Priklad 11 (bez geometrickeho znazorneni)'
    '   Priklad 12 (s geometrickym znazornenim)'
    '   Priklad 13 (s geometrickym znazornenim)'
   'Nevyhody pouziti interpolacniho polynomu'
    '   Pri extrapolaci'
    '       priklad I'
    '       priklad II'
    '   Pro vetsi pocet zadanych bodu'
    '       priklad I'
    '       priklad II'
    '   Pro aproximaci funkce, ktera ma asymptotu'
    '       priklad I'
    '       priklad II'
    '   Citlivost na vstupni data'
    '       priklad I - ekvidistantni uzly'
    '       priklad II - vhodne zvolene neekvidistantni uzly '
    '       priklad III - porovnani pro 10 uzlu'
    '       priklad IV - porovnani pro 15 uzlu'
   };
afList(n).FcnList={
    '',
    'testuj 4 pr007',
    'testuj 4 pr008',
    'testuj 4 pr009',
    'testuj 4 pr010',
    '',
    'testuj 4 pr011',
    'testuj 4 pr012',
    'testuj 4 pr013',
    'testuj 4 pr014',
    '',
    'testuj 4 pr015',
    'testuj 4 pr016',
    'testuj 4 pr017',
    'testuj 4 pr018',
    'testuj 4 pr019',
    '',
    '',
    'testuj 4 pr020',
    'testuj 4 pr021',
    '',
    'testuj 4 pr022',
    'testuj 4 pr023',
    '',
    'testuj 4 pr024',
    'testuj 4 pr025',
    '',
    'testuj 4 pr026',
    'testuj 4 pr027',
    'testuj 4 pr028',
    'testuj 4 pr029',
   };

% ===============================================
% SPLINE FUNKCE
% ===============================================
n=n+1;
afList(n).Name='Aproximace spline funkci';
afList(n).Type='Aproximace funkce';
afList(n).Help= {...           
   ' Funkci zadanou tabulkou aproximujeme na kazdem'
   ' podintervalu   < x(i) , x(i+1) >   polynomem tak,'
   ' aby vysledna slozena funkce prochazela zadanymi body'
   ' a byla spojita, a v zavislosti na stupni polynomu'
   ' mela spojite i derivace az do urciteho radu.'
  };
afList(n).DemoList={
   'Kubicky spline'
   '   Priklad 1'
   '   Priklad 2'
   '   Priklad 3'
   '   Priklad 4'
   };
afList(n).FcnList={
    '',
    'testuj 4 pr030',
    'testuj 4 pr031',
    'testuj 4 pr032',
    'testuj 4 pr033',
    };

% ===============================================
% L2-aproximace
% ===============================================
n=n+1;
afList(n).Name='L2-aproximace';
afList(n).Type='Aproximace funkce';
afList(n).Help= {...           
   ' Pro zadanou funkci hledame aproximaci, pro kterou '
   ' nepozadujeme splneni interpolacnich podminek. '
   ' V diskretnim pripade (funkce je dana tabulkou hodnot)'
   ' mohou byt zadane hodnoty zatizeny chybou (napr. mereni).'
   ' Ve tride zvolenych funkci hledame tu, ktera ma'
   ' nejmensi souhrnou odchylku od zadanych bodu.' 
  };
afList(n).DemoList={
   'Diskretni L2-aproximace'
   '   Priklad 1 (stupen 1)'
   '   Priklad 2 (stupen 1)'
   '   Priklad 3 (stupen 2)'
   '   Priklad 4 (stupen 3)'
   '   Priklad 5 (stupen 4)'
   '   Priklad 6 (vsechny stupne)'
   '   Priklad 7 (bez zadanych dat + vsechny stupne)'
   'Spojita L2-aproximace'
   '   Priklad 8 (stupen 1)'
   '   Priklad 9 (stupen 2)'
   '   Priklad 10 (0-4 stupen)'
   '   Priklad 11 (0-optimalni stupen)'
   '   Priklad 12 (0-4 stupen)'
   '   Priklad 13 (optimalni stupen)'
   '   Priklad 14 (0-4 stupen)'
   '   Priklad 15 (optimalni stupen)'
    };
afList(n).FcnList={
    '',
    'testuj 4 pr034',
    'testuj 4 pr035',
    'testuj 4 pr036',
    'testuj 4 pr037',
    'testuj 4 pr038',
    'testuj 4 pr039',
    'testuj 4 pr040',
    '',
    'testuj 4 pr041',
    'testuj 4 pr042',
    'testuj 4 pr043',
    'testuj 4 pr044',
    'testuj 4 pr045',
    'testuj 4 pr046',
    'testuj 4 pr047',
    'testuj 4 pr048',
     };

% ===============================================
% FOURIEROVA ANALYZA
% ===============================================
n=n+1;
afList(n).Name='Fourierova analyza';
afList(n).Type='Aproximace funkce';
afList(n).Help= {...           
   ' Pro zadanou periodickou funkci hledame aproximaci'
   ' (lze jak ve smyslu interpolace, tak ve smyslu '
   ' L2-aproximace) pomoci tzv. trigonometrickych '
   ' polynomu.'
  };
afList(n).DemoList={
   'Diskretni Fourierova analyza'
   '   Priklad 1'
   '   Priklad 2'
   '   Priklad 3'
   '   Priklad 4'
   '   Priklad 5'
   '   Priklad 6'
   '   Priklad 7'
   '   Priklad 8'
   '   Priklad 9'
  };
afList(n).FcnList={
    '',
    'testuj 4 pr049',
    'testuj 4 pr050',
    'testuj 4 pr051',
    'testuj 4 pr052',
    'testuj 4 pr053',
    'testuj 4 pr054',
    'testuj 4 pr055',
    'testuj 4 pr056',
    'testuj 4 pr057',
  };


outInfo=afList;



















