Matlab与线性代数_第1页
Matlab与线性代数_第2页
Matlab与线性代数_第3页
Matlab与线性代数_第4页
Matlab与线性代数_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab与线性代数内容概要基本要求Matlab与线性代数结合示例线性代数在实际中的应用基本要求会给矩阵赋值会进行矩阵的基本运算,包括:加、减、数乘,乘法,转置,幂等运算会用命令inv计算矩阵的逆会用命令det计算行列式;会用命令rank计算矩阵的秩;会用命令rref把矩阵变为行最简型;(上三角矩阵)会用命令rref计算矩阵的逆会用命令rref解方程组的解会用命令rref找出向量组的最大无关组会用命令null计算齐次线性方程组的基础解系会用左除运算计算非齐次方程组的特解会用命令orth把向量组正交规范化会用命令eig计算矩阵的特征值和特征向量会用命令eig把二次型标准化会用命令eig判断二次

2、型的正定性MATLAB 软件的矩阵赋值方法命令 说明help inv 在命令窗口中显示函数inv的帮助信息 创建矩阵, 矩阵行元素分割符号; 矩阵列元素分割符号% 注释行eye(n)创建n阶单位矩阵zeros(m,n)创建mn阶零矩阵zeros(n)创建n阶零方阵ones(m,n)创建mn阶元素全为1的矩阵rand(m,n)创建mn阶元素为从0到1的均匀分布的随机数矩阵round(A)对矩阵A中所有元素进行四舍五入运算inv(A)求矩阵A的逆A-1 用幂运算求矩阵A的逆例1 用MATLAB软件生成以下矩阵:在MATLAB命令窗口输入:A=9,3,2;6,5,6;6,6,0 % 矩阵同行元素以逗

3、号或空格分割或:A=9 3 2;6 5 6;6 6 0 % 行与行之间必须用分号或回车分隔或:A=9 3 2 6 5 6 6 6 0结果都为:A = 9 3 2 6 5 6 6 6 0A=round(rand(3)*10) % rand(3):生成3阶元素为01的随机实数方阵 % round():对矩阵元素进行四舍五入运算 MATLAB的基本运算符号运算符号*/说明赋值加减乘左除右除幂运算转置inv(A): 求矩阵A的逆. rank(A):求矩阵A的秩。 A=6,9,5;0,5,2;2,9,1;B=inv(A)若矩阵不是满秩的,则逆是不存在的。A=-16,-4,-6;15,-3,9;18,0,

4、9B=inv(A)运行后会得到警示语:“此矩阵接近奇异,数据尺度很差,结果可能不准确。逆条件数= ”。左除,右除: 方程D*X=B,设X为未知矩阵,若X存在,则定义X=DB,称之为“左除”。 从D*X=B的阶数检验可知,B与D的行数相等,因此,左除时的阶数检验条件是:两矩阵行数必须相等。 如果原方程的未知矩阵在左,而系数矩阵在右,即X*D=B,按同样方法定义X=B/D,称之为“右除”。 同理,右除时的阶数检验条件是:两矩阵列数必须相等。例2:已知矩阵 , 且满足计算矩阵 和解:方法一:利用求逆矩阵的方法,输入:A=6,9,5;0,5,2;2,9,1B=6,6,2;1,0,4;2,8,1P=B*

5、inv(A)Q=inv(A)*B方法二:利用MATLAB软件特有的矩阵“左除”和“右除”运算,输入:A=6,9,5;0,5,2;2,9,1B=6,6,2;1,0,4;2,8,1P=B/A % 矩阵右除Q=AB % 矩阵左除例3 利用克拉姆法则求解方程组det(A) :求方阵A的行列式.% 用克莱姆法则求解方程组clear % 清除工作空间中的各个变量n=input(方程个数n) % n=input()为数据输入函数,单引号内的字符串起说明作用。请用户输入方程个数A=input(系数矩阵A=) % 请用户输入方程组的系数矩阵b=input(常数列向量b=) % 请用户输入常数列向量if (siz

6、e(A)=n,n) | (size(b)=n,1) % 条件语句,和C语言功能类似。判断矩阵A和向量b输入格式是否正确fprintf(输入不正确,要求A是%d阶方阵,b是%d维列向量, n, n)elseif det(A)=0 % 判断系数行列式是否为零 disp(系数行列式为零,不能用克莱姆法则解此方程。)% disp:显示字符串 else for i=1:n % 循环语句,计算x1,x2,.xn B=A; % 构造与A相等的矩阵B B(:,i)=b; % 用列向量b替代矩阵B中的第i列 x(i)=det(B)/det(A); % 根据克莱姆法则计算x1,x2,.xn end x=x % 以

7、列向量形式显示方程组的解end例4-求解方程组通解rref 函数:U=rref(A) 对矩阵A进行初等行变换,矩阵U为矩阵A的最简行阶梯矩阵。A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;b=-2;7;-23;43;U=rref(A,b) u,ip=rref(A) 对矩阵A进行初等行变换, 第一个输出u为矩阵A的最简行阶梯矩阵,第二个输出ip为首非零元所在的列号构成的行向量。u,ip=rref(A,b)null函数: null(A,r) 用于计算齐次线性方程组Ax0的基础解系,r表示求其有理数表示式,否则它给出的是规范化正交基。A=2,

8、4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;x=null(A,r) clear % 清除工作空间中的各个变量 clc %清空工作空间A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19; % 输入系数矩阵Ab=-2;7;-23;43; % 输入常数列向量bR,s=rref(A,b); % 把增广矩阵的最简行阶梯矩阵赋给R % 而R的所有首非零元所在的列号构成了行向量sm,n=size(A); % 矩阵A的行数、列数赋给了变量m、nx0=zeros(n,1); % 将特解x0初始化为N维零列向量

9、r=length(s); % 矩阵A的秩赋给变量rx0(s,:)=R(1:r,end); % 将矩阵R的最后一列按基准元素的位置给特解x0赋值disp(非齐次线性方程组的特解为:)x0 % 显示特解x0disp(对应齐次线性方程组的基础解系为:)x=null(A,r) % 得到齐次线性方程组Ax0的基础解系x则方程组的通解为:齐次线性方程组的特解还可以用Matlab的矩阵左除运算来求得,直接在MATLAB命令窗口输入以下命令:A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;b=-2;7;-23;43; x0=Ab % 用矩阵左除运算求得方

10、程组特解x0 x=null(A,r) % 得到齐次线性方程组Ax0的基础解系x注意:左除可以用来解方程数少于未知数个数的情况。其中特解x0 =0 0 7.3333 0 0.3333与前一方法的特解不同,这是因为这个方程有无穷多解,而左除法得到的特解是令x0中某个或某些元素为0的一个特殊解。方程组的通解为:例5-求解向量组的极大无关组已知向量组求出它的最大无关组,并用该最大无关组来线性表示其它向量 解:用笔计算的过程为: ,对矩阵 进行初等行变换,最后变为最简行阶梯矩阵:该矩阵基准元素所在的列号为1,2,4,则原 向量组的一个最大无关组为: 。根 据该矩阵的第3列,可以得到: 同理,可以得到:%

11、 找向量组的最大无关组,并用它线性表示其它向量clearclca1=1;1;0;2;2; % 输入5个列向量a2=3;4;0;8;3;a3=2;3;0;6;1;a4=9;3;2;1;2;a5=6;-2;2;-9;2;A=a1,a2,a3,a4,a5; % 由5个列向量构造矩阵AR,s=rref(A); % 把矩阵A的最简行阶梯矩阵赋给了R % 而R的所有首非零元所在的列号构成了行向量s % 向量s中的元素即为最大无关组向量的下标r=length(s); % 最大无关组所含向量个数赋给rfprintf(最大线性无关组为:) % 输出字符串for i=1:r fprintf(a%d ,s(i) %

12、 分别输出最大无关组的向量a1,endfor i=1:r % 从矩阵A中取出最大无关组赋给A0 A0(:,i)=A(:,s(i);endA0 % 显示最大无关组矩阵A0s0=1,2,3,4,5; % 构造行向量s0for i=1:r s0(s(i)=0; % s(i)是最大无关组的列号end % 若s0的某元素不为0,表示该元素为矩阵A中% 除最大无关组以外其它列向量的列号s0=find(s0); %find函数用于计算向量s0中非零元素的下标, 删除s0中的零元素 % 此时s0中元素为其它向量的列号for i=1:5-r % 用最大无关组来线性表示其它向量fprintf(a%d=,s0(i)

13、for j=1:r fprintf(%3d*a%d+ ,R(j,s0(i),s(j); end fprintf(bb n); % 去掉最后一个”+”end例6-向量组规范正交化 设向量组: 求由这三个向量生成的子空间V的一个标准正交基。 解:在MATLAB命令窗口输入: a1=1;2;3;a2=-1;1;2;a3=5;1;0;A=a1,a2,a3P=orth(A) % 求出矩阵A的列向量组构成空间的一个正交规范基% P的列构成了空间V的一个标准正交基% P的列数反应了空间V的维数例7-求矩阵的特征值和特征向量求矩阵A的特征值和特征向量,并判断矩阵是否可以对角化eig函数: r=eig(A),

14、r为一列向量,其元素为矩阵A的特征值。 V,D=eig(A), 矩阵D为矩阵A特征值所构成的对角阵,矩阵V的列为矩阵A的单位特征向量,它与D中的特征值一一对应。clcA=1,-1,0;4,-3,0;1,0,1; V,D=eig(A) 从矩阵D可以看出,-1 是矩阵A的二重特征根,属于这个特征根的特征向量是否存在两个线性无关的特征向量,需要分析齐次线性方程组(A+I)x=0解空间的维数是否等于2,即分析3rank (A+ I)是否等于2。在MATLAB命令窗口继续输入: % 判断齐次线性方程组(A+I)x=0解空间的维数是否为2if 3-rank(A+eye(3)=2 % 如果解空间维数为2,则存在2个线性无关特征向量 disp(能对角化); elsedisp(不能对角化);end 例8 判断矩阵的正定性解:在MATLAB命令窗口输入:A=1,1,-1;1,2,-1;-1,-1,5;lamda_A=eig(A)例9 二次型标准化用正交变换法将二次型 化为标准形。解:在MATLAB的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论