
用MATLAB与建模实践改造工科线性代数课程教育部使用信息ppt课件.ppt
30页师资培训暨教学研讨会师资培训暨教学研讨会教育部教育部 “ “使用信息工具改造使用信息工具改造课程程” ” 工程工程 ------用用MATLABMATLAB和建模和建模实践改造践改造线性代数性代数课程程 MATLAB基础基础西安西安电子科技大学子科技大学 杨威威2021.42021.4一、一、MATLABMATLAB的历史的历史 美国人美国人于于19801980年开年开发MATLAB MATLAB 即即rix oratory rix oratory 矩矩阵实验室室MatMatLabLab二、二、MATLABMATLAB的初识的初识 MATLABMATLAB程序程序执行方式:行方式:M M文件:文件:纯文本文件,文本文件,扩展名展名为M MMATLABMATLAB的启的启动MATLABMATLAB的窗口的窗口MATLABMATLAB的命令窗口的命令窗口MATLABMATLAB的退出的退出解解释执行行( (立即立即执行行) )1 1 1 1、、、、 功能功能功能功能强强大:大:大:大:三、三、MATLABMATLAB的特点的特点 数数值计算算符号符号计算算 绘图功能功能语言体系言体系各种工具箱各种工具箱2 2 2 2、、、、 操作操作操作操作简单简单:::: 良好的人机良好的人机良好的人机良好的人机对话对话窗口窗口窗口窗口许许多指令、多指令、多指令、多指令、语语法都与自然法都与自然法都与自然法都与自然语语言相关言相关言相关言相关3 3 3 3、、、、 应应用广泛:用广泛:用广泛:用广泛:4、网、网络资源丰富:源丰富: 从教学到研究从教学到研究从教学到研究从教学到研究从理从理从理从理论论建模到系建模到系建模到系建模到系统统仿真仿真仿真仿真国内、国外国内、国外 1. help1. help命令命令 help help命令是命令是查询函数函数语法的最基本方法,法的最基本方法,查询信息直接信息直接显示在命令窗口。
示在命令窗口四、四、MATLABMATLAB的帮助系统的帮助系统 2.lookfor2.lookfor命令命令 lookfor lookfor对搜索范搜索范围内的内的M M文件文件进行关行关键字字搜索,条件比搜索,条件比较宽松dir dir 显示目示目录下的文件下的文件五、五、MATLABMATLAB的通用命令的通用命令 clc clc 清除工作窗清除工作窗disp disp 显示示变量或文字内容量或文字内容who(whos) who(whos) 显示内存示内存变量量clear clear 清除内存清除内存变量量path path 显示和示和设置搜索目置搜索目录save save 保存内存保存内存变量到指定文件量到指定文件load load 加加载指定文件的指定文件的变量量echo echo 工作窗信息工作窗信息显示开关示开关= = 赋值标记六、六、MATLABMATLAB的标点符号的标点符号 [ ] [ ] 矩矩阵定定义标志志( ) ( ) 指定运算先后次序指定运算先后次序:: 具有多种具有多种应用功能用功能,, 区分列,函数参数分隔符区分列,函数参数分隔符;; 区分行,取消运行区分行,取消运行显示等示等… … 续行符行符% % 注注释标记‘ ‘ 字符串字符串标示符示符例例1 1 已知矩阵:已知矩阵: ,, 计算:计算:C=AC=A++B B,,D=AD=A〔〔A A--B B))解:在解:在MATLABMATLAB的的M M文件文件编辑器中建立器中建立m01.mm01.m文件文件A=[9,3,2;6,5,6;6,6,0]A=[9,3,2;6,5,6;6,6,0]B=[3,3,6;3,4,8;5,8,6]B=[3,3,6;3,4,8;5,8,6]C=A+BC=A+BD=A*(A-B)D=A*(A-B)在在MATLABMATLAB的命令窗口中的命令窗口中输入:入:m01m01 变量名是以字母开量名是以字母开头,后接字母、数字或,后接字母、数字或下划下划线的字符序列的字符序列七、七、MATLABMATLAB的变量的变量 变量名区分字母的大小写量名区分字母的大小写 MATLABMATLAB提提供供的的标准准函函数数名名以以及及命命令令名名一一般般用小写字母用小写字母 MATLAB MATLAB将所有将所有变量均存成量均存成doubledouble形式,形式,不需不需经过变量声明量声明pi pi 圆周率周率八、八、MATLABMATLAB的常量的常量i i,,j j 虚数虚数单位位inf inf 无无穷大大Nan Nan 表示不确定的数表示不确定的数例例2 2 计算计算 的值。
的值解:在解:在MATLABMATLAB命令窗口命令窗口输入:入:x=(1+cos(23*pi/180))/(4+sqrt(5)-6*i)x=(1+cos(23*pi/180))/(4+sqrt(5)-6*i)九、产生特殊矩阵的函数:九、产生特殊矩阵的函数:zeros zeros 创建零矩建零矩阵 ones ones 创建全建全1 1矩矩阵eye eye 创建建单位矩位矩阵randrand〔〔randnrandn)) 创建随机矩建随机矩阵round round 四舍五入运算四舍五入运算length(A) length(A) 矩矩阵的的长度度size(A) size(A) 矩矩阵的尺寸的尺寸例例3 3 分分别建立以下矩建立以下矩阵::E E::5 5阶单位矩位矩阵;;A A::6×36×3全全1 1矩矩阵;;O O:与矩:与矩阵A A同型的零矩同型的零矩阵;;B B:随机的:随机的5×65×6整数矩整数矩阵解:在解:在MATLABMATLAB的的M M文件文件编辑器中建立器中建立m03.mm03.m文件,文件,E=eye(5)E=eye(5)A=ones(6,3)A=ones(6,3)O=zeros(size(A))O=zeros(size(A))B=round(10*randn(5,6))B=round(10*randn(5,6))在在MATLABMATLAB的命令窗口中的命令窗口中输入:入:m03m03十、冒号表达式十、冒号表达式冒号表达式的一般格式:冒号表达式的一般格式: e1:e2:e3 e1:e2:e3函数函数linspace(a,b,n)linspace(a,b,n)例例5 5 创建行向量建行向量x x,在,在0 0到到2*pi2*pi间等等间距取距取100100个个值解:在解:在MATLABMATLAB命令窗口命令窗口输入:入:x=linspace(0,2*pi,100)x=linspace(0,2*pi,100)例例4 4 创建行向量建行向量y=[2,4,6,…y=[2,4,6,…,,100]100]解:在解:在MATLABMATLAB命令窗口命令窗口输入:入:y=2:2:100y=2:2:100十一、基本数学函数十一、基本数学函数三角函数三角函数 sin,cos,tan,… sin,cos,tan,…指数函数指数函数 exp,log,sqrt,… exp,log,sqrt,…复数运算复数运算 abs,angle,real,conj,… abs,angle,real,conj,…舍入函数舍入函数 round,fix,floor,mod,… round,fix,floor,mod,…离散函数离散函数 factor,gcd,lcm,primes,… factor,gcd,lcm,primes,…例例6 6 生成生成10001000内的内的质数表数表解:在解:在MATLABMATLAB命令窗口命令窗口输入:入:primes(1000)primes(1000)A(5,3)=68 A(5,3)=68 把矩把矩阵A A的第的第5 5行第行第3 3列元素列元素赋值6868十二、矩十二、矩阵的拆分的拆分A(:,3)=A(:,1)A(:,3)=A(:,1)把矩把矩阵A A的第的第1 1列列赋值到第到第3 3列列A(i,:)=[] A(i,:)=[] 删除矩除矩阵A A的第的第i i行行A(1:3,:)=A(4:6,:)A(1:3,:)=A(4:6,:)把矩把矩阵A A的第的第4,5,64,5,6行行赋值到第到第1,2,31,2,3行行解:解:m07.mA=round(10*rand(3))B=A;B(:,2)=A(:,3);B(:,3)=A(:,2)E=[1,0,0;0,0,1;0,1,0]A*E-B例例7 7 随机生成随机生成3 3阶方阵阶方阵A A,交换,交换A A的第的第2 2列和第列和第3 3列,得列,得到矩阵到矩阵B B,演算,演算AE(2,3)AE(2,3)==B B例例8 8 随机生成随机生成5 5阶方方阵,构造其伴随矩,构造其伴随矩阵•解:解:m08.m•% 构造矩构造矩阵A的伴随矩的伴随矩阵•A=round(10*randn(5));•for i=1:5• for j=1:5• T=A; % 把矩把矩阵A赋给矩矩阵T• T(i,:)=[]; % 删去矩去矩阵T的第的第i行行• T(:,j)=[]; % 删去矩去矩阵T的第的第j列列• % 此此时,,|T| 为矩矩阵A元素元素aij的余子式的余子式• AA(j,i)=(-1)^(i+j)*det(T);% 算出算出aij的代数余子式的代数余子式• % 并放入矩并放入矩阵AA的第的第j行、第行、第i列列• % 当循当循环结束,矩束,矩阵AA即即为A的伴随矩的伴随矩阵• end•end 关系符号关系符号意义意义< <<=<=> >>=>=====~=~=小于小于小于等于小于等于大于大于大于等于大于等于等于等于不等于不等于十三、关系运算十三、关系运算 例例9 9 创建创建5 5阶随机方阵阶随机方阵A A,其元素为,其元素为[0,10][0,10]区间上区间上的随机整数。
分析的随机整数分析A A是否为奇异阵重复是否为奇异阵重复10001000次,次,统计出奇异阵的总数统计出奇异阵的总数解:解:m09.ms=0;for i=1:10000 A=round(100*rand(5)); if(det(A)==0) s=s+1; endends例例10 10 创建随机创建随机5 5阶矩阵阶矩阵A A,然后找出其最大值,及最,然后找出其最大值,及最大值所在位置大值所在位置解解:m10.m:m10.m文件文件A=round(10*randn(5))A=round(10*randn(5))Amax=max(max(A))Amax=max(max(A))[m,n]=find(A==Amax)[m,n]=find(A==Amax)十四、输入和输出十四、输入和输出例例11 11 求一元二次方程求一元二次方程 ax2+bx+c=0 ax2+bx+c=0 的根解:解:m11.mm11.ma=input('a=?');a=input('a=?');b=input('b=?');b=input('b=?');c=input('c=?');c=input('c=?');d=b*b-4*a*c;d=b*b-4*a*c;disp(‘disp(‘一元二次方程的根一元二次方程的根为::’);’);x1=(-b+sqrt(d))/(2*a)x1=(-b+sqrt(d))/(2*a)x2=(-b-sqrt(d))/(2*a)x2=(-b-sqrt(d))/(2*a)十五、数值运算与基本作图十五、数值运算与基本作图例例12 下表给出了平面坐标系中五个点的坐标。
下表给出了平面坐标系中五个点的坐标 X 0 1 2 3 4 Y -27 0 21 0 -75((1〕请过这五个点作一个四次多项式函数〕请过这五个点作一个四次多项式函数p4(x),,并求并求p4(5) 2〕请根据这五个点,拟合一个二次多项式函数,〕请根据这五个点,拟合一个二次多项式函数,并绘制多项式函数曲线及已知的五个点并绘制多项式函数曲线及已知的五个点解:解:m12.mm12.m% % 插值、拟合与绘图插值、拟合与绘图clear clear close allclose allx=[0;1;2;3;4]; x=[0;1;2;3;4]; y=[-27;0;21;0;-75];y=[-27;0;21;0;-75];p=polyfit(x,y,4); p=polyfit(x,y,4); xi=linspace(-1,9.5,100); xi=linspace(-1,9.5,100); yi=polyval(p,xi);yi=polyval(p,xi);x0=5; x0=5; y0=polyval(p,x0); y0=polyval(p,x0); subplot(1,2,1);plot(xi,yi,x,y, 'o',x0,y0, '*');axis square; axis([-1 9 -400 100]) grid on; p=polyfit(x,y,2) xi=linspace(-1,5,100);yi=polyval(p,xi);subplot(1,2,2);plot(xi,yi,x,y, 'o'); axis square;axis([-1 5 -150 50])grid on; 例例13 13 求函数求函数y y==x x++3sin(x)3sin(x)在区间在区间[0,20][0,20]上的最小上的最小二乘二乘6 6次〔次〔1010次〕多项式。
次〕多项式解:解:m13.mm13.mx=linspace(0,20,100)x=linspace(0,20,100); ;y=x+3*sin(x);y=x+3*sin(x);p=polyfit(x,y,6);p=polyfit(x,y,6);yi=polyval(p,x);yi=polyval(p,x);plot(x,y,'k:',x,yi,'plot(x,y,'k:',x,yi,'r-'); r-'); 例例14 14 求下面求下面5 5次多项式函数的零点次多项式函数的零点p5(x)=x5-8x4-48x3+230x2+575x-750p5(x)=x5-8x4-48x3+230x2+575x-750解:解:m14.mm14.mp=[1,-8,-48,230,575,-750]p=[1,-8,-48,230,575,-750]r=roots(p)r=roots(p)x=linspace(-6,11,100);x=linspace(-6,11,100);y=polyval(p,x);y=polyval(p,x);plot(x,y); plot(x,y); grid on;grid on;例例15 15 用三维曲面图表现函数用三维曲面图表现函数z=sin(y)cos(x)z=sin(y)cos(x)。
解:解:m15.m [x,y]=meshgrid(0:0.1:2*pi); z=sin(y).*cos(x); mesh(x,y,z);谢谢!。
