chebfun / chebfun

Chebfun: numerical computing with functions.
http://www.chebfun.org/
Other
608 stars 143 forks source link

IVP operators should not have eigenvalues #2060

Open trefethen opened 7 years ago

trefethen commented 7 years ago

@nakatsukasayuji and I have noticed that if you ask 'eigs' for the eigenvalues of a linear operator whose boundary conditions are at a single point, it gives you an answer:

>> L = chebop(-1,1); L.op = @(u) diff(u,2); L.lbc = [0;0]; eigs(L)
ans =
   1.0e+02 *
  1.421937792105272 + 1.262450727598194i
  1.012806580897993 + 2.106857393832932i
  0.400711677133802 + 2.954623821858181i
 -0.413191252433303 + 3.806078373790946i
 -1.427954901948092 + 4.661198465547842i
 -2.642870261769878 + 5.519777777442077i

However, we think the spectrum should actually be empty. (Proof: this is an initial value problem, and IVPs have unique solutions, i.e., only the zero function can satisfy the eigenvalue equation.) Since Chebfun already checks for IVP vs BVP, it should be easy for Chebfun to return en error message and/or an empty result if you call 'eigs' with an IVP operator. If @tobydriscoll agrees with this assessment of the mathematics, perhaps @asgeirbirkis might be able to insert this in the code?

tobydriscoll commented 6 years ago

I agree about the math of the eigenvalues. However, a little checking suggests that eigs is returning pseudomodes for an epsilon something like 1e-8. That's why it's getting fooled, I think.