📄 chzh.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 + -