chore: import upstream snapshot with attribution
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,5 @@
|
||||
# Airy function Ai(x), Ai'(x) and int_0^x Ai(t) dt on the real line
|
||||
f = airyai
|
||||
f_diff = lambda z: airyai(z, derivative=1)
|
||||
f_int = lambda z: airyai(z, derivative=-1)
|
||||
plot([f, f_diff, f_int], [-10,5])
|
||||
|
After Width: | Height: | Size: 60 KiB |
@@ -0,0 +1,2 @@
|
||||
# Airy function Ai(z) in the complex plane
|
||||
cplot(airyai, [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,6 @@
|
||||
# Kelvin functions ber_n(x) and bei_n(x) on the real line for n=0,2
|
||||
f0 = lambda x: ber(0,x)
|
||||
f1 = lambda x: bei(0,x)
|
||||
f2 = lambda x: ber(2,x)
|
||||
f3 = lambda x: bei(2,x)
|
||||
plot([f0,f1,f2,f3],[0,10],[-10,10])
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,6 @@
|
||||
# Modified Bessel function I_n(x) on the real line for n=0,1,2,3
|
||||
i0 = lambda x: besseli(0,x)
|
||||
i1 = lambda x: besseli(1,x)
|
||||
i2 = lambda x: besseli(2,x)
|
||||
i3 = lambda x: besseli(3,x)
|
||||
plot([i0,i1,i2,i3],[0,5],[0,5])
|
||||
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,2 @@
|
||||
# Modified Bessel function I_n(z) in the complex plane
|
||||
cplot(lambda z: besseli(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,6 @@
|
||||
# Bessel function J_n(x) on the real line for n=0,1,2,3
|
||||
j0 = lambda x: besselj(0,x)
|
||||
j1 = lambda x: besselj(1,x)
|
||||
j2 = lambda x: besselj(2,x)
|
||||
j3 = lambda x: besselj(3,x)
|
||||
plot([j0,j1,j2,j3],[0,14])
|
||||
|
After Width: | Height: | Size: 36 KiB |
@@ -0,0 +1,2 @@
|
||||
# Bessel function J_n(z) in the complex plane
|
||||
cplot(lambda z: besselj(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,6 @@
|
||||
# Modified Bessel function of 2nd kind K_n(x) on the real line for n=0,1,2,3
|
||||
k0 = lambda x: besselk(0,x)
|
||||
k1 = lambda x: besselk(1,x)
|
||||
k2 = lambda x: besselk(2,x)
|
||||
k3 = lambda x: besselk(3,x)
|
||||
plot([k0,k1,k2,k3],[0,8],[0,5])
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,2 @@
|
||||
# Modified Bessel function of 2nd kind K_n(z) in the complex plane
|
||||
cplot(lambda z: besselk(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,6 @@
|
||||
# Bessel function of 2nd kind Y_n(x) on the real line for n=0,1,2,3
|
||||
y0 = lambda x: bessely(0,x)
|
||||
y1 = lambda x: bessely(1,x)
|
||||
y2 = lambda x: bessely(2,x)
|
||||
y3 = lambda x: bessely(3,x)
|
||||
plot([y0,y1,y2,y3],[0,10],[-4,1])
|
||||
|
After Width: | Height: | Size: 40 KiB |
@@ -0,0 +1,2 @@
|
||||
# Bessel function of 2nd kind Y_n(z) in the complex plane
|
||||
cplot(lambda z: bessely(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,5 @@
|
||||
# Airy function Bi(x), Bi'(x) and int_0^x Bi(t) dt on the real line
|
||||
f = airybi
|
||||
f_diff = lambda z: airybi(z, derivative=1)
|
||||
f_int = lambda z: airybi(z, derivative=-1)
|
||||
plot([f, f_diff, f_int], [-10,2], [-1,2])
|
||||
|
After Width: | Height: | Size: 66 KiB |
@@ -0,0 +1,2 @@
|
||||
# Airy function Bi(z) in the complex plane
|
||||
cplot(airybi, [-8,8], [-8,8], points=50000)
|
||||
@@ -0,0 +1,22 @@
|
||||
import os.path
|
||||
import glob
|
||||
|
||||
for f in glob.glob("*.py"):
|
||||
if "buildplots" in f or os.path.exists(f[:-3]+".png"):
|
||||
continue
|
||||
print("Processing", f)
|
||||
code = open(f).readlines()
|
||||
code = ["from mpmath import *; mp.dps=5"] + code
|
||||
for i in range(len(code)):
|
||||
l = code[i].rstrip()
|
||||
if "cplot(" in l:
|
||||
l = l[:-1] + (", dpi=45, file='%s.png', verbose=True)" % f[:-3])
|
||||
code[i] = l
|
||||
elif "splot(" in l:
|
||||
l = l[:-1] + (", dpi=45, file='%s.png')" % f[:-3])
|
||||
code[i] = l
|
||||
elif "plot(" in l:
|
||||
l = l[:-1] + (", dpi=45, file='%s.png')" % f[:-3])
|
||||
code[i] = l
|
||||
code = "\n".join(code)
|
||||
exec(code)
|
||||
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,7 @@
|
||||
# Chebyshev polynomials T_n(x) on [-1,1] for n=0,1,2,3,4
|
||||
f0 = lambda x: chebyt(0,x)
|
||||
f1 = lambda x: chebyt(1,x)
|
||||
f2 = lambda x: chebyt(2,x)
|
||||
f3 = lambda x: chebyt(3,x)
|
||||
f4 = lambda x: chebyt(4,x)
|
||||
plot([f0,f1,f2,f3,f4],[-1,1])
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,7 @@
|
||||
# Chebyshev polynomials U_n(x) on [-1,1] for n=0,1,2,3,4
|
||||
f0 = lambda x: chebyu(0,x)
|
||||
f1 = lambda x: chebyu(1,x)
|
||||
f2 = lambda x: chebyu(2,x)
|
||||
f3 = lambda x: chebyu(3,x)
|
||||
f4 = lambda x: chebyu(4,x)
|
||||
plot([f0,f1,f2,f3,f4],[-1,1])
|
||||
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,7 @@
|
||||
# Regular Coulomb wave functions -- equivalent to figure 14.3 in A&S
|
||||
F1 = lambda x: coulombf(0,0,x)
|
||||
F2 = lambda x: coulombf(0,1,x)
|
||||
F3 = lambda x: coulombf(0,5,x)
|
||||
F4 = lambda x: coulombf(0,10,x)
|
||||
F5 = lambda x: coulombf(0,x/2,x)
|
||||
plot([F1,F2,F3,F4,F5], [0,25], [-1.2,1.6])
|
||||
|
After Width: | Height: | Size: 39 KiB |
@@ -0,0 +1,2 @@
|
||||
# Regular Coulomb wave function in the complex plane
|
||||
cplot(lambda z: coulombf(1,1,z), points=50000)
|
||||
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,7 @@
|
||||
# Irregular Coulomb wave functions -- equivalent to figure 14.5 in A&S
|
||||
F1 = lambda x: coulombg(0,0,x)
|
||||
F2 = lambda x: coulombg(0,1,x)
|
||||
F3 = lambda x: coulombg(0,5,x)
|
||||
F4 = lambda x: coulombg(0,10,x)
|
||||
F5 = lambda x: coulombg(0,x/2,x)
|
||||
plot([F1,F2,F3,F4,F5], [0,30], [-2,2])
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,2 @@
|
||||
# Irregular Coulomb wave function in the complex plane
|
||||
cplot(lambda z: coulombg(1,1,z), points=50000)
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,7 @@
|
||||
# Elliptic integral E(z,m) for some different m
|
||||
f1 = lambda z: ellipe(z,-2)
|
||||
f2 = lambda z: ellipe(z,-1)
|
||||
f3 = lambda z: ellipe(z,0)
|
||||
f4 = lambda z: ellipe(z,1)
|
||||
f5 = lambda z: ellipe(z,2)
|
||||
plot([f1,f2,f3,f4,f5], [0,pi], [0,4])
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,7 @@
|
||||
# Elliptic integral F(z,m) for some different m
|
||||
f1 = lambda z: ellipf(z,-1)
|
||||
f2 = lambda z: ellipf(z,-0.5)
|
||||
f3 = lambda z: ellipf(z,0)
|
||||
f4 = lambda z: ellipf(z,0.5)
|
||||
f5 = lambda z: ellipf(z,1)
|
||||
plot([f1,f2,f3,f4,f5], [0,pi], [0,4])
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,2 @@
|
||||
# Complete elliptic integrals K(m) and E(m)
|
||||
plot([ellipk, ellipe], [-2,1], [0,3], points=600)
|
||||
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,7 @@
|
||||
# Elliptic integral Pi(n,z,m) for some different n, m
|
||||
f1 = lambda z: ellippi(0.9,z,0.9)
|
||||
f2 = lambda z: ellippi(0.5,z,0.5)
|
||||
f3 = lambda z: ellippi(-2,z,-0.9)
|
||||
f4 = lambda z: ellippi(-0.5,z,0.5)
|
||||
f5 = lambda z: ellippi(-1,z,0.5)
|
||||
plot([f1,f2,f3,f4,f5], [0,pi], [0,4])
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -0,0 +1,2 @@
|
||||
# Scorer function Gi(x) and Gi'(x) on the real line
|
||||
plot([scorergi, diffun(scorergi)], [-10,10])
|
||||
|
After Width: | Height: | Size: 56 KiB |
@@ -0,0 +1,2 @@
|
||||
# Scorer function Gi(z) in the complex plane
|
||||
cplot(scorergi, [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,6 @@
|
||||
# Hankel function H1_n(x) on the real line for n=0,1,2,3
|
||||
h0 = lambda x: hankel1(0,x)
|
||||
h1 = lambda x: hankel1(1,x)
|
||||
h2 = lambda x: hankel1(2,x)
|
||||
h3 = lambda x: hankel1(3,x)
|
||||
plot([h0,h1,h2,h3],[0,6],[-2,1])
|
||||
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,2 @@
|
||||
# Hankel function H1_n(z) in the complex plane
|
||||
cplot(lambda z: hankel1(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,6 @@
|
||||
# Hankel function H2_n(x) on the real line for n=0,1,2,3
|
||||
h0 = lambda x: hankel2(0,x)
|
||||
h1 = lambda x: hankel2(1,x)
|
||||
h2 = lambda x: hankel2(2,x)
|
||||
h3 = lambda x: hankel2(3,x)
|
||||
plot([h0,h1,h2,h3],[0,6],[-1,2])
|
||||
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,2 @@
|
||||
# Hankel function H2_n(z) in the complex plane
|
||||
cplot(lambda z: hankel2(1,z), [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,7 @@
|
||||
# Hermite polynomials H_n(x) on the real line for n=0,1,2,3,4
|
||||
f0 = lambda x: hermite(0,x)
|
||||
f1 = lambda x: hermite(1,x)
|
||||
f2 = lambda x: hermite(2,x)
|
||||
f3 = lambda x: hermite(3,x)
|
||||
f4 = lambda x: hermite(4,x)
|
||||
plot([f0,f1,f2,f3,f4],[-2,2],[-25,25])
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,2 @@
|
||||
# Scorer function Hi(x) and Hi'(x) on the real line
|
||||
plot([scorerhi, diffun(scorerhi)], [-10,2], [0,2])
|
||||
|
After Width: | Height: | Size: 46 KiB |
@@ -0,0 +1,2 @@
|
||||
# Scorer function Hi(z) in the complex plane
|
||||
cplot(scorerhi, [-8,8], [-8,8], points=50000)
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,6 @@
|
||||
# Kelvin functions ker_n(x) and kei_n(x) on the real line for n=0,2
|
||||
f0 = lambda x: ker(0,x)
|
||||
f1 = lambda x: kei(0,x)
|
||||
f2 = lambda x: ker(2,x)
|
||||
f3 = lambda x: kei(2,x)
|
||||
plot([f0,f1,f2,f3],[0,5],[-1,4])
|
||||
|
After Width: | Height: | Size: 76 KiB |
@@ -0,0 +1,2 @@
|
||||
# Klein J-function as function of the number-theoretic nome
|
||||
fp.cplot(lambda q: fp.kleinj(qbar=q), [-1,1], [-1,1], points=50000)
|
||||
|
After Width: | Height: | Size: 60 KiB |
@@ -0,0 +1,2 @@
|
||||
# Klein J-function as function of the half-period ratio
|
||||
fp.cplot(lambda t: fp.kleinj(tau=t), [-1,2], [0,1.5], points=50000)
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,7 @@
|
||||
# Hermite polynomials L_n(x) on the real line for n=0,1,2,3,4
|
||||
f0 = lambda x: laguerre(0,0,x)
|
||||
f1 = lambda x: laguerre(1,0,x)
|
||||
f2 = lambda x: laguerre(2,0,x)
|
||||
f3 = lambda x: laguerre(3,0,x)
|
||||
f4 = lambda x: laguerre(4,0,x)
|
||||
plot([f0,f1,f2,f3,f4],[0,10],[-10,10])
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,2 @@
|
||||
# Branches 0 and -1 of the Lambert W function
|
||||
plot([lambertw, lambda x: lambertw(x,-1)], [-2,2], [-5,2], points=2000)
|
||||
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,2 @@
|
||||
# Principal branch of the Lambert W function W(z)
|
||||
cplot(lambertw, [-1,1], [-1,1], points=50000)
|
||||
|
After Width: | Height: | Size: 27 KiB |
@@ -0,0 +1,7 @@
|
||||
# Legendre polynomials P_n(x) on [-1,1] for n=0,1,2,3,4
|
||||
f0 = lambda x: legendre(0,x)
|
||||
f1 = lambda x: legendre(1,x)
|
||||
f2 = lambda x: legendre(2,x)
|
||||
f3 = lambda x: legendre(3,x)
|
||||
f4 = lambda x: legendre(4,x)
|
||||
plot([f0,f1,f2,f3,f4],[-1,1])
|
||||
|
After Width: | Height: | Size: 26 KiB |
@@ -0,0 +1,6 @@
|
||||
# Lommel function s_(u,v)(x) on the real line for a few different u,v
|
||||
f1 = lambda x: lommels1(-1,2.5,x)
|
||||
f2 = lambda x: lommels1(0,0.5,x)
|
||||
f3 = lambda x: lommels1(0,6,x)
|
||||
f4 = lambda x: lommels1(0.5,3,x)
|
||||
plot([f1,f2,f3,f4], [0,20])
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,6 @@
|
||||
# Lommel function S_(u,v)(x) on the real line for a few different u,v
|
||||
f1 = lambda x: lommels2(-1,2.5,x)
|
||||
f2 = lambda x: lommels2(1.5,2,x)
|
||||
f3 = lambda x: lommels2(2.5,1,x)
|
||||
f4 = lambda x: lommels2(3.5,-0.5,x)
|
||||
plot([f1,f2,f3,f4], [0,8], [-8,8])
|
||||
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1,7 @@
|
||||
# Parabolic cylinder function D_n(x) on the real line for n=0,1,2,3,4
|
||||
d0 = lambda x: pcfd(0,x)
|
||||
d1 = lambda x: pcfd(1,x)
|
||||
d2 = lambda x: pcfd(2,x)
|
||||
d3 = lambda x: pcfd(3,x)
|
||||
d4 = lambda x: pcfd(4,x)
|
||||
plot([d0,d1,d2,d3,d4],[-7,7])
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,15 @@
|
||||
# Real part of spherical harmonic Y_(4,0)(theta,phi)
|
||||
def Y(l,m):
|
||||
def g(theta,phi):
|
||||
R = abs(fp.re(fp.spherharm(l,m,theta,phi)))
|
||||
x = R*fp.cos(phi)*fp.sin(theta)
|
||||
y = R*fp.sin(phi)*fp.sin(theta)
|
||||
z = R*fp.cos(theta)
|
||||
return [x,y,z]
|
||||
return g
|
||||
|
||||
fp.splot(Y(4,0), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
# fp.splot(Y(4,0), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
# fp.splot(Y(4,1), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
# fp.splot(Y(4,2), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
# fp.splot(Y(4,3), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
|
After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,11 @@
|
||||
# Real part of spherical harmonic Y_(4,1)(theta,phi)
|
||||
def Y(l,m):
|
||||
def g(theta,phi):
|
||||
R = abs(fp.re(fp.spherharm(l,m,theta,phi)))
|
||||
x = R*fp.cos(phi)*fp.sin(theta)
|
||||
y = R*fp.sin(phi)*fp.sin(theta)
|
||||
z = R*fp.cos(theta)
|
||||
return [x,y,z]
|
||||
return g
|
||||
|
||||
fp.splot(Y(4,1), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
|
After Width: | Height: | Size: 50 KiB |
@@ -0,0 +1,11 @@
|
||||
# Real part of spherical harmonic Y_(4,2)(theta,phi)
|
||||
def Y(l,m):
|
||||
def g(theta,phi):
|
||||
R = abs(fp.re(fp.spherharm(l,m,theta,phi)))
|
||||
x = R*fp.cos(phi)*fp.sin(theta)
|
||||
y = R*fp.sin(phi)*fp.sin(theta)
|
||||
z = R*fp.cos(theta)
|
||||
return [x,y,z]
|
||||
return g
|
||||
|
||||
fp.splot(Y(4,2), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,11 @@
|
||||
# Real part of spherical harmonic Y_(4,3)(theta,phi)
|
||||
def Y(l,m):
|
||||
def g(theta,phi):
|
||||
R = abs(fp.re(fp.spherharm(l,m,theta,phi)))
|
||||
x = R*fp.cos(phi)*fp.sin(theta)
|
||||
y = R*fp.sin(phi)*fp.sin(theta)
|
||||
z = R*fp.cos(theta)
|
||||
return [x,y,z]
|
||||
return g
|
||||
|
||||
fp.splot(Y(4,3), [0,fp.pi], [0,2*fp.pi], points=300)
|
||||
|
After Width: | Height: | Size: 40 KiB |
@@ -0,0 +1,14 @@
|
||||
from mpmath import fp
|
||||
|
||||
# Real part of spherical harmonic Y_(4,4)(theta,phi)
|
||||
def Y(l,m):
|
||||
def g(theta,phi):
|
||||
R = abs(fp.re(fp.spherharm(l,m,theta,phi)))
|
||||
x = R*fp.cos(phi)*fp.sin(theta)
|
||||
y = R*fp.sin(phi)*fp.sin(theta)
|
||||
z = R*fp.cos(theta)
|
||||
return [x,y,z]
|
||||
return g
|
||||
|
||||
fp.splot(Y(4,4), [0,fp.pi], [0,2*fp.pi], points=300,
|
||||
dpi=45, file="spherharm44.png")
|
||||