ZDE JSOU NEJAKE M-FILES DO PROGRAMU MATLAB

 

1.pro vypocet prumerne hodnoty a smerodatne odchylky pri 50 % odhadu chyby

2.vzorova sablona grafu (interpolacni polynom)

3.vzorova sablona splajnu

4.Rungeho priklad – rozdil mezi skutecnou funkci ,splajnem a interpolacnim polynomem

5.strucna napoveda k programu matlab

 


 


1.pro vypocet prumerne hodnoty a smerodatne odchylky pri 50 % odhadu chyby

 

function y=f(a)

 

suma_x=sum(a);

n=length(a);

prumer_x=suma_x/n;

odchylka=((prumer_x-a).^2);

suma_odchylky=sum(odchylka);

sigma=(suma_odchylky/(n*(n-1)))^(1/2);

k=0.6745;

delta=k*sigma;

 

disp('     x         (x-x_)^2')

disp('------------------------------------------')

disp([a ; odchylka]')

disp('                                       ')

disp('                                       ')

disp('   suma x      n        průměr x      ')

disp('------------------------------------------')

disp([suma_x;n;prumer_x;]')

disp('                                       ')

disp('                                       ')

disp('suma (x-x_)^2  sigma      k        delta')

disp('-------------------------------------------')

disp([suma_odchylky;sigma;k;delta]')

disp('-------------------------------------------')

disp('                                       ')

disp(' * * * * * * * * * * * * * * * * * * * * * ')

disp('* * * * * * * * * VÝSLEDEK * * * * * * * * ')

disp('   pruměr x    +- odchylka    ')

disp('-------------------------------------------')

disp([prumer_x;delta]')

 

%fce pro výpočet průměrné hodnoty a směrodatné odchylky !

%k=0,6745 pro 50 % odhad chyby

 

TOP

 

2.vzorova sablona grafu (interpolacni polynom)

 

x=[-1 0 2 4 5];

 

y=[-2 1 0 -1 1];

 

n=length(x)-1;

 

a=polyfit(x,y,n);

 

k=length(x);

 

xx=x(1):0.1:x(k);

 

yy=polyval(a,xx);

 

plot(x,y,'*',xx,yy)

 

title('NADPIS')

 

xlabel('x-ová osa [mm]')

 

ylabel('y-ová osa [mm]')

 

zoom on

 

%vykreslí polynom kopírující body zadané hodnotami x a y

%n je stupeň polynomu,číslo musí být o jedno nižší než je počet hodnot x

 

TOP

 

 

3.vzorova sablona splajnu

 

x=[-1 0 2 4 5];

 

y=[-2 1 0 -1 1];

 

k=length(x);

 

xx=x(1):0.1:x(k);

 

yy=spline(x,y,xx);

 

plot(x,y,'*',xx,yy)

 

title('NADPIS')

 

xlabel('x-ová osa [mm]')

 

ylabel('y-ová osa [mm]')

 

 

%vykreslí interpolační splajn kopírující body zadané hodnotami x a y

 

TOP

 

 

4.Rungeho priklad – rozdil mezi skutecnou funkci ,splajnem a interpolacnim polynomem

 

x=[-5 -4 -3 -2 -1 0 1 2 3 4 5];

 

f=[r(-5) r(-4) r(-3) r(-2) r(-1) r(0) r(1) r(2) r(3) r(4) r(5)];

 

a=polyfit(x,f,10);

 

xx=-5:0.1:5;

 

yy=polyval(a,xx);

 

zz=spline(x,f,xx);

 

fplot('r',[-5 5])

 

hold on

 

plot(x,f,'ro',xx,yy,'g',xx,zz,'b')

 

title('RUNGEHO PŘÍKLAD')

 

text(-2,1.7,'skutečná fce y=1/(1+x.^2) - vyobrazena žlutě')

text(-2,1.5,'splajn vyobrazený modře')

text(-2,1.3,'interpolační polynom vyobrazený zeleně')

text(-2,1.1,'interpolovaná data vyobrazena červěně')

 

zoom on

 

%RUNGEHO PŘÍKLAD :Ukazuje rozdíl mezi skutečnou fcí (y=1/(1+x.^2)) vyobrazenou žlutě ,

%splajnem vyobrazeným modře a interpolačním polynomem vyobrazeným zeleně.

%To vše pro interpolovaná data vyobrazena červěně.

 

TOP

 

 

5.strucna napoveda k programu matlab

 

OBECNÉ PŘÍKAZY

příkaz: save <jméno souboru> <jméno proměnné>

 

uloží vypsané proměnné do vytvořeného souboru *.mat

 

příkaz: load <jméno souboru>

 

načte proměnné uložené v souboru

 

příkaz: who(s)

 

vypíše dosavadní uložené proměnné(podrobněji)

 

příkaz: what

 

vypíše M-FILE a MAT-FILE složky

-------------------------------------------------------------------------------------------

GRAFY FUNKCÍ

příkaz: plot(x,y,'s')

 

x,y-hodnoty   s-(barva čáry:y,m,c,r,g,b,w,k  typ čáry: .,o,x,*,+,-,:,-.,--)

 

příkaz: bar(x)

 

sloupcový graf

 

příkaz: fplot('x.^2+3',[-5 5])

 

Vykreslí funkci na daném intervalu bez předchozího výpočtu ypsilonových hodnot.

Fci také možno nadefinovat v M-FILE.

 

příkaz: hold on(off)

 

ponechá (překreslí) původní graf

 

příkaz: grid on(off)

 

souřadnicová síť ano (ne)

 

příkaz: 1.axis('off')  2.axis('auto')  3.axis('equal')

 

        1.zmizí osy  2.původní měřítko na osách  3.stejné měřítko na osách

 

příkaz: plot3(x,y,z)     -3D graf

 

příkaz: 1.text(3,4,'text')  2.gtext('text')  3.xlabel('x-ová osa')  4.title('nadpis')

 

        1.zapíše text do souřadnic  2.napsaný text vloží kurzorem  3.popis os  4.nadpis

-------------------------------------------------------------------------------------------

LU ROZKLAD MATICE A

příkaz: [L,U,P]=lu(A)

 

L-horní trojúhelníková matice   U-dolní trojúhelníková matice   P-permutační matice

-------------------------------------------------------------------------------------------

LR ALGORITMUS - VLASTNÍ ČÍSLA MATICE

příkaz: [D,V]=eig(A)

 

D-sloupec vl. vektorů   V-vlastní čísla

-------------------------------------------------------------------------------------------

DIFERENCIÁLNÍ ROVNICE OBYČEJNÉ

příkaz: ode23('f',a,b,y)  nebo ode45('f',a,b,y)

 

f-fce v M-FILE  a-počátek intervalu  b-konec intervalu  y-počáteční podmínka( y(-2)=-1 dosaď -1)

-------------------------------------------------------------------------------------------

KOŘENY KVADRATICKÉ A VYŠŠÍ ROVNICE

příkaz: roots([2 1 -3])

 

vypočte kořeny rovnice 2x^2 + x -3 =0

-------------------------------------------------------------------------------------------

KOŘENY OBECNÉ FCE

příkaz:fzero('f',x0)

 

f-fce v M-FILE    x0-číslo blízké kořenu(odečteme z grafu)

-------------------------------------------------------------------------------------------

NUMERICKÝ VÝPOČET INTEGRÁLŮ (int od a do b f(x)dx)

x=[a:h:b];  I=sum(h*f(x))

-------------------------------------------------------------------------------------------

NUMERICKÝ VÝPOČET DERIVACE

f’(x)=(f(x+h)-f(x))/h      1.řádu

f’(x)=(f(x+h)-f(x-h))/2h   2.řádu

f’’(x)=(f(x+h)-2f(x)+f(x-h))/h2

-------------------------------------------------------------------------------------------

TVORBA M-FILE

výpis hodnot  x a (x-x_)^2  do sloupce :

 

disp('     x         (x-x_)^2')

disp('------------------------------------------')

disp([x ; (x-x_)^2]')

           

TOP