Ugrás a tartalomhoz

Impulzív jelenségek modelljei

Karsai János

Typotex

3.3. A Dirac-féle ? függvény differenciálegyenletekben

3.3. A Dirac-féle ? függvény differenciálegyenletekben

Az előző pontban áttekintettük a Dirac-féle ? függvény alapvető tulajdonságait és klasszikus függvényekkel való közelítésének lehetőségeit. Most néhány ismert példán keresztül bemutatjuk a ? függvény jelentőségét differenciálegyenletekben.

A kezdetiérték-probléma

  • Lineáris eset

Tekintsük az

x'=A(t)x, x(0)=x_0
x ' = A ? ( t ) ? x , x ? ( 0 ) = x 0

lineáris kezdetiérték-problémát, ahol x ? R^n

R n és A(t) A ? ( t ) folytonos mátrix függvény. Ismert, hogy x(t) x ? ( t ) akkor és csakis akkor megoldás, ha megoldása az

x(t)=x_0+?_0^tA(s)x(s)ds
x ? ( t ) = x 0 + ? 0 t A ? ( s ) ? x ? ( s ) ? ? s

integrálegyenletnek, amelyet az alábbi alakban is írhatunk:

x(t)=?_(–?)^t(x_0?(s)+A(s)x(s))ds, x(t)=0, ha t///<///0.
x ? ( t ) = ? - ? t ( x 0 ? ? ? ( s ) + A ? ( s ) ? x ? ( s ) ) ? ? s , x ? ( t ) = 0 , ha ? t ///</// 0.

Ez utóbbi pedig ekvivalens az

x'=A(t)x+x_0?(t), x(0–0)=0
x ' = A ? ( t ) ? x + x 0 ? ? ? ( t ) , x ? ( 0 - 0 ) = 0

kezdetiérték-problémával.

  • Általánosabb egyenletek

Az előző egyszerű példában láttuk, hogy az x_0?(t)

x 0 ? ? ? ( t ) tag megadása a differenciálegyenlet megoldásánál a nulla értékről az x_0 x 0 értékre való ugrást jelenti. Ez általánosan is igaz. Formálisan tekinthetjük az

x'=f(t,x)+I(x)?(t–t_0)
x ' = f ? ( t , x ) + I ? ( x ) ? ? ? ( t - t 0 )

differenciálegyenletet (f folytonos, t_0///>///0

t 0 ///>/// 0 ), amely valójában integrálegyenletként értelmezhető:

x(t)=x(0)+?_0^t(I(x(s))?(s–t_0)+f(s,x(s)))ds.
x ? ( t ) = x ? ( 0 ) + ? 0 t ( I ? ( x ? ( s ) ) ? ? ? ( s - t 0 ) + f ? ( s , x ? ( s ) ) ) ? ? s .

Könnyen látható, hogy az f folytonossága és a ? definíciója miatt

x(t_0+0)=lim_(?›0)(x(t_0–?)+?_(t_0–?)^(t_0+?)(I(x(s)) ?(s–t_0)+f(s,x(s)))ds) =x(t_0–0)+I(x(t_0))
x ( t 0 + 0 ) = lim ? 0 ? ( x ? ( t 0 - ? ) + ? t 0 - ? t 0 + ? ( I ? ( x ? ( s ) ) ? ? ( s - t 0 ) + f ? ( s , x ? ( s ) ) ) ? ? s ) = x ( t 0 - 0 ) + I ( x ( t 0 ) )

Így ez a differenciálegyenlet az

x'=f(t,x), t?t_0, x(t_0+0)=x(t_0–0)+I(x(t_0))
x ' = f ? ( t , x ) , t ? t 0 , x ( t 0 + 0 ) = x ( t 0 - 0 ) + I ( x ( t 0 ) )

alakban, közvetlenül ugrásokkal is megadható. Amennyiben végtelen sok pillanatnyi hatás következik be, akkor a differenciálegyenlet alakja

x'=f(t,x)+?_(i=1)^? I_i(x)?(t–t_i),
x ' = f ? ( t , x ) + ? i = 1 ? I i ( x ) ? ? ? ( t - t i ) ,

amely megadható

x'=f(t,x), t?t_i, x(t_i+0)=x(t_i–0)+I_i(x(t_i))
x ' = f ? ( t , x ) , t ? t i , x ( t i + 0 ) = x ( t i - 0 ) + I i ( x ( t i ) )

alakban is.

A megkülönböztetésnek és az impulzusokkal való felírásnak több oka van. A legfontosabbak:

  • Az impulzív rendszerben szereplő függvények klasszikus értelemben léteznek, míg a differenciálegyenletet integrálegyenletté kell átírni, mivel ? nem függvény.

  • A Dirac ?-val felírt differenciálegyenlet szerencsés esetben formálisan megoldható. A numerikus megoldáshoz a ? függvényt valódi függvényekkel kell közelíteni, amint az már tettük a ?(x) és a Heaviside-függvény leírásánál az előző pontban. Jól közelítő függvény tartójának kicsinek kell lennie, amit a megoldó rutinnak figyelembe kell venni (a lépéshossz elegendően kicsi legyen). A megoldás ekkor időigényes lehet.

  • Az impulzív rendszer megoldása klasszikus kezdetiérték-problémák egymás utáni megoldását jelenti.

  • A folytonos változás (a differenciálegyenlet) és az ugrásszerű változás szétválasztása az elméleti és gyakorlati vizsgálatok szempontjából előnyös lehet.

  • Léteznek ugrások, amelyek nem vagy csak nehezen lennének általánosított differenciálegyenletként megadhatók.

Oszcillátor impulzív gerjesztéssel

Most egy impulzívan gerjesztett oszcillátor példáján mutatjuk meg, hogy hogyan oldhatók meg a Mathematica rendszerben a Dirac-féle ? függvényt tartalmazó differenciálegyenletek. Ehhez a korábban megadott ?-közelítéseket használjuk. A megoldások időigényét a Timing függvénnyel számoljuk. Végül, a rendszert impulzív rendszerként is megoldjuk. Ábrázoljuk a különböző módszerekkel kapott megoldásokat és különbségüket. Az egyenlet alakja:

x^('')+x=?_(i=1)^5?(t–2i),
x '' + x = ? i = 1 5 ? ? ( t - 2 ? i ) ,

a jobb oldal Mathematica formátumban:

rhs=?_(i=1.)^(5.)DiracDelta[t–2i]; t0=0; t1=11;

rhs = ? i = 1. 5. DiracDelta [ t - 2 ? i ] ; t0 = 0 ; t1 = 11 ;

  • Az elméleti megoldás

Clear[thsol]

Clear [ thsol ]

sol=Timing[DSolve[{(x^')^'[t]+x[t]==rhs,x[0]==0,x^'[0]==1},x[t],t]]

sol = Timing [ DSolve [ { ( x ' ) ' [ t ] + x [ t ] == rhs , x [ 0 ] == 0 , x ' [ 0 ] == 1 } , x [ t ] , t ] ]

thsol=x[t]/.sol[[2]];

thsol = x [ t ] /. ? sol [ 2 ] ;

{0.521 Second,{{x[t]›0. Cos[t]+1. Sin[t]+ (0.544021+0. i)Cos[t]UnitStep[–10.+t]– (0.839072+0. i)Sin[t]UnitStep[–10.+t]– (0.989358+0. i)Cos[t]UnitStep[–8.+t]– (0.1455+0. i)Sin[t]UnitStep[–8.+t]+ (0.279415+0. i)Cos[t]UnitStep[–6.+t]+ (0.96017+0. i)Sin[t]UnitStep[–6.+t]+ (0.756802+0. i)Cos[t]UnitStep[–4.+t]– (0.653644+0. i)Sin[t]UnitStep[–4.+t]– (0.909297+0. i)Cos[t]UnitStep[–2.+t]– (0.416147+0. i)Sin[t]UnitStep[–2.+t]}}}

{ 0.521 Second , { { x [ t ] 0. Cos [ t ] + 1. Sin [ t ] + ( 0.544021 ? + 0. ? ) ? Cos [ t ] ? UnitStep [ - 10. + t ] - ( 0.839072 ? + 0. ? ) ? Sin [ t ] ? UnitStep [ - 10. + t ] - ( 0.989358 ? + 0. ? ) ? Cos [ t ] ? UnitStep [ - 8. + t ] - ( 0.1455 ? + 0. ? ) ? Sin [ t ] ? UnitStep [ - 8. + t ] + ( 0.279415 ? + 0. ? ) ? Cos [ t ] ? UnitStep [ - 6. + t ] + ( 0.96017 ? + 0. ? ) ? Sin [ t ] ? UnitStep [ - 6. + t ] + ( 0.756802 ? + 0. ? ) ? Cos [ t ] ? UnitStep [ - 4. + t ] - ( 0.653644 ? + 0. ? ) ? Sin [ t ] ? UnitStep [ - 4. + t ] - ( 0.909297 ? + 0. ? ) ? Cos [ t ] ? UnitStep [ - 2. + t ] - ( 0.416147 ? + 0. ? ) ? Sin [ t ] ? UnitStep [ - 2. + t ] } } }

A megoldás grafikonja:

Plot[thsol,{t,t0,t1}];

Plot [ thsol , { t , t0 , t1 } ] ;

A derivált grafikonja:

Plot[Evaluate[?_tthsol],{t,t0,t1}];

Plot [ Evaluate [ ? t thsol ] , { t , t0 , t1 } ] ;

Mivel a ? függvény az x''-ben jelenik meg, ezért x'-nek ugrásai vannak, és x folytonos.

  • Közelítő megoldás lépcsős függvénnyel való közelítéssel

d=0.01; rhsstep=?_(i=1)^5DiracStep[t–2i,d];

d = 0.01 ; rhsstep = ? i = 1 5 DiracStep [ t - 2 ? i , d ] ;

sol=Timing[NDSolve[{(x^')^'[t]+x[t]==rhsstep,x[0]==0,x^'[0]==1},x[t],{t,t0,t1},MaxStepSize›0.001,MaxSteps›15000]]

sol = Timing [ NDSolve [ { ( x ' ) ' [ t ] + x [ t ] ? rhsstep , x [ 0 ] == 0 , x ' [ 0 ] == 1 } , x [ t ] , { t , t0 , t1 } , MaxStepSize 0.001 , MaxSteps 15000 ] ]

stepsol=x[t]/.sol[[2]];

stepsol = x [ t ] /. ? sol [ 2 ] ;

{0.191 Second,{{x[t]›InterpolatingFunction[{{0.,11.}},///<//////>///][t]}}}

{ 0.191 Second , { { x [ t ] InterpolatingFunction [ { { 0. , 11. } } , ///<//////>/// ] [ t ] } } }

Plot[stepsol,{t,t0,t1}];

Plot [ stepsol , { t , t0 , t1 } ] ;

Az elméleti és a közelítő megoldás különbsége:

Plot[stepsol–thsol,{t,t0,t1}];

Plot [ stepsol - thsol , { t , t0 , t1 } ] ;

  • Közelítő megoldás háromszög-függvénnyel való közelítéssel

d=0.01;

d = 0.01 ;

rhstr=?_(i=1)^5DiracTr[t–2i,d];

rhstr = ? i = 1 5 DiracTr [ t - 2 ? i , d ] ;

sol=Timing[NDSolve[{(x^')^'[t]+x[t]==rhstr,x[0]==0,x^'[0]==1},x[t],{t,t0,t1},MaxStepSize›0.001,MaxSteps›15000]]

sol = Timing [ NDSolve [ { ( x ' ) ' [ t ] + x [ t ] ? rhstr , x [ 0 ] == 0 , x ' [ 0 ] == 1 } , x [ t ] , { t , t0 , t1 } , MaxStepSize 0.001 , MaxSteps 15000 ] ]

trsol=x[t]/.sol[[2]];

trsol = x [ t ] /. ? sol [ 2 ] ;

{2.163 Second,{{x[t]›InterpolatingFunction[{{0.,11.}},///<//////>///][t]}}}

{ 2.163 Second , { { x [ t ] InterpolatingFunction [ { { 0. , 11. } } , ///<//////>/// ] [ t ] } } }

Plot[trsol,{t,t0,t1}];

Plot [ trsol , { t , t0 , t1 } ] ;

Az elméleti és a közelítő megoldás különbsége:

Plot[trsol–thsol,{t,t0,t1}];

Plot [ trsol - thsol , { t , t0 , t1 } ] ;

A két különböző közelítés eltérése:

Plot[trsol–stepsol,{t,t0,t1}];

Plot [ trsol - stepsol , { t , t0 , t1 } ] ;

  • A megfelelő impulzív rendszer megoldása

Az egyenletet ugrásokkal, impulzusokkal felírva az alábbi rendszert kapjuk:

x^('')+x=0, t?t_i, y(t_i+0)=y(t_i–0)+1, t_i=2i (i=1,2,...,5).
x '' + x = ? 0 , t ? t i , y ? ( t i + 0 ) = y ? ( t i - 0 ) + 1 , t i = 2 ? i ? ( i = 1 , 2 , ... , 5 ) .

Az impulzív rendszer megoldásának technikai elemeivel később részletesen foglalkozunk (4.2.fejezet). A rendszer megoldását a későbbi fejezetek ismeretében az olvasóra bízzuk. A megoldás és deriváltja:

Az elméleti és a közelítő megoldás különbsége: