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

上传人:小飞机 文档编号:6512022 上传时间:2023-11-08 格式:PPT 页数:20 大小:227.99KB
返回 下载 相关 举报
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 刚体的运动,物体的线性变形,光线的反射等,都可以归结为线性变换。较复杂的运动,当运动幅度很小时,如物体的小幅振动,也可以利用线性微分方程作近似刻画,其离散解可以归结为一系列线性变换。,对于非线性问题,通常可以利用一系列线性变换来逼近。如非线性方程组可以利用Newton迭代法逐步逼近问题的解 其中矩阵 是F的Jacobi矩阵的逆矩阵。,刚体的平移、旋转和镜面映射,刚体的旋转,刚体的旋转可以利用旋转变换实现。例如,围绕z轴的旋转的旋转变换矩阵为,如果一个物体同时围绕两个轴转动,(如陀螺的运动),

2、则变换可以由两个矩阵的乘积实现。,例5.1:螺线的绕z轴旋转。,考虑螺线方程 x=cost,y=sint,z=at 0t2,对给定的节点 0t1t2tn,螺线的数据为而 TzX 则是旋转后的数据。,螺线绕z轴旋转的动画参考程序,function rotation1%rotation around z-axisclear%forming the parametric curvecita=pi/20;t=0:pi/10:10*pi;x=cos(t);y=sin(t);z=0.2*t;%rotation operatorA=cos(cita)-sin(cita)0 sin(cita)cos(cita

3、)0 0 0 1;,%initial figureh=line(x,y,z,EraseMode,Xor,.LineWidth,8,Color,1 0 0);view(90,20)axis offaxis equalxlim(-1.5,1.5);ylim(-1.5,1.5);zlim(0,pi)%motion figurem=length(t);X=x;y;z;while 1 X=X*A;set(h,XData,X(1:m),YData,.X(m+1:2*m),XData,X(2*m+1:3*m)drawnow pause(0.1)end,注1:由于线性变换不能作平移运动,因此,一般刚体的运动不

4、能通过线性变换完成。解决这一问题的做法是引入齐次坐标来代换普通坐标。齐次坐标的含义是其乘以任意非零常数表示同一坐标。例如,利用上述坐标,一般的刚体运动可以描写为,注2:围绕给定方向单位向量,旋转角为 的旋转变换矩阵为 其中,镜面映射,镜面映射变换为其中x是垂直于镜面的单位向量。,设任意向量y分解为平行于x的分量y1和垂直于x的分量y2,则即以垂直于x的过原点的平面为映射镜面。,例5.2:将上一实验中的旋转螺线沿x轴偏移两个单位,然后以yoz平面为镜面作镜面映射。,%rotation around z-axisclear%forming the parametric curvecita=pi/2

5、0;t=0:pi/10:10*pi;m=length(t);x=cos(t);y=sin(t);z=0.2*t;%rotation operatorA=cos(cita)-sin(cita)0 sin(cita)cos(cita)0 0 0 1;,%mirror operatord=1 0 0;B=eye(3)-2*d*d;%initial figureh=line(x-2,y,z,EraseMode,Xor,.LineWidth,8,Color,1 0 0);view(158,26)axis equalxlim(-3,3)ylim(-1.5,1.5)zlim(0,2*pi)X1=x-2,y,

6、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);,%motion figureX=x,y,z;while 1 X=X*A;X(:,1)=X(:,1)-2;set(h,XData,X(1:m),YData,X(m+1:2*m),ZData,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 speed X(:,

7、1)=X(:,1)+2;end,例5.3 利用镜面映射生成万花筒的几何图案.,性质1:以直线 为镜面的镜面映射为 其中向量P由下式给出,以L1 为镜面的镜面映射的算法为(1)求(2)作映射,function reflect_testx,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,:)end function q1=reflect_1(x,y,q)%the program returns the figure data which is the%r

8、eflection 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);,PP=repmat(P,1,n);PQ=P/norm(P);q1=(eye(2)-2*PQ*PQ)*(q-PP)+PP;end function x,y=mypolygon(n)%the program creates a polygon cita=linspace(pi/2,2*pi+pi/2,n+1);x=cos(cita);y=sin(cita);if nargout=0 plot(x,0,y,1)endend,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号