第一节MATLAB中的矩阵的输入湖北民族学院Word文档下载推荐.docx
《第一节MATLAB中的矩阵的输入湖北民族学院Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第一节MATLAB中的矩阵的输入湖北民族学院Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
设已经定义A=[12345;
108642];
B=[01;
10];
C=[12;
24],即已定义
A=B=C=
123450112
1086421024
则命令:
A=[[A(:
1:
4);
[C,B]],[0204]'
]将A定义成:
A=而A(:
3)=[];
将删除A的第三列,得
12340A=1240
10864210842
120101210
241042404
3命令生成
使用MATLAB命令生成矩阵一般使用下面的命令
1命令linspace,它有两个格式:
a1=linspace(1,100)
%生成一个从1到100的有100个元素的向量
a2=linspace(0,1)
%仍然是有100个元素但是是从0到1的向量
a3=linspace(0,-1)%请与上一个向量进行比较
上面是第一种格式linspace(a,b),它是将a到b等分成100份形成的向量。
第二种格式linspace(a,b,n)中的n为一个正整数,表示是从a到b等分成n份后形成的向量。
例如
a4=linspace(1,100,11)
%从1到100但只形成11个元素的向量
a5=linspace(1,100,10)%自己体会这个命令作用
a6=linspace(0,1,11)'
%加上了“'
”表示转置
a7=linspace(0,-1,10)%自己体会这个命令作用
2命令ones,zeros分别形成元素全为1或全为零的矩阵它也有两种格式。
请观察它们的作用:
ones(6,3)%生成6×
3阶元素全为1的矩阵
ones(5)%生成5阶元素全为1的方阵
zeros(3,6)%生成3×
6阶元素全为零的矩阵
zeros(4)%生成四阶元素全为零的方阵
3命令diag生成对角阵及从矩阵的主对角线生成向量,例如:
diag([1357])%生成了以1357为主对角线的方阵:
ans=
1000
0300
0050
1007
相反如果先定义了一个三阶方阵:
A=[123;
456;
789]
显示:
A=
123
456
789
则命令a8=diag(A)将用A的主对角线生成新的列向量:
a8=
1
5
9
命令eye(n)生成n阶单位方阵,即主对角线上元素为1,其余元素为零的方阵。
例如键入:
A=eye(5)将得到:
A=
10000
01000
00100
00010
00001
第二节MATLAB文件处理
§
1文件编辑
如果要在MATLAB的工作窗定义矩阵,则用鼠标点击屏幕左上方的File选择项,再从中选择New中的M-file项并且用鼠标点击它,就打开了MATLAB文件编辑窗并且可以在此窗中定义MATLAB矩阵了(注意对于已有的文件,可以选择open来打开它,然后对其进行修改)。
在MATLAB文件编辑窗中定义的矩阵与工作窗中定义的方法是完全一样。
并且可以在MATLAB文件编辑窗的菜单中使用菜单命令直接运行。
可以在MATLAB中使用菜单中的“File”中的“Setpath”将当前工作文件夹定义在你正在工作的文件夹。
2MATLAB工作窗中变量值的保存与调用
MATLAB工作窗中的变量在退出MATLAB工作状态后值不能保存,如果需要保存,可以使用命令save将其存储到磁盘上,命令格式有两种:
第一种是用二进制格式来存储。
例如先定义三个矩阵:
A1=[0:
3;
2*ones(4);
4:
-1:
1];
A2=[1324];
A3=zeros(3,1);
生成下列矩阵与向量:
键入:
savefile1A1A2A3
%用二进制格式以文件名file1.mat存储A1,A2,A3
savefile2.mA1A3–ascii
%用ascii码以文件名file2.m存储A1,A3
我们还要注意:
用二进制格式存储的文件连变量名一起存储并可再重新调入时恢复变量的值,而用ASCII码存储的文件只存储了变量的值,而变量名是没有的。
用二进制格式存储的变量,可用命令load调用,调用格式为:
load<
磁盘文件名>
例如,前面用savefile1存储了所有变量A1,A2,A3,调用时只要键入
loadfile1即可。
第三节MATLAB中的矩阵运算
1矩阵运算命令与通常线性代数命令运算的异同
一、MATLAB在运行时是以矩阵为单位进行运算的。
它通常有两种运算,第一种是矩阵运算,运算时满足线性代数中矩阵运算所规定一切运算法则,如加、减、乘,乘方即幂运算(当然运算要符合规定的条件,例如矩阵A与矩阵B相乘,必须A的列数等于B的行数),运算符号:
A+B,A-B,AB(注意“*”不能少)A^n
二、不同之处:
1、与通常矩阵运算不同之处在:
在线性代数中矩阵不能与数相加减,而在MATLAB的矩阵运算中允许矩阵与数相加减。
2、函数命令可以直接作用到矩阵的每一个元素。
3、线性代数中矩阵没有除法,而MATLAB中有矩阵除法,例如:
输入A=[1:
7:
9];
b=[14,32,50]'
;
c=A\b
c=
2
4
4、函数作用到矩阵的每一个元素,例如如果令A=[11/21/3;
1/21/41/8]*pi,即定义
则
三、MATLAB中除法运算的规定与意义:
1、运算定义:
设已经定义好矩阵A与矩阵B,如果矩阵A与矩阵B的行的维数相同,则MATLAB中可以用矩阵A左除矩阵B,即可以令:
X=A\B
如果矩阵A与矩阵B的列的维数相同,则MATLAB中可以用矩阵A右除矩阵B,即可以令:
X=B/A
2、矩阵除法的意义
给出线性方程组AX=B,则X=A给出线性方程组的一个解。
而X=B/A给出了线性方程组XA=B的一个解。
目前我们用MATLAB求线性方程组的解只有三个方法:
当A是可逆方阵时,X=inv(A)*B给出线性方程组AX=B的唯一解。
但是A不可逆时方法失效。
可用命令rref化线性方程组AX=B的增广矩阵为行最简阶梯矩阵方法来求解,但线性方程组可能出现无解(称为“超定”)、唯一解(称为“恰定”)及无穷多解(称为“欠定”)的情形。
无论A是否可逆都可用MATLAB除法求解,并且无论何种情形都是唯一解。
当方程存在唯一解时,三种方法求出的解是一样的。
但是用除法作的解一般精度更高。
方程为“超定”或者“欠定”时解意义则不同。
线性方程组AX=b为欠定时有无穷个解,X=A\b得到其中解分量中零元素为最多的一个特解。
线性方程组AX=b为超定时是无解的,用
X=A\b
得到的是使范数||AX-b||为最小的解。
我们不详细说明这个范数的意义,可理解为使AX-b最接近于零的解。
例如方程组
通解为:
是其中有一个零分量的特解。
输入d=[03250]'
g=A\d
显示g=
1.0e+017*
0.6305
-1.2610
0.6305
再输入h=A*g-d
显示h=32
96
14
因此g不满足A*g=d,只是使A*g-d尽可能接近于零。
2常用的数学运算命令
以下是一些在MATLAB中最常用的数学运算命令(均用小写字母,命令的作用可在MATLAB中用help<
命令>
查询其作用与格式):
一、基本函数运算命令
1、三角函数:
sincostancotseccsc
2、反三角函数:
asinacosatanacotasecacscatan2(四象限反正切)
3、双曲函数:
sinhcoshtanhcothsechcsch
4、反双曲函数:
asinhacoshatanhacothasechacsch
5、复数:
realimagconjangle
6、小数取整:
fix(朝零方向),ceil(朝正无穷方向),floor(朝负无穷方向),round(四舍五入)
7、对数与指数:
log10logexp
8、其它:
sqrtabssignsumprodsolve
二、线性代数运算命令:
1、detinvrankrrefeigcond
行列式求值命令det,矩阵求秩命令rank,求方阵的逆方阵命令,inv求矩阵行最简阶梯阵命令rref,求特征值与特征向量命令eig,求矩阵条件数命令cond
三、多项式运算命令
MATLAB中用向量表示多项式,如a=[12304]表示多项式:
常用的多项式运算命令有:
1、多项式加减法:
在次低的向量前面加零后使其元素个数相同,再按向量加减法运算命令进行。
2、多项式a与多项式b相乘:
c=conv(a,b);
3、多项式a除以多项式b:
[q,r]=deconv(a,b)q是商,r余项)
4、多项式求值:
p1=polyval(a,x)(多项式a在点x处的值)
5、方阵多项式求值:
p2=polyvalm(a,A)(矩阵多项式a在方阵A处的值)
6、多项式求根:
p3=roots(a)(求多项式a的根)
7、多项式微分:
p4=polyder(a)
8、多项式拟合:
p5=polyfit(x,y,n)
例:
x=[11.234.25];
y=x.^3-2*x.^2+3*x-1;
p5=polyfit(x,y,3)
将得出:
p5=1.0000-2.00003.0000-1.0000
四、高等数学中的数值运算命令
在MATLAB数值计算中很少有高等数学中的运算命令,下面只介绍两个:
1、求数值积分:
trapz
2、差分:
diff
MATLAB中也有很多符号运算命令。
但不在本课程中。
在那些符号运算命令中能实现许多高等数学中的运算。
五、显示格式
有formatrat,formatlong,formatshort,formatlongg,formatshortg,
formatlonge,formatshorte,formathex等等。
第四节MATLAB的数组操作
前面我们谈到了MATLAB中有数与矩阵的加减法,这是线性代数中所没有的。
MATLAB中还