%========================================================================= % RESENI POCATECNI ULOHY PRO ODR 1.RADU %========================================================================= %========================================================================= J e d n o k r o k o v e m e t o d y %========================================================================= %------------------------------------------------------------------------- % function [X,Y]=eulerova_metoda(f, y0, x0, xn, h, zobraz); % % Vypocte reseni obycejne diferencialni rovnice 1. radu % y'=f(x,y(x)) % s pocatecni podminkou % y(x0)=y0 % na intervalu . % Pro diskretizaci pouzije krok h %------------------------------------------------------------------------- [X,Y]=eulerova_metoda('x-y', 1, 0, 4, 0.2, 1); [X,Y]=eulerova_metoda('y+exp(x)', -1, 0,3, 0.2, 1); %------------------------------------------------------------------------- % function [X,Y]=taylorova_metoda(f, y0, x0, xn, h, RAD, zobraz); % % Vypocte reseni obycejne diferencialni rovnice 1. radu % y'=f(x,y(x)) % s pocatecni podminkou % y(x0)=y0 % na intervalu . % Pro diskretizaci pouzije krok h. % Metoda ma rad = RAD %------------------------------------------------------------------------- [X,Y]=taylorova_metoda('x-y', 1, 0, 4, 0.2, 4, 1); [X,Y]=taylorova_metoda('sin(x^2*y)-y', 1, 0, 4, 0.1, 4, 1); %------------------------------------------------------------------------- function [X,Y]=modifikovana_eulerova_metoda(f, y0, x0, xn, h, zobraz); % % Vypocte reseni obycejne diferencialni rovnice 1. radu % y'=f(x,y(x)) % s pocatecni podminkou % y(x0)=y0 % na intervalu . % Pro diskretizaci pouzije krok h %------------------------------------------------------------------------- [X,Y]=modifikovana_eulerova_metoda('x-y', 1, 0, 4, 0.2, 1); %------------------------------------------------------------------------- % function [X,Y]=heunova_metoda(f, y0, x0, xn, h, zobraz); % % Vypocte reseni obycejne diferencialni rovnice 1. radu % y'=f(x,y(x)) % s pocatecni podminkou % y(x0)=y0 % na intervalu . % Pro diskretizaci pouzije krok h %------------------------------------------------------------------------- [X,Y]=heunova_metoda('x-y', 1, 0, 4, 0.2, 1); %------------------------------------------------------------------------- % Porovnani jednokrokovych metod %------------------------------------------------------------------------- [X,Y]=jednokrokove_metody('x-y', 1, 0, 4, 0.3); [X,Y]=jednokrokove_metody('-y', 1, 0, 10, 0.3); [X,Y]=jednokrokove_metody('sin(x)', 1, 0, 4*pi, 0.3); [X,Y]=jednokrokove_metody('sin(x^2*y)-y', 1, 0, 4, 0.1);