function RLC_reseni
% Reseni serioveho obvodu R,L,C s konstantnim zdrojem napeti
% diferencialni rovnice obvodu dana v m-file RLCobvod.m

% Na vetev tvorenou seriove spojenym odporem 200 Ohm, civkou 0.5H a
% kondenzatorem 5 mikroF pripojime v okamziku t=0 zdroj napeti s konstantnim
% napetim Uo=100V.  Napeti na kondenzatoru v okamziku t=0 je uC(0)=0.
%      R ___     _L _  _   C||
%    ---|___|---/ \/ \/ \---||-         podle 2. Kirchhoffova zakona:
%   |                       || |         uR  +  uL  + uC =  Uo
%   |                          |        R*i  +  L*i'+ 1/C*intgral do 0 do t z i(t)dt + uC(0)  =  Uo
%   |                          |        derivovanim dostaneme:
%   |     _                    |        R*i' + L*i'' + 1/C*i = 0, tj. dif. rovnice 2.radu
%   |____/ \________/ _________|                 i'' = (- 1/C*i - R*i') / L
%        \_/        t=0         v MATLABu:  i  oznacime proud(1)
%        Uo                                 i' oznacime dproud(1)
%                               Zavedeme substituci:
%                                                 i' = proud(2), tj. vlastne dif. rovnice 1.radu
%                               v MATLABu: dproud(1) = proud(2)
%                               Dale pak    i'' oznacime dproud(2)
%                               a dosadime-li do rovnice pro i'' plati:
%                                   dproud(2) = (-1/C*proud(1)-R*proud(2))/L, tj. take dif. rovnice 1. radu
%                               Resime tedy soustavu dvou dif. rovnic 1.radu: (viz m-file RLCobvod.m)
%                               dproud(1) = proud(2)
%                               dproud(2) = (-1/C*proud(1)-R*proud(2))/L

[t,proud]=ode45(@RLCobvod,[0,0.1],[0,100/0.5]);
   % ode45(@nazev, casovy interval, pocatecni podminky)
   % resi soustavu diferencialnich rovnic danou v m-file RLC_dif_rov.m
   % v casovem intervalu od 0 do 0.1 s pocatecnimi podminkami i(0)=0, i'(0)=Uo/L=100/0.5;
   % zname fyzikalni pocatecni podminky pro t=0: i(0)=0, uC(0)=0,
   % z 2. Kirchhoffova zakona: uR + uL + uC =  Uo => uL = Uo-uC-uR, 
   % tj. L*i' = Uo-uC-uR => i' = (Uo-uC-uR)/L = (Uo-uC-R*i)/L
   % pro t = 0 dostaneme: i'(0) = (Uo-uC(0)-R*i(0))/L
   % po dosazeni fyzikalnich pocatecnich podminek: i'(0) = Uo-0-0/L = Uo/L = 100/0.5
   
   % vysledkem je [t,proud], tj. pro kazdy cas z cas.intervalu je vypocten proud a jeho derivace
   % t je sloupcovy vektor
   % proud je matice se 2 sloupci, 
   % v 1. sloupci je hledany proud, v 2.sloupci jeho derivace
subplot(2,1,1) % rozdeleni grafickeho okna na 2 casti (nasledujici graf v 1. casti)
plot(t,proud(:,1)) % vykresleni proudu
xlabel('t [s]') % popis osy x
ylabel('i [A]') % popis osy y
legend('proud i [A]') % popis krivky (legenda)

subplot(2,1,2) % rozdeleni grafickeho okna na 2 casti (nasledujici graf v 2. casti)
plot(t,proud(:,2),'g') % vykresleni derivace proudu, g - zvolena zelena barva krivky
xlabel('t [s]') % popis osy x
ylabel('i´') % popis osy y
legend('derivace proudu i ´') % popis krivky (legenda)