Ugrás a tartalomhoz

Impulzív jelenségek modelljei

Karsai János

Typotex

3.2. A Dirac-féle ? függvény

3.2. A Dirac-féle ? függvény

A műszaki gyakorlatban, az elméleti matematikában, ezen belül az impulzív rendszerek elméletében a Heaviside-féle egységugrás függvénynek és a Dirac-féle ?(x)

? ? ( x ) függvénynek fontos szerepe van. Tulajdonságaik ismerete (felelevenítése) nagy-mértékben hozzájárul az impulzusok természetének megértéséhez.

Definíciók

A Heaviside-féle függvény definíciója:

H(x):={0,hax///<///0 / 1,hax?0

H ? ( x ) := { 0 , ha ? x ///</// 0 1 , ha ? x ? 0

Minthogy a 0-ban szakadása van, hagyományos értelemben ott nem deriválható. Általánosított (disztribúció) értelemben azonban létezik deriváltja, ami nem más mint a Dirac-féle ?

? függvény, amelyet a klasszikus függvények között az alábbi módon definiálhatunk:

?(x):=0,ha x?0, ?_(–?)^??(x)dx=1.

? ? ( x ) := 0 , ha ? x ? 0 , ? - ? ? ? ? ( x ) ? ? x = 1 .

A disztribúciók tulajdonságaival kapcsolatosan A. N. Kolmogorov és Sz. V. Fomin [17] könyvében találhatók bevezető fejezetek. A fenti definíció a 0-ban nem határozza meg a függvény értékét, de ez a bizonytalanság a klasszikus függvények között sem rontja használhatóságát. Ábrázolni ugyan nem lehet, de jelentése nagyon szemléletes: egy pontra koncentrált impulzushatást fejez ki. A definíciókból azonnal kapjuk, hogy

?_(–?)^x?(u)du=H(x), ?_(–?)^?f(u)?DiracDelta(u)du=f(0),
? - ? x ? ? ( u ) ? ? u = H ? ( x ) , ? - ? ? f ? ( u ) ? ? DiracDelta ( u ) ? ? u = f ( 0 ) ,

ahol f(x)

f ? ( x ) folytonos az x=0 x = 0 valamely környezetében. Definíciója alapján szimbolikus számítások esetén jól kezelhető, de numerikus közelítések esetén óvatosan kell bánni vele. Ezzel a problémával részletesen a következő fejezetben foglalkozunk.

  • Mathematica megvalósítás

A H(x)

H ? ( x ) és a ?(x) ? ? ( x ) függvények a Calculus`DiracDelta` programcsomagban találhatók, amelyet a 3.x verziókban (a 4.x-ben már nem!) felhasználás előtt be kell tölteni.

UnitStep[x]; DiracDelta[x]

UnitStep[x]; DiracDelta[x]

  • Néhány ellenőrzés

?_(–1)^xDiracDelta[x]dx

? - 1 x DiracDelta [ x ] ? ? x

UnitStep[x]

UnitStep [ x ]

?_(–?)^?f[x]DiracDelta[x]dx

? - ? ? f [ x ] ? DiracDelta [ x ] ? ? x

f[0]

f [ 0 ]

Vigyázat: a számítógépes grafikonok az origóbeli tulajdonságokat, szingularitásokat nem jelzik. Ezek ellenőrzését az olvasóra bízzuk.

Plot[UnitStep[x],{x,–2,2},PlotStyle›{Thickness[.02]}];

Plot [ UnitStep [ x ] , { x , - 2 , 2 } , PlotStyle { Thickness [ .02 ] } ] ;

Plot[DiracDelta[x],{x,–2,2},PlotStyle›{Thickness[0.02]}];

Plot [ DiracDelta [ x ] , { x , - 2 , 2 } , PlotStyle { Thickness [ 0.02 ] } ] ;

A Dirac-? közelítése klasszikus függvényekkel

A közelítések alapja az alábbi tétel:

3.2.1. Tétel.

Ha az f_n(x)

f n ( x ) integrálható függvényekre teljesül, hogy f_n(x)=0 f n ( x ) = 0 , ha |x|///>///d_n | x | ///>/// d n , lim_(n›?)d_n=0 lim n ? ? d n = 0 és lim_(n›?)?_(–?)^?f_n(x)dx=1 lim n ? ? ? - ? ? f n ( x ) ? ? x = 1 , akkor az f_n(x) f n ( x ) függvények integrális értelemben a Dirac-féle ? függvényhez tartanak, ha n›? n ? , vagyis lim_(n›?)?_(–?)^xf_n(u)du=H(x) lim n ? ? ? - ? x f n ( u ) ? ? u = H ? ( x ) , minden x esetén.

A tételnek megfelelően több különböző közelítést adhatunk meg, attól függően, hogy a közelítő függvényektől milyen szabályosságot várunk el. Látni fogjuk, hogy számításigényük is lényegesen eltér (Timing függvény).

  • Végtelenszer deriválható függvények sorozata

Dirac0[t_,d_]=Which[Abs[t]///<///(d/2),e^(–(((d/2)–t)(t+(d/2)))^(–1)),Abs[t]?(d/2),0]

Dirac0 [ t_ , d_ ] = Which [ Abs [ t ] ///</// d 2 , ? - ( ( d 2 - t ) ? ( t + d 2 ) ) - 1 , Abs [ t ] ? d 2 , 0 ]

DiracAppr[t_,d_]:=(Dirac0[t,d]/NIntegrate[e^(–(((d/2)–u)(u+(d/2)))^(–1)),{u,–(d/2),(d/2)}])

DiracAppr [ t_ , d_ ] := Dirac0 [ t , d ] NIntegrate [ ? - ( ( d 2 - u ) ? ( u + d 2 ) ) - 1 , { u , - d 2 , d 2 } ]

Timing[Plot[Evaluate[Table[DiracAppr[x,(1/nn)],{nn,1.,3.}]],{x,–0.5,0.5},PlotRange›All]]

Timing [ Plot [ Evaluate [ Table [ DiracAppr [ x , 1 nn ] , { nn , 1. , 3. } ] ] , { x , - 0.5 , 0.5 } , PlotRange All ] ]

{0.05 Second,?Graphics?}

{ 0.05 Second , ? ? Graphics ? ? }

  • Lépcsős függvények sorozata

DiracStep[x_,d_]:=(UnitStep[x+(d/2),(d/2)–x]/d)

DiracStep [ x_ , d_ ] := UnitStep [ x + d 2 , d 2 - x ] d

Timing[Plot[Evaluate[Table[DiracStep[x,(1/nn)],{nn,1.,3.}]],{x,–0.6,0.6},PlotRange›All]]

Timing [ Plot [ Evaluate [ Table [ DiracStep [ x , 1 nn ] , { nn , 1. , 3. } ] ] , { x , - 0.6 , 0.6 } , PlotRange All ] ]

{0.03 Second,?Graphics?}

{ 0.03 Second , ? ? Graphics ? ? }

  • Háromszög-függvények sorozata

DiracTr[x_,d_]:=Which[Abs[x]///<///d,(d–Abs[x]/d^2),Abs[x]?d,0]

DiracTr [ x_ , d_ ] := Which [ Abs [ x ] ///</// d , d - Abs [ x ] d 2 , Abs [ x ] ? d , 0 ]

Timing[Plot[Evaluate[Table[DiracTr[x,(1/nn)],{nn,1.,4.}]],{x,–1,1},PlotRange›All]]

Timing [ Plot [ Evaluate [ Table [ DiracTr [ x , 1 nn ] , { nn , 1. , 4. } ] ] , { x , - 1 , 1 } , PlotRange All ] ]

{0.01 Second,?Graphics?}

{ 0.01 Second , ? ? Graphics ? ? }

Feladatok

3.2.1. Feladat.

A grafikonok alapján sejthetjük, hogy a közelítés a leggyorsabb a végtelenszer differenciálható DiracAppr[x,d] függvények esetén, ugyanakkor ebben az esetben a leghosszabb a futásidő. Konstruáljunk más, kevéssé számításigényes, de megközelítően gyorsan konvergáló sorozatot.