(* :Title: Histograf*) (* :Author: Miroslava Dubcova, VSCHT *) (* :Summary: Vykresleni histografu pro danou funkci f(x) *) (* :Context: Matematika`Histgr` *) (* :Package Version: 1.0 *) (* :Mathematica Version: 2.2 *) (* :Copyright: Copyright Miroslava Dubcova *) (* :History: *) (* :Keywords: Histgr *) (* :Warning: *) BeginPackage["Matematika`Histgr`"] Histgr::usage= "Histgr[f,{x,a,b},x0,iter,options] Histograf realne funkce. f je realna fce,x je nazavisle promenna, a, b jsou koncove body intervalu, x0 je pocatecni hodnota, iter je pocet iteraci, options jsou parametry. Zde je parametr Points, Typ, PlotRange, implicitni hodnota je Points->100, Typ->1, PlotRange->All."; Points::usage= "Points->n, parametr pouzity ve funkci Histgr, n znaci pocet delicich bodu intervalu . Implicitni hodnota je Points->100"; Typ::usage= "Typ->n, parametr pouzity ve funkci Histgr, n znaci typ histpgramu, 1 - spojity, 2 - nspojity."; Begin["`Private`"] Options[Histgr]={Points->100,Typ->1,PlotRange->All}; Histgr[f_,{x_,a_,b_},x0_,iter_,options___]:= Module[{n,pole,i,xn,j,h,d,graf,typgr,range}, n=Points /. {options} /. Options[Histgr]; typgr=Typ /. {options} /. Options[Histgr]; range=PlotRange /. {options} /. Options[Histgr]; xn=x0; h=(b-a)/n; d=1/(b-a); pole=Table[0,{n+1}]; For[i=0,i<=iter,i++, {xn=f/.x->xn, j=Floor[(xn-a)*d*n], If[j>=0 && j<=n-1, pole[[j+1]]++]}]; pole[[n+1]]=pole[[n]]; (* graf=Table[{a+i*h,pole[[i+1]]},{i,0,n-1} ];*) If[typgr==1, cara=Table[Graphics[Line[{{a+i*h,pole[[i+1]]},{a+(i+1)*h,pole[[i+1]]}, {a+(i+1)*h,pole[[i+2]]}}]],{i,0,n-1}]; Show[cara,Axes->True,PlotRange->range]]; If[typgr==2, cara=Table[ Rectangle[{a+i*h,0},{a+(i+1)*h,pole[[i+1]]}],{i,0,n-1}]; Show[Graphics[cara],Axes->True,PlotRange->range]]; (* ListPlot[graf,PlotJoined->True]; *) pole;] End[] EndPackage[]