您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > MATLAB实验指导书-线性代数
MATLAB实验指导书线性代数部分北京石油化工学院·1·一、基础知识1.1常见数学函数函数名数学计算功能函数名数学计算功能abs(x)实数的绝对值或复数的幅值floor(x)对x朝-∞方向取整acos(x)反余弦arcsinxgcd(m,n)求正整数m和n的最大公约数acosh(x)反双曲余弦arccoshximag(x)求复数x的虚部angle(x)在四象限内求复数x的相角lcm(m,n)求正整数m和n的最小公倍数asin(x)反正弦arcsinxlog(x)自然对数(以e为底数)asinh(x)反双曲正弦arcsinhxlog10(x)常用对数(以10为底数)atan(x)反正切arctanxreal(x)求复数x的实部atan2(x,y)在四象限内求反正切rem(m,n)求正整数m和n的m/n之余数atanh(x)反双曲正切arctanhxround(x)对x四舍五入到最接近的整数ceil(x)对x朝+∞方向取整sign(x)符号函数:求出x的符号conj(x)求复数x的共轭复数sin(x)正弦sinxcos(x)余弦cosxsinh(x)反双曲正弦sinhxcosh(x)双曲余弦coshxsqrt(x)求实数x的平方根:xexp(x)指数函数xetan(x)正切tanxfix(x)对x朝原点方向取整tanh(x)双曲正切tanhx如:输入x=[-4.85-2.3-0.21.34.566.75],则:ceil(x)=-4-20257fix(x)=-4-20146floor(x)=-5-3-1146round(x)=-5-201571.2系统的在线帮助1help命令:1.当不知系统有何帮助内容时,可直接输入help以寻求帮助:help(回车)2.当想了解某一主题的内容时,如输入:helpsyntax(了解Matlab的语法规定)3.当想了解某一具体的函数或命令的帮助信息时,如输入:helpsqrt(了解函数sqrt的相关信息)2lookfor命令现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:·2·lookforline(查找与直线、线性问题有关的函数)1.3常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:特殊的变量、常量取值ans用于结果的缺省变量名pi圆周率π的近似值(3.1416)eps数学中无穷小(epsilon)的近似值(2.2204e-016)inf无穷大,如1/0=inf(infinity)NaN非数,如0/0=NaN(NotaNumber),inf/inf=NaNi,j虚数单位:i=j=11数值型向量(矩阵)的输入1.任何矩阵(向量),可以直接按行方式...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([])内;例1:Time=[111212345678910]X_Data=[2.323.43;4.375.98]2.系统中提供了多个命令用于输入特殊的矩阵:函数功能函数功能compan伴随阵toeplitzToeplitz矩阵diag对角阵vanderVandermonde矩阵hadamardHadamard矩阵zeros元素全为0的矩阵hankelHankel矩阵ones元素全为1的矩阵invhilbHilbert矩阵的逆阵rand元素服从均匀分布的随机矩阵kronKronercker张量积randn元素服从正态分布的随机矩阵magic魔方矩阵eye对角线上元素为1的矩阵pascalPascal矩阵meshgrid由两个向量生成的矩阵上面函数的具体用法,可以用帮助命令help得到。如:meshgrid(x,y)输入x=[1234];y=[105];[X,Y]=meshgrid(x,y),则X=Y=1234111112340000·3·12345555目的是将原始数据x,y转化为矩阵数据X,Y。2符号向量(矩阵)的输入1.用函数sym定义符号矩阵:函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制。只需将方括号置于单引号中。例2:sym_matrix=sym('[abc;JackHelp_MeNO_WAY]')sym_matrix=[a,b,c][Jack,Help_Me,NO_WAY]2.用函数syms定义符号矩阵先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。例3:symsabc;M1=sym('Classical');M2=sym('Jazz');M3=sym('Blues');A=[abc;M1,M2,M3;sym([235])]A=[a,b,c][Classical,Jazz,Blues][2,3,5]1.4数组(矩阵)的点运算运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),例4:g=[1234];h=[4321];s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h1.5矩阵的运算运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形)·4·例5:A=[20–1;132];B=[17–1;423;201];M=A*B%矩阵A与B按矩阵运算相乘det_B=det(B)%矩阵A的行列式rank_A=rank(A)%矩阵A的秩inv_B=inv(B)%矩阵B的逆矩阵[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵DX=A/B%A/B=A*B-1,即XB=A,求XY=B\A%B\A=B-1*A,即BY=A,求Y上机练习(一):1.练习数据和符号的输入方式,将前面的命令在命令窗口中执行通过;2.输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义:A(2,3)A(:,2)A(3,:)A(:,1:2:3)A(:,3).*B(:,2)A(:,3)*B(2,:)A*BA.*BA^2A.^2B/AB./A3.输入C=1:2:20,则C(i)表示什么?其中i=1,2,3,…,10;4.查找已创建变量的信息,删除无用的变量;5.欲通过系统做一平面图,请查找相关的命令与函数,获取函数的帮助信息。二、编程2.1无条件循环当需要无条件重复执行某些命令时,可以使用for循环:for循环变量t=表达式1:达式2:表达式3语句体end说明:表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。例6:如:矩阵输入程序生成3×4阶的Hiltber矩阵。m=input(‘矩阵行数:m=’);fori=1:3n=input(‘矩阵列数:n=’);forj=1:4fori=1:mH(i,j)=1/(i+j-1);forj=1:nenddisp([‘输入第’,num2str(i),’行,第’,num2str(j),’列元素’])endA(i,j)=input(‘’)endend·5·2.2条件循环1)if-else-then语句if-else-then语句的常使用三种形式为:(1)if逻辑表达式(3)if逻辑表达式1语句体语句体1endelseif逻辑表达式2语句体2(2)if逻辑表达式1elseif逻辑表达式3语句体1…elseelse语句体2语句体nendend2)while循环语句while循环的一般使用形式为:while表达式语句体end例7:用二分法计算多项式方程523xx=0在[0,3]内的一个根。解:a=0;fa=-inf;b=3;fb=inf;whileb-aeps*bx=(a+b)/2;fx=x^3-2*x-5;ifsign(fx)==sign(fa)a=x;fa=fx;elseb=x;fb=fx;endendx运行结果为:x=2.09455151481542332.3分支结构若需要对不同的情形执行不同的操作,可用switch分支语句:switch表达式(标量或字符串)·6·case值1语句体1case值2语句体2…otherwise语句体nend说明:当表达式不是“case”所列值时,执行otherwise语句体。2.4建立M文件将多个可执行...的系统命令,用文本编辑器编辑后并存放在后缀为.m的文件中,若在MATLAB命令窗口中输入该m-文件的文件名(不跟后缀.m!),即可依次执行该文件中的多个命令。这个后缀为.m的文件,也称为Matlab的脚本文件(ScriptFile)。注意:文件存放路径必须在Matlab能搜索的范围内。2.5建立函数文件对于一些特殊用户函数,系统提供了一个用于创建用户函数的命令function,以备用户随时调用。1.格式:function[输出变量列表]=fun_name(输入变量列表)用户自定义的函数体2.函数文件名为:fun_name,注意:保存时文件名...与函数名...最好相同;3.存储路径:最好在系统的搜索路径上。4.调用方法:输出参量=fun_name(输入变量)例8:计算s=n!,在文本编辑器中输入:functions=pp(n);s=1;fori=1:ns=s*i;ends;在MATLAB命令窗口中输入:s=pp(5)结果为s=120上机练习(二):·7·1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n值)。2.编写分段函数其它021210)(xxxxxf的函数文件,存放于文件ff.m中,计算出)3(f,)2(f,)(f的值。三、矩阵及其运算3.1矩阵的创建1.加、减运算运算符:“+”和“-”分别为加、减运算符。运算规则:对应元素相加、减,即按线性代数中矩阵的“十”、“一”运算进行。例3-1在Matlab编辑器中建立m文件:LX0701.mA=[1,1,1;1,2,3;1,3,6]B=[8,1,6;3,5,7;4,9,2]A+B=A+BA-B=A-B在Matlab命令窗口建入LX0701,则结果显示:A+B=92747105128A-B=-70-5-2-3-4-3-642.乘法运算符:*运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。(1)两个矩阵相乘例3-2在Mtalab编辑器中建立M文件:LX0702.mX=[23451221];·8·Y=[011110001100];Z=X*Y存盘在命令行中建入LX0702,回车后显示:Z=856333(2)矩阵的数乘:数乘矩阵上例中:a=2*X则显示:a=468102442(3)向量的点乘(内积):维数相同的两个向量的点乘。命令:dot向量点乘函数例:X=[-102];Y=[-2-11];Z=dot(X,Y)则显示:Z=4还可用另一种算法:sum(X.*Y)ans=4(4)向量叉乘在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。在Matlab中,用函数cross实现。命令cross向量叉乘函数例3-3计算垂直于向量(1,2,3)和(4,5,6)的向量。在Mtalab编辑器中建立M文件:LX0703.ma=[123];b=[456];c=cross(a,b)结果显示:c=-36-3可得垂直于向量(1,2,3)和(4,5,6)的向量为±(-3,6,-3)(5)混合积·9·混合积由以上两函数实现:例3-4计算向量a=(1,2,3)、b=(4,5,6)和c=(-3,6,-3)的混合积)cb(a在Matlab编辑器中建立M文件:LX0704.ma=[123];b=[456];c=[-36-3]
本文标题:MATLAB实验指导书-线性代数
链接地址:https://www.777doc.com/doc-2882102 .html