%========================================================================= % 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);