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

📄 chzh.m

📁 de Boor 求值算法求作二次和三次B-样条插值曲线
💻 M
字号:
function Dx=CHZH(n,k,x,u)
%反算插值曲线的控制顶点
%%该算法取两端点节点重度r=k,即首末控制点就是首末数据点
for i=1:n+2*k-3
    deta(i)=u(i+1)-u(i);
end
COE=zeros(n+k-3,n+k-3);                            %%系数矩阵
COE(1,1)=1;COE(n+k-3,n+k-3)=1;
for i=2:n+k-4
    j=i-1;
    COE(i,j)=deta(i+2)^2/(deta(i)+deta(i+1)+deta(i+2));
    COE(i,j+1)=(deta(i+2)*(deta(i)+deta(i+1)))/(deta(i)+deta(i+1)+deta(i+2))...
        +(deta(i+1)*(deta(i+2)+deta(i+3)))/(deta(i+1)+deta(i+2)+deta(i+3));
    COE(i,j+2)=deta(i+1)^2/(deta(i+1)+deta(i+2)+deta(i+3));
end

Ex=zeros(n+k-3,1);
Ex(1,1)=x(1)+deta(3)/3;Ex(n+k-3)=x(n+k-3);              %%使用边界条件
for i=2:n+k-4
    Ex(i,1)=(deta(i+1)+deta(i+2))*x(i);
end

Dmx=inv(COE)*Ex;                                %%计算得未知控制点

Dx=zeros(1,n+k-1);                                          
Dx(1)=x(1);Dx(n+k-1)=x(n);
for i=2:n+k-2
   Dx(i)=Dmx(i-1,1);
end

⌨️ 快捷键说明

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