using Plots, ComplexPhasePortrait, ApproxFun, SingularIntegralEquations
gr();
┌ Info: Recompiling stale cache file /Users/sheehanolver/.julia/compiled/v1.1/Plots/ld3vC.ji for Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] └ @ Base loading.jl:1184 ┌ Info: Recompiling stale cache file /Users/sheehanolver/.julia/compiled/v1.1/ComplexPhasePortrait/tkJfA.ji for ComplexPhasePortrait [38ac1a67-8e16-5889-9a62-b2c9995eb50f] └ @ Base loading.jl:1184 ┌ Info: Recompiling stale cache file /Users/sheehanolver/.julia/compiled/v1.1/ApproxFun/jGqLz.ji for ApproxFun [28f2ccd6-bb30-5033-b560-165f7b14dc2f] └ @ Base loading.jl:1184 ┌ Info: Recompiling stale cache file /Users/sheehanolver/.julia/compiled/v1.1/SingularIntegralEquations/OCv8s.ji for SingularIntegralEquations [e094c991-5a90-5477-8896-c1e4c9552a1a] └ @ Base loading.jl:1184 ┌ Warning: Package SingularIntegralEquations does not have Random in its dependencies: │ - If you have SingularIntegralEquations checked out for development and have │ added Random as a dependency but haven't updated your primary │ environment's manifest file, try `Pkg.resolve()`. │ - Otherwise you may need to report an issue with SingularIntegralEquations └ Loading Random into SingularIntegralEquations from project dependency, future warnings for SingularIntegralEquations are suppressed.
Dr Sheehan Olver
We actually start by showing the second properties of Problem 1.2, for all α: ddx[xαe−xL(α)n(x)]=1n!dn+1dxn+1[xα+ne−x]=(n+1)xα−1e−xx1−αex(n+1)!dn+1dxn+1[xα+ne−x]=(n+1)xα−1e−xL(α−1)n+1(x).
We now show orthogonality with lower degree polynomials using integration by parts: ∫∞0L(α)n(x)pm(x)xαe−xdx=∫∞01n!dndxn[xα+ne−x]pm(x)dx=(−1)n∫∞01n![xα+ne−x]p(n)m(x)dx=0
We showed the second property as part of 1.1. For the first part, it is clear that we have the correct constant. Now we show orthogonality with all degree m<n−1 polynomials (using the fact that xα+1e−x is zero at x=0): ∫∞0dL(α)n(x)dxpm(x)xα+1e−xdx=−∫∞0L(α)n(x)(xp′m(x)+(α+1)pm−xpm)xαe−xdx=0
For the third part, use the product rule on the last derivative: (n+1)L(α)n+1(x)=x−αexn!dndxnddx[xα+n+1e−x]=x−αexn!dndxn[(α+n+1)xα+ne−x−xα+n+1e−x]=(α+n+1)L(α)n(x)−xL(α+1)n(x)
Note that relationship 3 above did not depend on α>−1. We therefore have from 1.2, comibing property (3) and (4), xL(α)n(x)=−(n+1)L(α−1)n+1(x)+(n+α)L(α−1)n(x)=−(n+1)L(α)n+1(x)+(n+1)L(α)n(x)+(n+α)L(α)n(x)−(n+α)L(α)n−1(x)=−(n+α)L(α)n−1(x)+(2n+α+1)L(α)n(x)−(n+1)L(α)n+1(x)
The Jacobi operator therefore has the form x(L(α)0(x)L(α)1(x)⋮)=(α+1−1−1−αα+3−2−2−αα+5−3−3−αα+7−4−4−αα+9⋱⋱⋱)(L(α)0(x)L(α)1(x)⋮)
Demonstration The following command creates the Jacobi operators for a Laguerre polynomial with α = 1
:
ApproxFun.Recurrence(Laguerre(1))'
TransposeOperator : Laguerre{Int64,Ray{false,Float64}}(1, 【0.0,∞❫) → Laguerre{Int64,Ray{false,Float64}}(1, 【0.0,∞❫) 2 -1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -2 4 -2 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -3 6 -3 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -4 8 -4 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -5 10 -5 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -6 12 -6 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -7 14 -7 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -8 16 -8 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -9 18 -9 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -10 20 ⋱ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋱ ⋱
Note that ddxe−x/2u(x)=e−x/2(−u(x)2+u′(x))
We have the derivative operator from Lk(x) to L(1)k(x) as: D=(0−1−1⋱)
D = Derivative() : Laguerre(0) → Laguerre(1)
S = I : Laguerre(0) → Laguerre(1)
Jt = ApproxFun.Recurrence(Laguerre(0))
D - S/2 -S*Jt
Recurrence : Laguerre{Int64,Ray{false,Float64}}(0, 【0.0,∞❫) → Laguerre{Int64,Ray{false,Float64}}(0, 【0.0,∞❫) 1 -1 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -1 3 -2 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -2 5 -3 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -3 7 -4 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -4 9 -5 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -5 11 -6 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -6 13 -7 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -7 15 -8 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -8 17 -9 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ -9 19 ⋱ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋱ ⋱
We have exxαddx[xα+1e−xdL(α)ndx]=−exxαddx[xα+1e−xL(α+1)n−1dx]=−nL(α)n(x)
Define C(α)k(z)=C[L(α)k⋄αe−⋄](z) and recall that C1(z)=12πi∫∞0e−xdx+(z−a0)C0(z)b0=−12πi−(z−1)C0(z)=(z−1)e−zEiz−12πi
Here we double check the formula, noting that L1(x)=exddxxe−x=1−x:
const ei₋₁ = let ζ = Fun(-100 .. -1)
sum(exp(ζ)/ζ)
end
function ei(z)
ζ = Fun(Segment(-1 , z))
ei₋₁ + sum(exp(ζ)/ζ)
end
ei (generic function with 1 method)
x = Fun(0..10)
w = exp(-x)
z = 1+im
cauchy((1-x)*w, z)
0.01868464429845791 + 0.04836133565334999im
((z-1)*exp(-z)*ei(z)-1)/(2π*im)
0.018683923002628996 + 0.048368487990893105im
We now use these to determine the results with α=1. Note that: C(1)0(z)=C[⋄e−⋄](z)=C0(z)−C1(z)=e−zEiz−(z−1)e−zEiz+12πi
cauchy(x*w, z)
0.09210173751684986 - 0.02967669135489207im
(-exp(-z)*ei(z)-(z-1)*exp(-z)*ei(z)+1)/(2π*im)
0.09210253209837324 - 0.02968456498826411im
Therefore, we have C(1)1(z)=12πi∫∞0xe−xdx+(z−a(1)0)C(1)0(z)b(1)0=12πi+(z−2)C(1)0(z)−1=1+(z−2)(e−zEiz−(z−1)e−zEiz+1)−2πi
Let's check the result using L(1)1(x)=x−1exddxx2e−x=2−x
cauchy((2-x)*x*w, z)
0.062425046161957945 + 0.03729703236453844im
(1+(z-2)*(-exp(-z)*ei(z)-(z-1)*exp(-z)*ei(z)+1))/(-2π*im)
0.06241796711010913 + 0.037367846005258im
We have ∫∞xL2(x)e−xdx=12xe−xL(1)1(x)e−x
x = Fun(0 .. 100)
w = exp(-x)
z = 2+im
2 + 1im
-sum(1/2*(2 - 4x + x^2)*w*log(abs(z-x)))/π
-0.06972323453771472
imag(sum(1/2*(2 - 4x + x^2)*w*log(z-x))/(π*im))
-0.06972323453771528
-imag(cauchy((2-x)*x*w,z))
-0.06972323454062201
real((1+(z-2)*(-exp(-z)*ei(z)-(z-1)*exp(-z)*ei(z)+1))/(-2π))
-0.06972323454061685
Consider integration contours γ+x and γ−x that avoid 0 above and below:
x = -2.0
r = 0.1
γ₊ₓ = Segment(-2.0 , -r) ∪ Arc(0.,r, (π,0)) ∪ Segment(r , 100)
γ₋ₓ = Segment(-2.0 , -r) ∪ Arc(0.,r, (-π,0)) ∪ Segment(r , 100)
scatter([x],[0.0];label="x = $x")
plot!(γ₊ₓ ; xlims=(-5,5), ylims=(-1,1), label="gamma_+")
plot!(γ₋ₓ; xlims=(-5,5), ylims=(-1,1), label="gamma_-")
So that Γ±(α,x)=∫γ±xζα−1e−ζdζ
Note that, for 0<α<1, ψ(z)=z−αezΓ(α,z)
and we have assuming z is bounded away from the negative real axis: |∫∞zζα−2ez−ζdζ|≤∫∞z|ζ|α−2dζ=∫∞0|x+z|α−2dx<∞
We use these properties to verify that C[⋄αe−⋄](z)=1Γ(−α)(−z)αe−zΓ(−α,−z)e−iπα−eiπα
x = Fun(0 .. 20.0)
α = -0.1
z = 2.0+im
cauchy(x^α*exp(-x), z)
0.07199876331437786 + 0.05850612397322342im
Γ = (α,z) -> let ζ = z + Fun(0 .. 500.0)
linesum(ζ^(α-1)*exp(-ζ))
end
#3 (generic function with 1 method)
-(-z)^α*exp(-z)Γ(-α,-z)/(gamma(-α)*(exp(im*π*α)-exp(-im*π*α)))
0.07199876331505133 + 0.0585061239604885im