bbase.m

来自「关于样条插值均匀与非均匀的示例」· M 代码 · 共 28 行

M
28
字号
%****************第i段k次B样条基,Deboor递推递归算法******************************

function result = Bbase(i,k,u,t)
%第i段k次B样条基,Deboor递推递归算法
%t为变量,u(i)<=t<u(i+1),k=0时result=1;

if k==0 
    if (u(i)<=t && t<u(i+1)) %注意t=u(i+1)) 时的情况,要用t<=u(i+1);
        result=1;
        return;
    else
        result=0;
        return;
    end
end

    if u(i+k)-u(i)==0 
        alpha=0;
    else
        alpha=(t-u(i))/(u(i+k)-u(i));
    end
    if u(i+k+1)-u(i+1)==0
         beta=0;
    else
        beta=(u(i+k+1)-t)/(u(i+k+1)-u(i+1));
    end
result=alpha*Bbase(i,k-1,u,t)+beta*Bbase(i+1,k-1,u,t);
end

⌨️ 快捷键说明

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