⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsplineval1.m

📁 Mathematical Methods by Moor n Stiling.
💻 M
字号:
function s = bsplineval1(c,t,x,k)
% 
% When f(x) = sum_i c_i^k B_i^k(x)
% where B_i^k is the kth order spline across t_i,t_{i+1},\ldots,t_{i+k+1}
% This function evaluates f(x) for a given x.
% (See Kincaid-Cheney, p. 396)
%
% function s = bsplineval1(c,t,x,k)
%
% c = set of coefficients
% t = knot set
% x = value.  x must fall in range of knots, t_i <= x < t_{i+1}
% k = order
%
% s = spline value

% Copyright 1999 by Todd K. Moon

nt = length(t);
nc = length(c);
m = sum(x>=t);
if(m == nt | m <= 0)
  error('x must be in range of knots')
end

car = [];
for i=m:-1:(m-k)
  if(i>nc)
    c0 = 0;
  elseif(i<1) 
    c0 = 0;
  else
    c0 = c(i);
  end
  car = [car; c0];
end

k1 = k;
for j=k-1:-1:0
  for i=1:k1
     if(m-i+1 <=0)
       t0 = 0;
     else
       t0 = t(m-i+1);
     end
     if(m-i+j+2 > nt)
       tn = t(nt)+1;
     else
       tn = t(m-i+j+2);
     end
     cnew(i) = ((x-t0)*car(i) + (tn-x)*car(i+1))/(tn-t0);
  end
  k1=k1-1;
  car = cnew;
end
s = car(1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -