Deltafunktion als Film
Eine Delta-Funktion lässt sich durch Sinusx/x annähern. In einen Film gefasst wird das recht anschaulich. Die Skalen werden im Verlauf angepasst damit man die Dynamik besser sieht. Mit gnuplot kein Problem.
#!/usr/bin/gnuplot BN='delta-approx' GIF=BN.'.gif' MKV=BN.'.mkv' # sinc(x,Epsilon) = sin(x/Epsilon) / (pi * x ) delta(x,a) = exp(-x**2.0/2.0/a)/(sqrt(2.0*pi*a)) nmax = 200 ybereich(n) = n**1.54/nmax xbereich(n) = 50.0/n**0.650 xpix = 1920 ypix = xpix * 9 / 16 set term gif animate size xpix,ypix set output GIF set xtics set ytics set border set yrange [-4:10] set key left font ",20" set grid xtics set grid ytics lc rgb 'green' set title "δ approximation functions" font ",20" set samples xpix do for [n=1:20:1] { # set xrange [(nmax*-1.0)/1:(nmax*1.0)/1] set xrange [- xbereich(1):xbereich(1)] set yrange [- ybereich(1):ybereich(1)*4] plot Epsilon=nmax/(1**2.0) ak=pi/2.0*Epsilon**2.0 sinc(x,Epsilon) \ title sprintf("Sinc by sin(x/ε)/(π·x) ε=%.6f",Epsilon) } do for [n=1:40:1] { # set xrange [(nmax*-1.0)/1:(nmax*1.0)/1] set xrange [- xbereich(1):xbereich(1)] set yrange [- ybereich(1):ybereich(1)*4] plot Epsilon=nmax/(1**2.0) ak=pi/2.0*Epsilon**2.0 sinc(x,Epsilon) \ title sprintf("Sinc by sin(x/ε)/(π·x) ε=%.6f",Epsilon), \ delta(x,ak) lc rgb 'red' title sprintf("δ by e^{(-x²/a)/(π·x)} a=%.6f",ak) } do for [n=1:nmax:1] { # set xrange [(nmax*-1.0)/n:(nmax*1.0)/n] set xrange [- xbereich(n):xbereich(n)] set yrange [- ybereich(n):ybereich(n)*4] plot Epsilon=nmax/(n**2.0) ak=pi/2.0*Epsilon**2.0 sinc(x,Epsilon) \ title sprintf("Sinc by sin(x/ε)/(π·x) ε=%.6f",Epsilon), \ delta(x,ak) lc rgb 'red' title sprintf("δ by e^{(-x²/a)/(π·x)} a=%.6f",ak) } do for [n=1:70:1] { # set xrange [(nmax*-1.0)/nmax:(nmax*1.0)/nmax] set xrange [- xbereich(nmax):xbereich(nmax)] set yrange [- ybereich(nmax):ybereich(nmax)*4] plot Epsilon=nmax/(nmax**2.0) ak=pi/2.0*Epsilon**2.0 sinc(x,Epsilon) \ title sprintf("Sinc by sin(x/ε)/(π·x) ε=%.6f",Epsilon), \ delta(x,ak) lc rgb 'red' title sprintf("δ by e^{(-x²/a)/(π·x)} a=%.6f",ak) } set output system sprintf("ffmpeg -y -i %s -pix_fmt yuv420p -c:v h264 %s", GIF, MKV)