How can I differentiate my B-Splines?

12 Ansichten (letzte 30 Tage)
Fabian Schaum
Fabian Schaum am 27 Aug. 2016
Trying to differentiate these B-Splines over [0,1], where n : order of b-spline, u : breaks.
I do not have the curve fitting toolbox and I have already tried to find something here/on stackexchange, but nothing seems to work. I'd appreciate help or explanation/ pointing out my mistakes or just plain code to make it work. Thanks!
function y = splines(u,n)
if n>2
y = ((u/(n-1)).*splines (u,n-1))+ (((n-u)/(n-1)).*splines(u-1,n-1));
else
y = zeros(size(u));
ind = find(u>0 & u<2) ;
y(ind) = 1 - abs(u(ind)-1);
end
end
  1 Kommentar
dpb
dpb am 27 Aug. 2016
Bearbeitet: dpb am 28 Aug. 2016
If you define the coefficients properly(), couldn't you then just use *polyder for each segment?
() Same order as used by *polyfit and friends, that is...

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Shruti Shivaramakrishnan
Shruti Shivaramakrishnan am 31 Aug. 2016
A similar question has been answered on the following MATLAB Answers link :
https://www.mathworks.com/matlabcentral/answers/95194-how-do-i-find-the-derivative-of-a-spline-curve-in-matlab-7-9-r2009b
You could refer to the second part of the answer that describes the differentiation of a spline without using the curve-fitting toolbox.

Community Treasure Hunt

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

Start Hunting!

Translated by