资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
给定矢量 P0,P1,R0,R1,称满足下列条件的参数三次多项式曲线P t ,t 0,1 为 Hermite 曲线:H x0= y0,H x1= y1,Hx0= m0,Hx1= m1,即 Hermite 曲线两个端点为 P0,P1,在两端点的切矢量分别R0,R1。记几何矩阵和基矩阵分别为GH,MH,GH,MH是未知的 .取GH=P0,P1,R0,R1,则只要 MH就可以了。 一般的曲线经过多项式分解 , 得到参数多项式曲线的矩阵表示: P t= G?M ?T将(1)式代入( 2)得到:GH?MH?TH|t=0= GH?MH? 1,0,0,0T= P0, GH?MH?TH|t=1= GH?MH? 1,1,1,1T= P1, GH?MH?TH|t=0= GH?MH? 0,1,0,0T= R0, GH?MH?TH|t=0= GH?MH? 0,1,2,3T= R1, 将上面四个式子合并如下形式:GH?MH?1 0 0100 111 102 0103=P0,P1,R0,R1= GH上面方程的解不唯一,不妨取MH=1 0 0100 111 102 0103- 1=1 0 00- 32 0- 3- 2 1- 21 00- 11从而得到三次Hermite 曲线的方程:P t= GH?MH?T其中MH?T确定了一组 Hermite 基函数G0t ,G1t ,H0t ,H1t ,即MH?T =1 0 00- 32 0- 3- 2 1- 21 00- 111 t t2t3=1 - 3t2+ 2t33t2- 2t3t - 2t2+ t3- t2+ t3附:MATLAB程序functionyy=hermite(x,y,dy,xx) % 输入X左右两个端点的X轴坐标Y左右两个端点的Y轴坐标dy左右两个端点的切矢xx中间插值的点X轴坐标%输出yy中间插值的点Y轴坐标functionyy=hermite(x,y,dy,xx) k=length(xx); z=zeros(1,k); for i=1:k; s=0; xaix=xx(i); a=1-3.*(xaix)2+2.*(xaix)3; b=2.*(xaix)2-2.*(xaix)3; c=xaix-2.*(xaix)2+(xaix)3; d=-2.*(xaix)2+(xaix)3; s=y(1)*a+y(2)*b+dy(1)*c+dy(2)*d; z(i)=s; end yy=z; functionyy=hermite(x,y,dy,xx) % 输入X左右两个端点的X轴坐标Y左右两个端点的Y轴坐标dy左右两个端点的切矢xx中间插值的点X轴坐标%输出yy中间插值的点Y轴坐标m=length(x); n=length(y); l=length(dy); k=length(xx); if m=n,error( 向量长度不一样 ); end; if n=l,error( 向量长度不一样 ); end; z=zeros(1,k); for i=1:k; s=0; a=xx(i)-x(1); b=x(1)-x(2); c=xx(i)-x(2); a1=(1-2*a/b)*(c/b)2; aa=xx(i)-x(2); a2=(1+2*aa/b)*(a/b)2; b1=a*(c/b)2; b2=c*(a/b)2; s=y(1)*a1+y(2)*a2+dy(1)*b1+dy(2)*b2; z(i)=s; end yy=z;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号