gsl-shell.git - gsl-shell

index : gsl-shell.git
gsl-shell
summary refs log tree commit diff
path: root/examples/hermite.lua
diff options
context:
space:
mode:
Diffstat (limited to 'examples/hermite.lua')
-rw-r--r--examples/hermite.lua 59
1 files changed, 28 insertions, 31 deletions
diff --git a/examples/hermite.lua b/examples/hermite.lua
index 99a6754a..b5cb25f1 100644
--- a/examples/hermite.lua
+++ b/examples/hermite.lua
@@ -1,31 +1,28 @@
-
-function hermiteLp(n,x)
- return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * (-4)^(n/2) * fact(n/2) * laguerre(n/2, -1/2, x^2)
-end
-
-p = plot()
-p:addline(fxline(|x| hermiteLp(4, x), -12, 12), 'darkgreen')
-p:addline(fxline(|x| hermiteLp(2, x), -12, 12), 'blue')
-p:addline(fxline(|x| hermiteLp(50, x), -12, 12, 1024), 'magenta')
-p:show()
-
-function hermiteU(n,x)
- return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * 2^n * hypergU((1-n)/2, 3/2, x^2)
-end
-
-function hermiteFp(n,x)
- return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * (-1)^(n/2) * fact(n)/fact(n/2) * hyperg1F1(-n/2, 1/2, x^2)
-end
-
-
-p2 = plot()
-p2:addline(fxline(|x| hermiteFp(4, x), -12, 12), 'darkgreen')
-p2:addline(fxline(|x| hermiteFp(2, x), -12, 12), 'blue')
-p2:addline(fxline(|x| hermiteFp(50, x), -12, 12, 1024), 'magenta')
-p:show()
-
-
--- p3 = plot()
--- p3:add_line(fxline(|x| hermiteU(4, x), -12, 12), 'darkgreen')
--- p3:add_line(fxline(|x| hermiteU(2, x), -12, 12), 'blue')
--- p3:add_line(fxline(|x| hermiteU(50, x), -12, 12, 1024), 'magenta')
+
+local function hermiteLp(n,x)
+ return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * (-4)^(n/2) * fact(n/2) * laguerre(n/2, -1/2, x^2)
+end
+
+local function hermiteU(n,x)
+ return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * 2^n * hypergU((1-n)/2, 3/2, x^2)
+end
+
+local function hermiteFp(n,x)
+ return 1/sqrt(fact(n) *2^n*sqrt(pi)) * exp(-x*x/2) * (-1)^(n/2) * fact(n)/fact(n/2) * hyperg1F1(-n/2, 1/2, x^2)
+end
+
+local function demo_gen(hermiteFF)
+ local p = plot('Hermite functions')
+ p:addline(fxline(|x| hermiteFF(2, x), -10, 10), 'red')
+ p:addline(fxline(|x| hermiteFF(4, x), -10, 10), 'blue', {{'dash', 7, 3}})
+ p:addline(fxline(|x| hermiteFF(16, x), -10, 10, 512), 'green')
+ p:show()
+end
+
+demo1 = || demo_gen(hermiteLp)
+demo2 = || demo_gen(hermiteFp)
+demo3 = || demo_gen(hermiteU)
+
+print 'demo1() - hermite function using Laguerre polynomials'
+print 'demo2() - hermite function using Hypergeometric 1F1 function'
+print 'demo3() - hermite function using Hypergeometric U function (broken)'
generated by cgit v1.2.3 (git 2.25.1) at 2025年10月02日 18:50:21 +0000

AltStyle によって変換されたページ (->オリジナル) /