应用MATLAB求解线性代数题目(二)——矩阵
目录
矩阵的秩
矩阵A与B的和与差
矩阵的数乘
矩阵A与B的乘积
转置矩阵
伴随矩阵
可逆矩阵:
简化行阶梯(行最简)矩阵
矩阵A的n次方
矩阵的秩
先看一下矩阵的秩的定义,摘自百度百科。
方阵(行数、列数相等的矩阵)的列秩和行秩总是相等的,因此它们可以简单地称作矩阵A的秩。通常表示为r(A),rk(A)或rank(A)。
m × n矩阵的秩最大为m和n中的较小者,表示为 min(m,n)。有尽可能大的秩的矩阵被称为有满秩;类似的,否则矩阵是秩不足(或称为“欠秩”)的。
设A是一组向量,定义A的极大无关组中向量的个数为A的秩。
定义1. 在m*n矩阵A中,任意决定α行和β列交叉点上的元素构成A的一个k阶子矩阵,此子矩阵的行列式,称为A的一个k阶子式。
例如,在阶梯形矩阵中,选定1,3行和3,4列,它们交叉点上的元素所组成的2阶子矩阵的行列式 就是矩阵A的一个2阶子式。
定义2. A=(aij)m×n的不为零的子式的最大阶数称为矩阵A的秩,记作rA,或rankA或R(A)。
特别规定零矩阵的秩为零。
即存在r阶子式不为0,任意r+1阶子式(若还有)必全为0。
显然rA≤min(m,n) 易得:
若A中至少有一个r阶子式不等于零,且在r<min(m,n)时,A中所有的r+1阶子式全为零,则A的秩为r。
由定义直接可得n阶可逆矩阵的秩为n,通常又将可逆矩阵称为满秩矩阵, det(A)≠0;不满秩矩阵就是奇异矩阵,det(A)=0。
由行列式的性质知,矩阵A的转置AT的秩与A的秩是一样的,即rank(A)=rank(AT)。
MATLAB求解矩阵的秩:
>> A=[1 2 3;4 5 6;7 8 9]A =1 2 34 5 67 8 9>> rank(A)ans =2
矩阵A与B的和与差
相加和相减。相同维数的矩阵可以相加或相减。对如下矩阵:
>> A=[2 3;4 5;6 7]A =2 34 56 7>> B = [1 0;2 3;0 4]B =1 02 30 4>> A+Bans =3 36 86 11>> A-Bans =1 32 26 3
矩阵的数乘
>> A=[2 3;4 5;6 7]A =2 34 56 7>> 5*Aans =10 1520 2530 35
矩阵A与B的乘积
进行矩阵的乘积运算,第一个矩阵中的列数与第二个矩阵中的行数必须相等。
注意:矩阵相乘不满足交换定理。
>> A=[2 3;4 5;6 7];
>> B=[1 0 2;3 0 4];
>> A*Bans =11 0 1619 0 2827 0 40
如果第一个矩阵中的列数与第二个矩阵中的行数不相等相等,那么矩阵A与B相乘会报错。
>> A=[2 3;4 5;6 7];
>> B = [1 0;2 3;0 4];
>> A*B
错误使用 *
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
MATLAB给出点乘的提示。矩阵的点乘满足交换律。
矩阵的点乘则必须满足:矩阵A点.*矩阵B,矩阵A和矩阵B的行数和列数必须相等(就是说矩阵A的行数等于矩阵B的行数,矩阵A的列数等于矩阵B的列数),方法是对应每个元素相乘,相乘得到的最终结果为和矩阵A和矩阵B相同维度的矩阵。
>> A=[2 3;4 5;6 7];
>> B = [1 0;2 3;0 4];
>> A.*B %即2=2*1,0=3*0,8=4*2ans = 2 08 150 28
叉乘和点乘是两种不同的运算。
点乘,也叫数量积。结果是一个向量在另一个向量方向上投影的长度,是一个标量。
叉乘,也叫向量积。结果是一个和已有两个向量都垂直的向量。
(4 条消息) 点乘和叉乘的区别是什么? - 知乎 (zhihu.com)(4 条消息) 点乘和叉乘的区别是什么? - 知乎 (zhihu.com)
转置矩阵
A =1 2 34 5 67 8 9>> B=A'B =1 4 72 5 83 6 9
伴随矩阵
运用adjoint()函数,意为伴随。
A=[1 2;3 4]A =1 23 4>> adjoint(A)ans =4.0000 -2.0000-3.0000 1.0000>> A=[1 2 3;4 5 6;7 8 9]A =1 2 34 5 67 8 9>> adjoint(A)ans =-3.0000 6.0000 -3.00006.0000 -12.0000 6.0000-3.0000 6.0000 -3.0000
对于可逆矩阵或非奇异矩阵,可采用下面这种方法:
>> A=[1 3;1 2];
>> inv(A)*det(A)ans =2 -3-1 1
可逆矩阵:
根据线性代数矩阵的一些重要性质:
那么可逆矩阵指的都是n阶方阵且行列式不等于0
>> A=[1 3;1 2];
>> inv(A)ans =-2 31 -1>> A*ansans =1 00 1
或者采用这种方法:
>> A=[1 3;1 2]A =1 31 2>> A^-1ans =-2 31 -1
某些情况下会出现行列式为零,竟然可以求解逆矩阵?的情况,原因一般是inv()函数算法精度不够的问题;亦或者是行列式结果看起来为零未必真为零,可能只是很小的数值,比如在command window里默认只显示了几位小数,看起来结果是0.0000(MATLAB默认显示四位小数),但实际上并不一定为0。
inv是数值计算,会受到精度影响,尤其是比较大的矩阵
另外,matlab更推荐使用左除和右除来避免使用inv函数
>> a = [1,2;3 4];
b = [3,4;5,6];
>> a*inv(b)ans =2.0000 -1.00001.0000 0.0000>> a/b %实际工程应用中一般选择这种方式,运算结果更加准确ans =2.0000 -1.00001.0000 -0.0000
简化行阶梯(行最简)矩阵
A =1 2 34 5 67 8 9>> B=rref(A)B =1 0 -10 1 20 0 0
对于非方阵也可以用rref()命令简化行阶梯矩阵;
>> A = magic(3);
A(:,4) = [1; 1; 1]A =8 1 6 13 5 7 14 9 2 1>> R = rref(A)R =1.0000 0 0 0.06670 1.0000 0 0.06670 0 1.0000 0.0667
矩阵A的n次方
>> A=[0 0 0;2 0 0;1 3 0]A =0 0 02 0 01 3 0>> A^2ans =0 0 00 0 06 0 0>> A^3ans =0 0 00 0 00 0 0
我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!
求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议!
应用MATLAB求解线性代数题目(二)——矩阵相关推荐
- 应用MATLAB求解线性代数题目(四)——线性方程组
目录 求解齐次线性方程组 求解非齐次线性方程组 同解方程组 向量形式.矩阵形式的方程组 则线性表出的问题可以通过方程组求解. 求解齐次线性方程组 求齐次线性方程组的基础解系的命令: B=null(A) ...
- 应用MATLAB求解线性代数题目(一)——行列式
MATLAB是基于矩阵的.用于进行数学和工程计算的系统.我们可以将MATLAB设想成某种技术计算的语言.MATLAB处理的所有变量都是矩阵.所以,运用MATLAB可以轻松地解决一些线性代数题目. 行列 ...
- 应用MATLAB求解线性代数题目(三)——n维向量
目录 判定线性相关并给出极大无关组 向量空间--维数 size()函数 判定线性相关并给出极大无关组 MATLAB中没有直接判定线性相关并给出极大无关组. 根据线性代数的知识,先求出秩,根据秩的大小与 ...
- 应用MATLAB求解线性代数题目(三)——n维向量和矩阵的基本语法
向量的定义 向量就是只有一行或者一列的特殊矩阵,而矩阵包含向量. 在 MATLAB 中,一维数组就是向量,二维数组就是矩阵. 1) 直接输入向量 >> a=[1,3,2,4]a =1 3 ...
- 用matlab求解线性代数方程组,线性代数方程组数值解法与MATLAB实现综述
线性代数方程组数值解法及MATLAB 实现综述 廖淑芳 20122090 数计学院 12计算机科学与技术1班(职教本科) 一.分析课题 随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算 ...
- MIT线性代数笔记二 矩阵消元
文章目录 1. 消元 Elimation 2. 回代 Back-Substitution 3. 消元矩阵 Elimination Matrices 4. 置换矩阵 Permutation 5. 逆矩阵 ...
- Matlab与线性代数 -- 数组与矩阵的乘幂
本微信图文详细介绍了数组的乘幂运算power()与矩阵的乘幂运算mpower().
- Matlab与线性代数 -- 全1矩阵
打磨一项技能最需要的就是耐心,我们知道做一件事情不会一蹴而就,需要长时间的积累.关于Matlab的打磨会持续很长的时间,每天学习一个知识点,一年下来就不得了.要有耐心,要有耐心,跟着我们每天花5分钟的 ...
- matlab求解参数线性规划问题,实验三十用MATLAB求解线性规划问题
<实验三十用MATLAB求解线性规划问题>由会员分享,可在线阅读,更多相关<实验三十用MATLAB求解线性规划问题(27页珍藏版)>请在人人文库网上搜索. 1.实验三十 用MA ...
最新文章
- Self20171218_TestNG+Maven+IDEA环境搭建
- CMakeListx.txt 编辑语法学习
- Pycharm详细安装教程
- jquery ajax异步调用
- 大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
- python代码运行到一半终止_Python 程序运行时卡住,既不报错,也不停止,也不动,是什么原因?...
- 【英语学习】【WOTD】zero-sum 释义/词源/示例
- 风起云涌、战火通明,2019 年云计算大盘点
- mysql数据库是以表为单位存储的,创建一个以数据库名称为参数的MySQL存储过程,以列出具有特定数据库中详细信息的表。...
- 30天自制操作系统 定时器
- C++/CLI学习入门
- # java 核心技术卷1 (原书第11版)通读 第一章:java的基本程序设计结构
- 医学超声成像—合成孔径法(Synthetic Aperture Methods)[3]
- 柯美服务器处理文件慢,处理打印机在打印文件时打印速度过慢的原因 看完你就知道了...
- 2022: LAVT: Language-Aware Vision Transformer for Referring Image Segmentation
- Javaweb开发学习笔记(三)
- java网课|匿名对象Random对象数组
- Win11打印机无法打印怎么办?Win11打印机无法打印解决方法
- 前端性能优化基础知识--幕课网
- java tailer apache_工具类commons-io的Tailer用来监控文件
热门文章
- Multiple Landmark Detection using Multi-AgentReinforcement Learning基于多智能体强化学习的多重地标检测
- unbind hover in jQuery
- UE5的Lumen和传统光线追踪对比,哪个更好?
- vue移动端ui框架vant如何自定义引入阿里巴巴图标库
- php实现彩票走势图组选图用颜色区分
- 压缩包需要计算机管理员权限,压缩文件删除不了要访问权限解决方法
- 好用的word转换成pdf转换器!你值得拥有
- vue element上一步下一步跳转
- 寒假来了,孩子学英语必看的8部动画!(内附资源)
- SOLIDWORKS 无法设置中文语言的解决办法