资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章:矩阵与线性变换第五章:矩阵与线性变换1有限维空间的线性变换是简单而常用的数学变 换,其实现可以归结为矩阵运算y=Ax 刚体的运动,物体的线性变形,光线的反射等 ,都可以归结为线性变换。较复杂的运动,当 运动幅度很小时,如物体的小幅振动,也可以 利用线性微分方程作近似刻画,其离散解可以 归结为一系列线性变换。2对于非线性问题,通常可以利用一系列线性变换 来逼近。如非线性方程组可以利用Newton迭代法逐步逼近问题的解其中矩阵 是F的Jacobi矩阵的逆矩阵。3刚体的平移、旋转和镜面映射刚体的平移、旋转和镜面映射刚体的旋转刚体的旋转可以利用旋转变换实现。例如,围绕z轴的旋 转的旋转变换矩阵为如果一个物体同时围绕两个轴转动,(如陀螺的运动) ,则变换可以由两个矩阵的乘积实现。4例5.1:螺线的绕z轴旋转。考虑螺线方程x=cost, y=sint, z=at 0t2对给定的节点 0t1t2tn,螺线的数据为而 TzX 则是旋转后的数据。5螺线绕z轴旋转的动画参考程序function rotation1 %rotation around z-axis clear %forming the parametric curve cita=pi/20; t=0:pi/10:10*pi; x=cos(t); y=sin(t); z=0.2*t;%rotation operator A=cos(cita) -sin(cita) 0sin(cita) cos(cita) 00 0 1; 6%initial figure h=line(x,y,z,EraseMode, Xor,. LineWidth,8,Color, 1 0 0); view(90,20) axis off axis equal xlim(-1.5,1.5);ylim(-1.5,1.5);zlim(0,pi)% motion figure m=length(t);X=x;y;z; while 1X=X*A; set(h,XData,X(1:m),YData,. X(m+1:2*m),XData,X(2*m+1:3*m) drawnowpause(0.1) end7注1:由于线性变换不能作平移运动,因此,一 般刚体的运动不能通过线性变换完成。解决这一 问题的做法是引入齐次坐标来代换普通坐标 。齐次坐标的含义是其乘以任 意非零常数表示同一坐标。例如8利用上述坐标,一般的刚体运动可以描写为9注2:围绕给定方向单位向量 ,旋转角为 的旋转 变换矩阵为其中10镜面映射镜面映射镜面映射变换为其中x是垂直于镜面的单位向量。x设任意向量y分解为平行于x的分量y1和垂直于x的分量y2,则即以垂直于x的过原点的平面为映射镜面。11例5.2:将上一实验中的旋转螺线沿x轴偏移两 个单位,然后以yoz平面为镜面作镜面映射。%rotation around z-axis clear %forming the parametric curve cita=pi/20; t=0:pi/10:10*pi;m=length(t); x=cos(t); y=sin(t); z=0.2*t;%rotation operator A=cos(cita) -sin(cita) 0sin(cita) cos(cita) 00 0 1;12%mirror operator d=1 0 0; B=eye(3)-2*d*d;%initial figure h=line(x-2,y,z,EraseMode, Xor,. LineWidth,8,Color, 1 0 0); view(158,26) axis equal xlim(-3,3) ylim(-1.5,1.5) zlim(0,2*pi)X1=x-2,y,z*B; h1=line(X1(1:m),X1(m+1:2*m),X1(2*m+1:end),. EraseMode, Xor, LineWidth,8,Color, 0 1 0);13% motion figure X=x,y,z; while 1X=X*A;X(:,1)=X(:,1)-2;set(h,XData,X(1:m),YData,X(m+1:2*m),ZDa ta,X(2*m+1:3*m)X1=X*B;set(h1,XData,X1(1:m),YData,X1(m+1:2*m), ZData,X1(2*m+1:3*m)pause(0.1) %control the rotation speedX(:,1)=X(:,1)+2; end1415例5.3 利用镜面映射生成万花筒的几何图案.性质1: 以直线 为镜面的镜面 映射为其中向量P由下式给出16以L1 为镜面的镜面映射的算法为(1)求(2)作映射17function reflect_test x,y=mypolygon(7); q=0.5*x,0;y,1;x1=1,0;y1=0,1; q1=reflect_1(x1,y1,q); plot(q(1,:),q(2,:),q1(1,:),q1(2,:) endfunction q1=reflect_1(x,y,q)%the program returns the figure data which is the %reflection of data q by the mirror L. L is a %straight line passing (x1,y1) and (x2,y2) %q is an array of 2 times n which contains n %different points. P1=(y(2)-y(1)*x(1)-(x(2)-x(1)*y(1)/. (x(2)-x(1)2+(y(2)-y(1)2);P=P1*y(2)-y(1), -(x(2)-x(1);m,n=size(q); 18PP=repmat(P,1,n);PQ=P/norm(P);q1=(eye(2)-2*PQ*PQ)*(q-PP)+PP;endfunction x,y=mypolygon(n) % the program creates a polygoncita=linspace(pi/2,2*pi+pi/2,n+1);x=cos(cita);y=sin(cita);if nargout=0plot(x,0,y,1)end end1920
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号