matlab矩阵与线性变换与计算.ppt

上传人:m**** 文档编号:570161325 上传时间:2024-08-02 格式:PPT 页数:20 大小:155KB
返回 下载 相关 举报
matlab矩阵与线性变换与计算.ppt_第1页
第1页 / 共20页
matlab矩阵与线性变换与计算.ppt_第2页
第2页 / 共20页
matlab矩阵与线性变换与计算.ppt_第3页
第3页 / 共20页
matlab矩阵与线性变换与计算.ppt_第4页
第4页 / 共20页
matlab矩阵与线性变换与计算.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《matlab矩阵与线性变换与计算.ppt》由会员分享,可在线阅读,更多相关《matlab矩阵与线性变换与计算.ppt(20页珍藏版)》请在金锄头文库上搜索。

1、第五章:矩阵与线性变换第五章:矩阵与线性变换有有限限维维空空间间的的线线性性变变换换是是简简单单而而常常用用的的数数学学变变换,其实现可以归结为矩阵运算换,其实现可以归结为矩阵运算 y=Ax y=Ax 刚刚体体的的运运动动,物物体体的的线线性性变变形形,光光线线的的反反射射等等,都都可可以以归归结结为为线线性性变变换换。较较复复杂杂的的运运动动,当当运运动动幅幅度度很很小小时时,如如物物体体的的小小幅幅振振动动,也也可可以以利利用用线线性性微微分分方方程程作作近近似似刻刻画画,其其离离散散解解可可以以归归结为一系列线性变换。结为一系列线性变换。对对于于非非线线性性问问题题,通通常常可可以以利利

2、用用一一系系列列线线性性变变换换来逼近。如非线性方程组来逼近。如非线性方程组可以利用可以利用NewtonNewton迭代法逐步逼近问题的解迭代法逐步逼近问题的解 其中矩阵其中矩阵 是是F F的的JacobiJacobi矩阵的逆矩阵。矩阵的逆矩阵。刚体的平移、旋转和镜面映射刚体的平移、旋转和镜面映射刚体的旋转刚体的旋转刚体的旋转可以利用旋转变换实现。例如,围绕刚体的旋转可以利用旋转变换实现。例如,围绕z z轴的旋轴的旋转的旋转变换矩阵为转的旋转变换矩阵为如果一个物体同时围绕两个轴转动,(如陀螺的运动),如果一个物体同时围绕两个轴转动,(如陀螺的运动),则变换可以由两个矩阵的乘积实现。则变换可以由

3、两个矩阵的乘积实现。例例5.15.1:螺线的绕:螺线的绕z z轴旋转。轴旋转。 考虑考虑螺线方程螺线方程 x= x= cost, y=cost, y= sint, z=at 0sint, z=at 0 t t 2 2 对给定的节点对给定的节点 0t0t1 1 t t2 2ttn,n,螺线的数据为螺线的数据为而而 T Tz zX X 则是旋转后的数据。则是旋转后的数据。螺线绕螺线绕z z轴旋转的动画参考程序轴旋转的动画参考程序function rotation1function rotation1%rotation around z-axis%rotation around z-axisclea

4、rclear%forming the parametric curve%forming the parametric curvecita=pi/20;cita=pi/20;t=0:pi/10:10*pi;t=0:pi/10:10*pi;x=cos(t);x=cos(t);y=sin(t);y=sin(t);z=0.2*t;z=0.2*t;%rotation operator%rotation operatorA=cos(cita) -sin(cita) 0A=cos(cita) -sin(cita) 0 sin(cita) cos(cita) 0 sin(cita) cos(cita) 0 0

5、 0 1; 0 0 1; %initial figure%initial figureh=line(x,y,z,EraseMode, Xor,. h=line(x,y,z,EraseMode, Xor,. LineWidth,8,Color, 1 0 0);LineWidth,8,Color, 1 0 0);view(90,20)view(90,20)axis offaxis offaxis equalaxis equalxlim(-1.5,1.5);ylim(-1.5,1.5);zlim(0,pi)xlim(-1.5,1.5);ylim(-1.5,1.5);zlim(0,pi) % moti

6、on figure% motion figurem=length(t);X=x;y;z;m=length(t);X=x;y;z;while 1while 1 X=X*A; set(h,XData,X(1:m),YData,. X=X*A; set(h,XData,X(1:m),YData,.X(m+1:2*m),XData,X(2*m+1:3*m)X(m+1:2*m),XData,X(2*m+1:3*m) drawnow drawnow pause(0.1) pause(0.1) endend注注1 1:由由于于线线性性变变换换不不能能作作平平移移运运动动,因因此此,一一般般刚刚体体的的运运动

7、动不不能能通通过过线线性性变变换换完完成成。解解决决这这一一问题的做法是引入问题的做法是引入齐次坐标齐次坐标来来代代换换普普通通坐坐标标 。齐齐次次坐坐标标的的含含义义是是其其乘乘以以任任意非零常数表示同一坐标意非零常数表示同一坐标。例如例如利用上述坐标,一般的利用上述坐标,一般的刚体运动刚体运动可以描写可以描写为为注注2 2:围围绕绕给给定定方方向向单单位位向向量量 , ,旋旋转转角角为为 的的旋旋转转变换矩阵变换矩阵为为 其中其中镜镜面映射面映射镜面映射变换镜面映射变换为为其中其中x x是垂直于镜面的单位向量。是垂直于镜面的单位向量。x设任意设任意向量向量y y分解分解为平行于为平行于x

8、x的的分量分量y y1 1和和垂直于垂直于x x的的分量分量y y2 2,则,则即即以垂直于以垂直于x x的过原点的平面为映射镜面的过原点的平面为映射镜面。例例5.25.2:将上一实验中的旋转螺线沿:将上一实验中的旋转螺线沿x x轴偏移两轴偏移两个单位,然后以个单位,然后以yozyoz平面为镜面作镜面映射平面为镜面作镜面映射。%rotation around z-axis%rotation around z-axisclearclear%forming the parametric curve%forming the parametric curvecita=pi/20;cita=pi/20;

9、t=0:pi/10:10*pi;m=length(t);t=0:pi/10:10*pi;m=length(t);x=cos(t);x=cos(t);y=sin(t);y=sin(t);z=0.2*t;z=0.2*t; %rotation operator%rotation operatorA=cos(cita) -sin(cita) 0A=cos(cita) -sin(cita) 0 sin(cita) cos(cita) 0 sin(cita) cos(cita) 0 0 0 1 0 0 1;%mirror operator%mirror operatord=1 0 0;d=1 0 0;B=

10、eye(3)-2*d*d;B=eye(3)-2*d*d; %initial figure%initial figureh=line(x-2,y,z,EraseMode, Xorh=line(x-2,y,z,EraseMode, Xor,. ,. LineWidth,8,Color, 1 0 0);LineWidth,8,Color, 1 0 0);view(158,26)view(158,26)axis equalaxis equalxlim(-3,3)xlim(-3,3)ylim(-1.5,1.5)ylim(-1.5,1.5)zlim(0,2*pi)zlim(0,2*pi) X1=x-2,y

11、,z*B;X1=x-2,y,z*B;h1=line(X1(1:m),X1(m+1:2*m),X1(2*m+1:endh1=line(X1(1:m),X1(m+1:2*m),X1(2*m+1:end),.),.EraseModeEraseMode, Xor, LineWidth,8,Color, 0 1 0, Xor, LineWidth,8,Color, 0 1 0););% motion figure% motion figureX=x,y,z;X=x,y,z;while 1while 1 X=X*A; X=X*A; X(:,1)=X(:,1)-2; X(:,1)=X(:,1)-2; set

12、(h,XData,X(1:m),YData,X(m+1:2*m),ZData,set(h,XData,X(1:m),YData,X(m+1:2*m),ZData,X(2*m+1:3*m)X(2*m+1:3*m) X1=X*B; X1=X*B; set(h1,XData,X1(1:m),YData,X1(m+1:2*m),ZDatset(h1,XData,X1(1:m),YData,X1(m+1:2*m),ZData,X1(2*m+1:3*m)a,X1(2*m+1:3*m) pause(0.1) %control the rotation speed pause(0.1) %control th

13、e rotation speed X(:,1)=X(:,1)+2; X(:,1)=X(:,1)+2;endend例例5.3利用利用镜面映射生成万花筒的几何面映射生成万花筒的几何图案案.性性质1: 以直线 为镜面的镜面映射为 其中向量P由下式给出以以L L1 1 为镜面的镜面映射的算法为镜面的镜面映射的算法为为 (1) (1)求求(2)(2)作作映射映射function reflect_testfunction reflect_testx,y=mypolygon(7);x,y=mypolygon(7);q=0.5*x,0;y,1q=0.5*x,0;y,1;x1;x1=1,0;y1=0,1;=1,

14、0;y1=0,1;q1=reflect_1(x1,y1,q);q1=reflect_1(x1,y1,q);plot(q(1,:),q(2,:),q1(1,:),q1(2,:)plot(q(1,:),q(2,:),q1(1,:),q1(2,:)endend function q1=reflect_1(x,y,q) function q1=reflect_1(x,y,q) %the program returns the figure data which is the %the program returns the figure data which is the %reflection %r

15、eflection of data of data q q by the by the mirror Lmirror L. L is a . L is a %straight %straight line passing (x1,y1) and (x2,y2) line passing (x1,y1) and (x2,y2) %q is an array of 2 times n which contains n %q is an array of 2 times n which contains n %different %different points. points. P1=(y(2)

16、-y(1)*x(1)-(x(2)-x(1)*y(1 P1=(y(2)-y(1)*x(1)-(x(2)-x(1)*y(1)/.)/.(x(2)-x(1)2+(y(2)-y(1)2);x(2)-x(1)2+(y(2)-y(1)2); P=P1*y(2)-y(1 P=P1*y(2)-y(1), -(), -(x(2)-x(1);x(2)-x(1); m,n=size(q); m,n=size(q);PP=repmat(P,1,n);PP=repmat(P,1,n); PQ=P/norm(P); PQ=P/norm(P); q1=(eye(2)-2*PQ*PQ)*(q-PP)+PP; q1=(eye(

17、2)-2*PQ*PQ)*(q-PP)+PP; end end function x,y=mypolygon(n)function x,y=mypolygon(n)% the program creates a polygon% the program creates a polygon cita=linspace(pi/2,2*pi+pi/2,n+1); cita=linspace(pi/2,2*pi+pi/2,n+1); x=cos(cita); x=cos(cita); y=sin(cita); y=sin(cita); if nargout=0 if nargout=0 plot(x,0,y,1) plot(x,0,y,1) end endendend

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号