Sections16-03.mws

Unit 3: Ordinary Differential Equations - Part 2

Chapter 16: The Eigenvalue Problem

Sections16.3: Legendre's equation

Copyright

Copyright * 2001 by Addison Wesley Longman, Inc.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America.

Initializations

> restart;

> with(student):
with(orthopoly):

> interface(showassumed=0);

> read(`C:/Program Files/Maple 6.01/pvac.txt`):

A Singular Sturm-Liouville Eigenvalue Problem

Legendre's equation

(1-x^2)*`y''`(x)-2*x*`y'`(x)+lambda*y(x) = 0

that is,

> q := (1-x^2)*diff(y(x),x,x)-2*x*diff(y(x),x)+lambda*y(x)=0;

q := (1-x^2)*diff(y(x),`$`(x,2))-2*x*diff(y(x),x)+l...

>

on the interval -1 <= x `` <= 1 typically arises in physical problems being solved in spherical coordinates. With

p(x) = 1-x^2

it's clear the equation is in the self-adjoint form

( p*`y'` ) `'` + (q+lambda*w)*y = 0

where q = 0 and w = 1 . Although the values for q and the weighting function w are as simple as they could be, solving this equation presents unique challenges. In fact, we now realize that both x = -1 and x = 1 are regular singular points of the differential equation, and the problem is singular because p(x) is not positive on the interval [-1, 1] . Hence, there are no boundary conditions at the endpoints! Instead, the solution y(x) must be bounded throughout the interval, especially at each endpoint.

Our boundary value problem, then is the differential equation

( (1-x^2)*`y'` ) `'`+lambda*y = 0

along with the "boundary" conditions

y(-1) finite

y(1) finite

>

Solving the Differential Equation

The eigenvalue problem based on the equation `y''` = lambda*y presented some new challenges, but since the solutions were the familiar trig and exponential functions, we ultimately determined both the eigenvalues and eigenfunctions. The Bessel equation presented some additional challenges since the functions which satisfy the equation, the Bessel functions, are not part of the suite of elementary functions studied in calculus. Legendre's equation poses further challenges because, unlike the Bessel equation, there are not "Legendre functions" with which we can ultimately construct the solution. Each of these three classic BVPs differ in key ways, making it seem to the beginning student that there is no coherence in the subject at all.

We avoided grinding out the power series solution of Bessel's equation because we ultimately relied on Maple to generate the functions for us. We cannot do that with the solutions of Legendre's equation since Maple's dsolve command does not yield a useful solution to this equation. In fact, the two linearly independent solutions Maple provides, namely

> q1 := dsolve(q,y(x),output=basis):
Y1 := q1[1];
Y2 := q1[2];

Y1 := LegendreQ(1/2*sqrt(1+4*lambda)-1/2,x)

Y2 := LegendreP(1/2*sqrt(1+4*lambda)-1/2,x)

>

are unweildy, and contain the Legendre and associated Legendre functions which Maple does not readily manipulate. For example, Maple generates an imposing series expansion for the first (simpler) solution

> series(Y1,x);

series(LegendreQ(1/2*sqrt(1+4*lambda)-1/2,0)+(-1/2*...
series(LegendreQ(1/2*sqrt(1+4*lambda)-1/2,0)+(-1/2*...
series(LegendreQ(1/2*sqrt(1+4*lambda)-1/2,0)+(-1/2*...
series(LegendreQ(1/2*sqrt(1+4*lambda)-1/2,0)+(-1/2*...

>

Therefore, we now revert to a series solution at a fundamental level.

>

Power Series Solution

About x = 0 , seek a Taylor series solution of the form y(x) = Sum(a[k]*x^k,k = 0 .. infinity) . A seventh-order finite approximating sum satisfying the initial conditions

y(0) = A

and

`y'`(0) = B

is

(-lambda*(lambda-6)*(lambda-20)*x^6/720+lambda*(lam...

``+(-(lambda-12)*(lambda-2)*(lambda-30)*x^7/5040+(l...

The solution appears to split into a series of even powers of x (multiplying A = y(0) ) and a series of od powers of x (multiplying B = `y'`(0) ). Also, if lambda is an integer such as 2, 6, 12 , or 30, coefficients will be zero, and the possibility exists that instead of an infinite series, the solution is just a polynomial. However, verification of these suspicions requires knowing more about the general form of the general coefficient a[k] .

These calculations can be implemented in Maple if we first set to 8 the system variable Order , whose default value is 6,

> Order := 8;

Order := 8

>

then impose the initial conditions y(0) = A and y'(0) = B, yielding

> q2 := dsolve({q,y(0)=A,D(y)(0)=B},y(x),series);

q2 := y(x) = series(A+B*x+(-1/2*lambda*A)*x^2+(1/3*...
q2 := y(x) = series(A+B*x+(-1/2*lambda*A)*x^2+(1/3*...

>

In order to manipulate the resulting series expansion, the term O(x^8) needs to be removed. Thus, we obtain

> q3 := convert(rhs(q2),polynom);

q3 := A+B*x-1/2*lambda*A*x^2+(1/3*B-1/6*lambda*B)*x...
q3 := A+B*x-1/2*lambda*A*x^2+(1/3*B-1/6*lambda*B)*x...

>

To find a pattern in this solution, group terms with respect to y(0) and y'(0), obtaining

> q4 := collect(q3,[A,B,x],factor);

q4 := (-1/720*lambda*(-6+lambda)*(lambda-20)*x^6+1/...
q4 := (-1/720*lambda*(-6+lambda)*(lambda-20)*x^6+1/...

>

Recursion Relation

To obtain a general recursion formula for the coefficients, seek a solution of the form

y = y(0) Sum(a[2*n]*x^(2*n),n = 0 .. infinity) ``+`y'`(0) Sum(a[2*n+1]*x^(2*n+1),n = 0 .. infinity)

As seen in Sections14.1, the sum Sum(a[n]*x^n,n = k .. k+2) suffices, and substitution into the differential equation gives

(1-x^2)*sum(a[n]*x^n,n = k .. k+2)^`''` ``-2*x*sum(a[n]*x^n,n = k .. k+2)^`'`+lambda sum(a[n]*x^n,n = k .. k+2) = 0

Differentiating termwise leads to

a[k]*(k^2-k)*x^(k-2)+a[k+1]*(k+k^2)*x^(k-1)+(a[k+2]...

``+a[k+1]*(lambda-3*k-k^2-2)*x^(k+1)+a[k+2]*(lambda...

where the coefficients of each power of x must separately vanish. Setting to zero the coefficient of x^k yields

a[k+2]*(k^2+3*k+2)-a[k]*(k^2+k-lambda) = 0

and solving for a[k+2] gives the desired recursion relationship

a[k+2] = (k*(k+1)-lambda)/(k+2)/(k+1) a[k] = g(k)*a[k]

To implement these calculations in Maple, define the sum

> Y := Sum(a[n] * x^n, n=k .. k+2);

Y := Sum(a[n]*x^n,n = k .. k+2)

>

and substitute it into the differential equation, obtaining

> q6 := subs(y(x) = Y, q);

q6 := (1-x^2)*diff(Sum(a[n]*x^n,n = k .. k+2),`$`(x...

>

Differentiating termwise leads to

> q7 := simplify(value(q6));

q7 := a[k]*x^(k-2)*k^2-a[k]*x^(k-2)*k+a[1+k]*x^(-1+...
q7 := a[k]*x^(k-2)*k^2-a[k]*x^(k-2)*k+a[1+k]*x^(-1+...
q7 := a[k]*x^(k-2)*k^2-a[k]*x^(k-2)*k+a[1+k]*x^(-1+...

>

where the coefficient of each power of x must separately vanish. Setting to zero the coefficient of x^k yields

> q8 := map(coeff,q7,x^k);

q8 := a[k+2]*k^2+3*a[k+2]*k+2*a[k+2]-a[k]*k^2-a[k]*...

>

and solving for a[k+2] gives the desired recursion relationship

> factor(isolate(q8,a[k+2]));

a[k+2] = a[k]*(k^2+k-lambda)/((k+2)*(1+k))

>

where we write the factor of a[k] on the right as the function

> g := k -> (k*(k+1)-lambda)/(k+2)/(k+1);

g := proc (k) options operator, arrow; (k*(k+1)-lam...

>

Applying the Boundary Conditions

The recurrence relation

a[k+2] = a[k]*(k*(k+1)-lambda)/(k+2)/(k+1)

suggests that a[0] determines all other even-indexed coefficients, and a[1] determines all other odd-indexed coefficients. Moreover, if lambda is the integer k*(k+1) , then

a[k+2] = 0 = a[k+4] = a[k+6] = `...`

so the series starting with a[0] (if k is even) or with a[1] (if k is odd) becomes a simple polynomial, called a Legendre polynomial .

To determine the large- k behavior of the coefficients in either infinite series, express

a[2] in terms of a[0]

then

a[4] in terms of a[2] and hence a[0]

etc.

In Maple, we can do this by writing the iteration as the function

> f := k-> if k<2 then a[0] else f(k-2)*'g'(k-2) fi;

f := proc (k) options operator, arrow; if k < 2 the...

>

and, since f(2*k) = a[2*k] for k = 1, 2, `...` , the first few even-indexed coefficients fit the pattern

> for k from 0 to 5 do
a[2*k] = f(2*k);
od;

a[0] = a[0]

a[2] = a[0]*g(0)

a[4] = a[0]*g(0)*g(2)

a[6] = a[0]*g(0)*g(2)*g(4)

a[8] = a[0]*g(0)*g(2)*g(4)*g(6)

a[10] = a[0]*g(0)*g(2)*g(4)*g(6)*g(8)

>

Thus, with a[0] = 1 , a[2*m] is the product

> q9 := Product(g(2*n),n=0..m-1);

q9 := Product((2*n*(2*n+1)-lambda)/((2*n+2)*(2*n+1)...

>

A similar result holds when a[k+2] is based on a[1] .

Evaluating the expression for a[2*m] gives the closed-form expression

> assume(m,posint);
q10 := simplify(value(q9));

q10 := 4^m*GAMMA(m-1/4*sqrt(1+4*lambda)+1/4)*GAMMA(...

>

from which we can obtain

limit(a[2*m]/[1/m],m = infinity) = c

where c*`>`*0 is the constant

c = sqrt(Pi)/(GAMMA(1/4+1*sqrt(1+4*lambda)/4)*GAMMA...

To obtain this in Maple, replace sqrt(1+4*lambda) with a single symbol, say X, to obtain

> q11 := subs(sqrt(1+4*lambda)=X,q10);

q11 := 4^m*GAMMA(m-1/4*X+1/4)*GAMMA(m+1/4+1/4*X)/(G...

>

Then, compute the limit

> q12 := limit(q11/(1/m),m=infinity);

q12 := sqrt(Pi)/(GAMMA(1/4-1/4*X)*GAMMA(1/4+1/4*X))...

>

and reverse the substitution, leading to

> c = subs(X=sqrt(1+4*lambda),q12);

c = sqrt(Pi)/(GAMMA(1/4-1/4*sqrt(1+4*lambda))*GAMMA...

>

Thus, the coefficients grow at the same rate as the coefficients in the harmonic series Sum(1/k,k = 1 .. infinity) , a series known to diverge. (See Sections7.2.) Hence, if this limit is true, solutions of Legendre's equation which are infinite series will diverge at x = -1 and 1. The only solutions which could then be bounded at the endpoints would be the polynomial solutions, the ones arising by choice of lambda as one of the integers k*(k+1) .