%NMA_Cauchy
%zadání například 
%y1' = y1^2 - 2y2   + 3x , y1(2) = 2.5 ;
%y2 '= 3y1  - 4y2^3 + 5x , y2(2) = 3 ;
%
% Soustava rovnic:    Y' = F(x,Y); 
% pocatecni podminka: Y(x0) = Y0;    
% x: číslo, Y, Y0, F:vektory-sloupce
%
% zápis zadání
F  = @(x,Y)[1.5*Y(1).^3-0.8*Y(2)+0.3*x; 1.5*Y(1)- 2.5*Y(2).^2 + 0.5*x];
x0 = 1;
Y0 = [1.5; 1.1];
h  = 0.8;
% Collatzova metoda pro soustavu
fprintf("Collatzova metoda, soustava %d rovnic,\n první krok\n", length(Y0))
% jeden krok 
k1 = F(x0, Y0)
k2 = F(x0 + h/2, Y0 + h/2*k1)
Y1C = Y0 + h * k2
% % druhý krok
% x1 = x0 + h;
% k1 = F(x1, Y1C);
% k2 = F(x1 + h/2, Y1C + h/2*k1);
% Y2C = Y1C + h * k2;
%--------------
% Eulerova explicitní 
fprintf("Eulerova metoda, soustava %d rovnic,\n první krok, h=%.2f\n", length(Y0),h)
% jeden krok
Y1E = Y0 + h * F(x0, Y0)
% % druhý krok 
% x1 = x0+h;
% Y2E = Y1E + h * F(x1, Y1E);
% %---------------
% % Eulerova implicitni 
% % y1' = y1 - 2y2   + 6x , y1(2) = 2.5 ;
% % y2' = 3y1  - 4y2 + 5x , y2(2) = 3 ;
% % MATICOVY ZAPIS Y'= AY + Bx 
% A=[1 -2; 3 -4]; B=[6;5]; Y0=[2.5; 3]; x0 = 2;
% % matice (pro osamostatneni Yk)
% AA = eye(2)- h * A;
% % prava strana pro prvni krok
% BB = Y0 + h * B * x0;
% % první krok
% Y1 = AA\BB; 
% % % prava strana pro druhy krok
% % x1 = x0 + h;
% % BB = Y1 + h * B * x1;
% % % druhy krok
% % Y2 = AA\BB
% ------------------
% PREVOD NA SOUSTAVU
% například pro y''' = f(x, y, y', y'')
% například y''' = 2y''- 4y' + 3y - 5x
% y1' = y2;
% y2' = y3;
% y3' = 2y3 - 4y2 + 3y1 -5x
% TOMUTO bude odpovídat funkce 
% zápis zadání funkce F
% ---------------------
% F  = @(x,Y)[Y(2); Y(3); 2*Y(3)- 4*Y(2) + 3*Y(1) - 5x];
% ------------------------------------------------------
% případně A a B v maticovém zípisu
% A = [0  1 0;
%      0  0 1;
%      3 -4 2];
% B = [0 0 -5];
% ----------------







