%% Eliptické rovnice - metoda konečných diferencí
% Oblast:                            obdélník [a,b]x[c,d]
% Rovnice:                         -\frac{\partial}{\partial x}( p\frac{\partial u}{\partial x})
% -\frac{\partial}{\partial y}( p\frac{\partial u}{\partial y})
% +qu=f
% Okrajové podmínky:     u=g na hranici obdélníku

help solveElipEq

%
%% Poissonova rovnice
% -\Delta u=1
% na [0,1]x[0,1] s nulovou okrajovou podmínkou

R=[0 1 0 1];
g=@(x,y) zeros(size(x));

% Vstupní funkce:             p=1, q=0, f=1

p=@(x,y) ones(size(x));
q=@(x,y) zeros(size(x));
f=@(x,y) ones(size(x));

% Počet dělení intervalu

mn=[4 5];

% Výpočet a zobrazení přibližného řešení

[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
% Zjemníme dělení intervalu

mn=[16 20];
[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
%% Laplaceova rovnice
% -\Delta u=0
% na [0,2]x[0,3] s linearni okrajovou podmínkou. Řešení musí být stejná funkce jako okrajová podmínka.

R=[0 2 0 3];
g=@(x,y) x+y;

% Vstupní funkce:             p=1, q=0, f=0

p=@(x,y) ones(size(x));
q=@(x,y) zeros(size(x));
f=@(x,y) zeros(size(x));

% Počet dělení intervalu

mn=[4 5];

% Výpočet a zobrazení přibližného řešení

[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
% Zjemníme dělení intervalu

mn=[16 20];
[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
%% Rovnice
% -\Delta u +xy\,u=1
%% Okrajove podminky:
% paraboly na hranici [0,1]x[0,1]

R=[0 1 0 1];
g=@(x,y) x.*(1-x)+y.*(1-y);

% Vstupní funkce:             p=1, q=0, f=1

p=@(x,y) ones(size(x));
q=@(x,y) x.*y;
f=@(x,y) ones(size(x));

% Počet dělení intervalu

mn=[4 5];

% Výpočet a zobrazení přibližného řešení

[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
% Zjemníme dělení intervalu

mn=[40 40];
[x,y,U] = solveElipEq(p,q,f,g,R,mn);
mesh(x,y,U)

%
%%
%%