% Vykreslime rotacne symetrickou Dirichletovu funkci
% na oblasti [-8,8] x [-10,10].
x=-8:0.5:8; nx=length(x) % deleni intervalu [-8,8]
nx =
    33
y=-10:0.5:10; ny=length(y) % deleni intervalu [-10,10]
ny =
    41
[X,Y]=meshgrid(x,y);  % Vytvori matice X a Y souradnic pro vykreslení
                      % funkce z=f(x,y), kterou chápeme jako parametrickou
                      % plochu: x=v, y=u, Z(u,v)=f(v,u)
                      % X replikuje deleni x ve vertikalnim smeru (po radcich)
                      % Y replikuje deleni y v  horizont.   smeru (po sloupcich)
size(X)
ans =
    41    33
size(Y)
ans =
    41    33
R=sqrt(X.^2+Y.^2) + eps;  % male cislo eps potlacuje výraz 0/0 pri R=0
                          % v následujícím prikazu
Z=sin(R)./R;            % Vyhodnoceni funkce z=f(x,y)
size(Z)
ans =
    41    33
% Vykresleni dratoveho grafu
figure; mesh(X,Y,Z); grid on;
title('Dirichletova funkce dvou promennych');
xlabel('osa x');
ylabel('osa y');
zlabel('osa z');
% Vykresleni dratoveho grafu s vrstevnicemi
figure; meshc(x,y,Z); grid on
title('Dirichletova funkce dvou promennych');
xlabel('osa x');
ylabel('osa y');
zlabel('osa z');
% Vykresleni plosneho grafu
figure; surf(X,Y,Z); grid on
title('Dirichletova funkce dvou promennych');
xlabel('osa x');
ylabel('osa y');
zlabel('osa z');
% Vykresleni osvetleneho plosneho grafu
figure; surfl(X,Y,Z); grid on
title('Dirichletova funkce dvou promennych');
xlabel('osa x');
ylabel('osa y');
zlabel('osa z');
diary off
