MikaelSlevinsky / SincFun.jl

Sinc numerical methods in Julia
Other
3 stars 0 forks source link

roots #3

Open MikaelSlevinsky opened 9 years ago

MikaelSlevinsky commented 9 years ago

Calculating roots leads to the ability to find max, min, and inf- and 1-norms. This can be done in O(n^2) complexity via the algorithm in http://epubs.siam.org/doi/abs/10.1137/130904508 since the roots of a sincfun in barycentric form are the same as the barycentric polynomial. (The other part is just a double exponential envelope.) Additionally, something similar could be used to calculate the barycentric form's poles.

MikaelSlevinsky commented 9 years ago

Also with roots, it would be possible to override division (/).

MikaelSlevinsky commented 9 years ago

A basic routine is now implemented via @1fa0a20eb3a4dde5bdb1f814. This now allows for:

using SincFun
f(x) = exp(x)*cospi(5x)/(1+x^2); sf = sincfun(f)
roots(sf)
norm(sf[roots(sf)])
MikaelSlevinsky commented 9 years ago

From what I understand, I will divide the Lawrence algorithm into two steps:

MikaelSlevinsky commented 9 years ago

It turns out that, so far as I understand it, Lawrence's Algorithm 1. leads to a significant loss in the orthogonality of the vectors q, affecting the roots. Will investigate the second approach based on Givens rotations.