%=========================================================================
% VYPOCET DERIVACE FUNKCE V BODE
%=========================================================================
%-------------------------------------------------------------------------
%function [der_fce,D_P,D_L,D_C]=derivace_vypocet(f, x0, h, zobraz);
%
% Vypocte numericky prvni derivaci symbolicky zadane funkce f
% v bode x0 s krokem h pomoci zakladnich pomernych diferenci
% D_P ... prava
% D_L ... leva
% D_C ... centralni
%-------------------------------------------------------------------------
derivace_vypocet('exp(x)*(1-x)',1,0.1,1)
derivace_vypocet('sin(x)',1.5,0.5,1)
%-------------------------------------------------------------------------
% function derivace_podminenost(f, x0, h);
%
% Vykresli chybu numericky vypoctene prvni derivace
% symbolicky zadane funkce f v bode x0 s kroky h
%-------------------------------------------------------------------------
i=16:-1:1;
h=10.^(-i);
derivace_podminenost('sin(x)', 1, h);
derivace_podminenost('sin(1/x)', 1, h);
derivace_podminenost('exp(x)', 1, h);
derivace_podminenost('exp(1/x)', 1, h);
%-------------------------------------------------------------------------
% function derivace_richardson(vzorec, f, x0, h, N);
%
% Vypocte hodnotu prvni derivace zadane funkce f v bode x0
% s kroky h, h/2, h/4, ... h/2^N
% pomoci prave, leve nebo centralni pomerne diference (vzorec)
%-------------------------------------------------------------------------
derivace_richardson('D_C', 'log(x)', 3, 0.8, 3);
derivace_richardson('D_P', 'log(x)', 3, 0.8, 3);
derivace_richardson('D_L', 'log(x)', 3, 0.8, 3);
derivace_richardson('D_P', 'sin(x)', pi , 0.8, 3);
derivace_richardson('D_C', 'sin(x)', pi , 0.8, 3);
derivace_richardson('D_L', 'x^5+x^3+2*x^2-3*x+2', 0 , 0.8, 3);
derivace_richardson('D_C', 'x^5+x^3+2*x^2-3*x+2', 0 , 0.8, 3);
%=========================================================================
% VYPOCET HODNOTY URCITEHO INTEGRALU FUNKCE
%=========================================================================
%-------------------------------------------------------------------------
% function [int_fce,I_O,I_L,I_S]=integral_vypocet_newton(f, a, b, N, zobraz);
%
% Vypocte numericky urcity integral symbolicky zadane funkce f
% na intervalu s poctem deleni N pomoci Newton-Cotesovych vzorcu
% I_O ... obdelnikove pravidlo
% I_L ... lichobeznikove pravidlo
% I_S ... Sipmsonovo pravidlo
%-------------------------------------------------------------------------
integral_vypocet_newton('exp(x)', 1, 1.2, 2, 1);
integral_vypocet_newton('sin(x)',0,pi,2,1);
integral_vypocet_newton('sin(x)',0,pi,8,1);
integral_vypocet_newton('x^2*sin(3*x)',0,pi,6,1);
integral_vypocet_newton('x^2*sin(3*x)',0,pi,8,1);
integral_vypocet_newton('x^2*sin(3*x)',0,pi,20,1);
%-------------------------------------------------------------------------
% function integral_richardson(vzorec, f, a, b, N, pocet_korekci);
%
% Vypocte hodnotu urciteho integralu zadane funkce f na
% s kroky h, h/2, h/4, ... h/2^pocet_korekci (kde h=(b-a)/N)
% pomoci Newton-Cotesovych kvadraturnich vzorcu
%-------------------------------------------------------------------------
integral_richardson('I_L','log(x)', 1, 5, 2, 2);
integral_richardson('I_O','log(x)', 1, 5, 2, 2);
integral_richardson('I_S','log(x)', 1, 5, 2, 2);
integral_richardson('I_O','sin(x)', 0, pi, 4, 3);
integral_richardson('I_L','sin(x)', 0, pi, 4, 3);
integral_richardson('I_S','sin(x)', 0, pi, 4, 3);
%-------------------------------------------------------------------------
% function [int_fce,I_G]=integral_vypocet_gauss(f, a, b, N, pocet, zobraz);
%
% Vypocte numericky urcity integral symbolicky zadane funkce f
% na intervalu s poctem deleni N pomoci Gaussovych vzorcu
% I_G ... vektor s vysledky
% (Gaussovy zakladni vzorce s uzly 1...pocet, (max 3)
%-------------------------------------------------------------------------
integral_vypocet_gauss('exp(x)', 1, 1.2, 1, 3, 1);
integral_vypocet_gauss('sin(x)', 0, pi, 1, 3, 1);
integral_vypocet_gauss('x', 0, 1.5, 1, 3, 1);
integral_vypocet_gauss('x^3', 0, 1.5, 1, 3, 1);
integral_vypocet_gauss('x^5', 0, 1.5, 1, 3, 1);
integral_vypocet_gauss('x^6', 0, 1.5, 1, 3, 1);
integral_vypocet_gauss('x^5', 0, 1.5, 5, 3, 1);
integral_vypocet_gauss('x^2*sin(3*x)',0,pi,6,3,1);