Is it possible to specify the 'order' of a smoothing spline?

16 views (last 30 days)
Hello,
I need to use smoothing splines. The matlab command 'csaps' can only be used for the case of a cubic smoothing
spline. On the other hand, the command '[...] = spaps(x,y,tol,[],m)' might be helpful to choose the order. But, there are a
range of difficulties with this command. First, we have to specify the tolerance 'tol' (I do not like to specify anything like tolerance or
smoothing parameter and woulds like the algorithm to choose the default). Second, m can only be 1(linear case), 2(cubic case), or 3 (
the quintic case). In my work I really need to use the 'quadratic smoothin splines'.
If I would like to do 'spline interpolation', instead, I could use the command 'spapi(k,x,y)' and choose k=3 for the case of quadratic spline interpolation. Is there a similar matlab command for smoothing splines? Something like 'spaps(k,x,y)' with no extra inputs like 'tolerance' or 'smoothing parameter' or 'weight'?
If MATLAB does not have the above-mentioned capability then this is a really 'annoying problem' which could be easily prevented by
the developers of spline toolbox. You might think that cubic smoothing splines are sufficient and there really is no need for a parabolic smoothing splines. If you are interested I can give you some important mathematical problems which really need the quadratic smoothing splines.
Any idea?
Thanks in advance!
Babak
  13 Comments
Mohammad Shojaei Arani
Mohammad Shojaei Arani on 14 Aug 2022
Yes Bruno,
Quadratic smoothing spline implies that the smoothing approximation should be quadratic on each sub-interval or break. I cannot answer your question "What kind of smoothness do you want" since I never studied the mathematics of smoothing splines. Forget about this.
The person who made the command csaps(x,y) is definitely able to do the same job for smoothing quadratic splines . Since he/she solved the harder cubic problem he/she should be able to solve the easier parabolic problem.
We need a command like spapi(k,x,y), where
k=4 is related to smoothing cubic splines (this is actually equivalent to csaps(x,y)),
k=3 is realted to 'smoothing quadratic splines' (NOT DONE, UNFORTUNATELY)
k=2 is related to 'smoothing linear spline' (NOT DONE, UNFORTUNATELY)
If would be nice if k can be higher to cover the cases of 'Quartic' (k=5) and 'Quintic' (k=6).
VERY IMPORTANT:
Any command about splines MUST also come with its pp-form (or B-form). This allows the user to use the command fnder(pp,1 or 2 or 3 or ...) to find the derivative as well as higher derivatives of spline function under study. Often, when we use the splines we also need information about the derivative(s) if the spline interpolant or approximant.

Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 14 Aug 2022
  6 Comments
Torsten
Torsten on 14 Aug 2022
Edited: Torsten on 14 Aug 2022
If I would have access to a quntum computer I would never bother you. I would, then, use cubic splines and would not even think to use parabolic splines.
You are kidding, aren't you ? My guess is that you will not even notice the difference in in computation time if you use parabolic instead of cubic spline interpolation/approximation.
Mohammad Shojaei Arani
Mohammad Shojaei Arani on 15 Aug 2022
Hi Torsten,
You are right. The computational difference between a linear, quadratic, cubic, quartic, quintic, etc are just nothing. I agree with you.
But, my problem has a completely different nature. In short, imagine you wish to estimate a function f which should satisfy an equation like F(f,df,d2f,d3f,d4f, ...,dnf)=0 . A smart idea is to approximate f with a spline. If I use a cubic spline then I have to deal with an equation of type F(f,df,d2f,d3f) = 0 while if I approximate f with a parabolic spline then I only need to deal with F(f,df,d2f) = 0 (well, linear spline is not very nice, so I avoid it).
Now, imagine that I also have to design a global optimization problem to estimate the parameters of f where I cannot benifit from typical optimization procedures which work based on gradient descent (the reason is long, so I skip this), so I have a non-smooth objective function and therefore am only limitted to use non-gradient based optimization algorithms like genetic algorithm which are not fast unfortunately.
Long story short, if I use parabolic splines life is much better!
but with a quantum computer life is perfect!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!