台湾国立大学郭彦甫Matlab教程笔记(22) Cramer’s method(Inverse matrix)

matrix left division左除:\ or mldivide()

solving systems of linear equations Ax=b using factorization methods:

求Ax=b中的x,只需要A\b
实际上,A\b这个算式matlab进行了很多判断,进行了很多演算,时间复杂度有点高
左除本质上也是succesive elemination 逐次消去法

看一个线性方程组

matlab指令:
A=[1,2,1;2,6,1;1,1,4];
b=[2;7;3];
x=A\b

执行的结果:算出来x的值:

一道练习题:需要结合上一次笔记

关键点在于用matlab中矩阵把线性方程表述出来,然后求解,应该不难。
笔者的练习如下:

思考:这里需要用符号法syms吗?
我的练习:

syms R1 R2 R3 R4 R5 V1 V2
A=[R1 0 0 R4 0; 0 R2 0 -R4 R5; 0 0 -R3 0 R5; 1 -1 0 -1 0; 0 1 -1 0 -1]
b=[V1;0;V2;0;0]

执行一下,发现可以:

接下来就是求解的问题了,我想到的是用左除\

x=A\b

运行结果,这个用符号表示的线性方程组解出来了。


下面讲一些矩阵分解的一些函数

Matrix decomposition funcitons矩阵分解函数

qr(): orthogonal-triangular decomposition 正交三角矩阵的分解
ldl(): Block LDL’s factorization for Hermitian indefinite matrices(厄密特不定矩阵)
ilu():Sparse稀疏 incomplete LU factorization 稀疏矩阵的LU不完全分解
lu();LU matrix factorization LU分解
chol(): Cholesky factorization Cholesky 针对的是正定矩阵的分解,也称平方根法
gsvd(): generalized singular value decomposition 广义奇异值分解
svd():singular value decomposition奇异值分解

下面来到 cramer’s method

Cramer’s(Inverse) method


A的逆矩阵: A^-1:inverse of A

可以求出x矩阵

Inverse Matrix逆矩阵

对于矩阵A,A的逆矩阵被定义为:
det(A)是矩阵A的行列式,是determinant的缩写
adj(A)是A矩阵的伴随矩阵(对整个矩阵求代数余子式,这些代数余子式构成的新的矩阵) 在这里是A中的a 和d 交换,b和c之间加负号

性质:
A的逆矩阵再取逆,还是A;
kA的逆矩阵等于1/k乘以A的inverse

接下来讲解如何用cramer’s method 求解 方程组

solving equations using Cramer’s Method

下面的方程组例子


我们要求解x

在matlab中

A=[1,2,1;2,6,1;1,1,4];
b=[2;7;3];
x=inv(A)*b

可以得到这个方程组的解


Cramer’s method 有一个问题:A的逆矩阵不一定存在
三元一次方程组 ,是三个平面之间的关系
可能有唯一解,可能无限解,可能无解
举例:矩阵中的两行成比例,A的逆矩阵不存在

singular matrix
成为奇异矩阵,退化矩阵,不可逆矩阵

下面是作业题:

我的思考:如何画一个平面
可能要用到plot3()函数
参考上几次的笔记:matlab3D画图函数
x=-20:0.1:20;
y=0:0.1:40;
[X,Y]=meshgrid(x,y);
Z1=-X-Y;
Z2=-X+Y;
Z3=-X/3;
hold on
mesh(X,Y,Z1,‘r’,X,Y,Z2,‘b’,X,Y,Z3,‘g’);
hold off;
报错:mesh不能这样用

修改成为下面这样:

x=-20:0.1:20;
y=0:0.1:40;
[X,Y]=meshgrid(x,y);%绘制网格
Z1=-X-Y;%三个平面的表达式
Z2=-X+Y;
Z3=-X/3;
hold on
mesh(X,Y,Z1);%绘图
mesh(X,Y,Z2);
mesh(X,Y,Z3);
hold off;

然后得到的结果:(使用的是按钮:三位旋转,画图出来之后,在菜单栏上有)

另外一个角度:

当然,也可以把mesh 替换为 surf()函数,这样更逼真

接下来回顾一下 Cramer’s Method 的problem

其实,这个奇异矩阵(或者不可逆矩阵)在这种情况下也是。当一个矩阵的行列式很接近于零的时候,也称为不可逆矩阵,这时候就不能用 Cramer’s method 来求解了

遇到 singular 的时候,想要另外处理

Functions to check matrix condition

两个函数:
1)cond:matrix condition number 判断矩阵是否健康,越小越健康(线性独立性越好)
2)rank(): matrix rank 矩阵的秩

比较两个矩阵:

如何看矩阵健不健康,需要Ax=b 这个原始公式,b已知,现在需要判断矩阵A健不健康
做法是:让A变化一点,看x变化多少,如果x变化很小,说明矩阵A很健康

用matlab看一下 两个矩阵的健康程度:从理论上讲,B矩阵比A健康
A=[1 2 3; 2 4.0001 6; 9 8 7];
cond(A)

B=[1 2 3; 2 5 6; 9 8 7];
cond(B)


可以看出来A矩阵是一个 ill-conditioned 的矩阵

【总结一下】
本文记录了线性方程组的解法(二):逆矩阵的方法。
同时学习了一下singular矩阵(奇异矩阵)的知识。
会使用cond()函数判断矩阵是否健康,使用rank()函数求得矩阵的秩(几个线性独立的向量)

台湾国立大学郭彦甫Matlab教程笔记(22) Cramer's method(Inverse matrix逆矩阵法)相关推荐

  1. 台湾国立大学郭彦甫Matlab教程笔记(21)linear equations(高斯消去法和追赶法)

    台湾国立大学郭彦甫Matlab教程笔记(21) today: linear equation 线性方程 linear system 线性系统 我们先看第一部分 linear equation 假定一个 ...

  2. 台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric)

    台湾国立大学郭彦甫Matlab教程笔记(20) root finding(numeric) symbolic vs. numeric符号法和数值法的区别对比 symbolic 1)advantages ...

  3. 台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration

    台湾国立大学郭彦甫Matlab教程笔记(17)numerical integration 数值积分 calculating the numerical value of a definite inte ...

  4. 台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numerical differentiation

    台湾国立大学郭彦甫Matlab教程笔记(16) 数值微分 numeric differentiation 复习:diff()函数用来计算vector前后 entry的差异 数值微分继续 various ...

  5. 台湾国立大学郭彦甫Matlab教程笔记(15)polynomial integration 多项式积分

    台湾国立大学郭彦甫Matlab教程笔记(15) Polynomial integration多项式积分 一个多项式和它的积分如下 MATlAB中如何计算积分? polynomial integrati ...

  6. 台湾国立大学郭彦甫Matlab教程笔记(14)polynomial differentiation多项式微分

    台湾国立大学郭彦甫Matlab教程笔记(14) today: polynomial differentiation and integration多项式微分与积分 numerical differen ...

  7. 台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下

    台湾国立大学郭彦甫Matlab教程笔记(12) advanced 2D plot 下 上文记录的是关于统计的图标的绘制 下面我们来到另一个模块:颜色 fill()填充函数 功能:某一个封闭曲线,图上特 ...

  8. 台湾国立大学郭彦甫Matlab教程笔记(11) advanced 2D plots 上

    台湾国立大学郭彦甫Matlab教程笔记(11) today: 1.advanced 2D plots 2.color space色彩使用 3.3D plots 图形概览,做研究的时候需要选择图形 sp ...

  9. 台湾国立大学郭彦甫Matlab教程笔记(9) basic plotting

    台湾国立大学郭彦甫Matlab教程笔记(9) today: 1.basic plotting 2.graphical objects properties basics matlab has a po ...

最新文章

  1. nginx location 配置详细解释
  2. 第一家科创板IPO的AI公司:年净利1.58亿,华为小米背后功臣,北大物理系校友创办...
  3. html多窗口排列顺序,多窗口页面(Frames)
  4. [转]ReiserFS与ext3的比较
  5. 学习 SQL 语句 - Select(4): 排序
  6. Apache 和 Tomcat 服务器的区别
  7. leetcode 563 二叉树的坡度
  8. Echarts数据可视化series-heatmap热力图,开发全解+完美注释
  9. Django 结构及处理流程分析
  10. 光谱共焦的测量原理及厚度测量模式
  11. 前端学习之路---node.js(二)
  12. 亚马逊服务器 购买 流程_亚马逊环如何使我们对购买的每种产品都抱有偏执
  13. 【二维数组】方阵主对角线元素对换
  14. Apache Passenger配置常用参数解读
  15. 3_IMX6ULL启动流程
  16. linux下通过串口ftp,eftp简单文件传输工具支持串口、网络、Windows、Linux、单片机平台-博客...
  17. 蓝桥杯软件类竞赛---手算题攻略
  18. 机器人的灵魂(1)——单片机C程序开发
  19. 人工智能在安防领域应用及UltraLAB EX系列高性能图形工作站
  20. 微信能上网,而浏览器不能上网

热门文章

  1. 第七章——DMVs和DMFs(1)
  2. 织梦后台添加友链,前台不显示|修改友情链接的显示行数
  3. ThinkPHP下隐藏index.php以及URL伪静态
  4. css圆角矩形及去掉空格属性
  5. 重建输入表 - 脱壳篇04
  6. Javascript中的Document对象详解
  7. 神经网络的分类准确率到底是一个什么物理量
  8. 工业级服务器销售电话,工业级服务器
  9. 【UGV】小车一些图片
  10. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-目录