目录

语法

说明

示例

逆矩阵

线性方程组求解


inv功能作用是矩阵求逆

语法

Y = inv(X)

说明

Y = inv(X) 计算方阵 X 的逆矩阵。

  • X^(-1) 等效于 inv(X)。

  • x = A\b 的计算方式与 x = inv(A)*b 不同,建议用于求解线性方程组。

示例

逆矩阵

计算一个 3×3 矩阵的逆矩阵。

X = [1 0 2; -1 5 0; 0 3 -9]
X = 3×31     0     2-1     5     00     3    -9Y = inv(X)
Y = 3×30.8824   -0.1176    0.19610.1765    0.1765    0.03920.0588    0.0588   -0.0980

检查结果。理想情况下,Y*X 将生成单位矩阵。由于 inv 使用浮点计算执行矩阵求逆,因此,实际上 Y*X 接近但不完全等于单位矩阵 eye(size(X))。

Y*X
ans = 3×31.0000    0.0000   -0.00000    1.0000   -0.00000   -0.0000    1.0000

线性方程组求解

了解为何通过使用 inv(A)*b 求逆矩阵对线性方程组求解不如使用反斜杠运算符(即 x = A\b)直接求解。

创建一个 500 阶的随机矩阵 A,其条件数 cond(A) 为 1e10,并且其范数 norm(A) 为 1。精确解 x 是一个长度为 500 的随机向量,并且右侧为 b = A*x。因此,线性方程组未正确设置条件但一致。

n = 500;
Q = orth(randn(n,n));
d = logspace(0,-10,n);
A = Q*diag(d)*Q';
x = randn(n,1);
b = A*x;

通过反转系数矩阵 A 对线性方程组 A*x = b 求解。使用 tic 和 toc 获取时间信息。

tic
y = inv(A)*b;
t = toc
t = 0.0212

求计算的绝对误差和残差。

err_inv = norm(y-x)
err_inv = 5.1504e-06
res_inv = norm(A*y-b)
res_inv = 5.9510e-07

现在,使用反斜杠运算符 \ 对同一个线性方程组求解。

tic
z = A\b;
t1 = toc
t1 = 0.0113
err_bs = norm(z-x)
err_bs = 4.0520e-06
res_bs = norm(A*z-b)
res_bs = 3.9167e-15

反斜杠计算方法速度更快,而且残差减少了几个数量级。err_inv 和 err_bs 均为 1e-6 的阶数这个事实直接反映了矩阵的条件数。

此示例的行为非常常见。使用 A\b(而非 inv(A)*b)的速度要快两至三倍,并且会基于计算机准确度生成残差(相对于数据量值而言)。

​        输入矩阵,指定为方阵。如果 X 未正确缩放或接近奇异矩阵,inv 计算的数值将不准确。使用 rcond 或 cond 检查矩阵的条件数。

对于矩阵 X,如果存在一个具有相同大小的矩阵 Y 以便 XY=YX=In(其中 In 是 n×n 单位矩阵),则该矩阵为可逆矩阵。矩阵 Y 称为 X 的逆矩阵。

没有逆矩阵的矩阵是奇异矩阵。对于方阵,仅当其行列式恰好为零时,它才是奇异矩阵。

提示

  • 很少需要为某个矩阵构造显式逆矩阵。当解算线性方程组 Ax = b 时,往往会错误使用 inv。对该方程求解的方法之一是使用 x = inv(A)*b。从执行时间和数值准确性方面而言,一种更好的方法是使用矩阵反斜杠运算符,即 x = A\b。这会使用高斯消去法求解,而不必显式构造逆矩阵。有关详细信息,可以参考mldivide。

算法

inv 执行输入矩阵的 LU 分解(如果输入矩阵是 Hermitian 矩阵,则执行 LDL 分解)。然后它使用结果来形成线性方程组,其解为矩阵求逆 inv(X)。对于稀疏输入,inv(X) 将创建稀疏单位矩阵并使用反斜杠,即 X\speye(size(X))。

Matlab中inv函数的使用相关推荐

  1. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  2. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  3. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  4. matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first

    matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...

  5. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  6. Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)

    Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...

  7. cumsum在matlab中,matlab中cumsum函数和sum函数详解

    调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...

  8. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

  9. Matlab中plot函数及legend函数详解

    Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...

  10. matlab 中max函数用法

    Matlab中max函数在矩阵中求函数大小的实例如下: (1)C = max(A) 返回一个数组各不同维中的最大元素. 如果A是一个向量,max(A)返回A中的最大元素. 如果A是一个矩阵,max(A ...

最新文章

  1. Google使用机器学习助力数据中心节能
  2. shell变量,管道符,作业控制,shell变量,以及变量配置文件
  3. ACM试题 - 括号配对问题 - Java中字符串截取和定位问题
  4. VTK:模型之Finance
  5. 并发编程——进程——进程理论的创建
  6. C++ String类写时拷贝 4
  7. 无线 在linux叫什么地方,请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?...
  8. ​【文末有福利】股票跨度——真实世界的算法
  9. 使用Mongo Shell和Java驱动程序删除MongoDB的示例
  10. 想做视频号,先纠正一点
  11. 关于电脑的基础知识_电脑基础知识:关于硬盘知识你有必要知道的几件事!
  12. 【githubboy】比较实用的 Python 翻译工具库,集成了谷歌、必应、有道、百度等多个翻译平台 API
  13. Github hosts修改
  14. 能够自动感知背景主色调的按钮
  15. 笔记本外接显示器提示输入不支援
  16. 演讲者模式投影到幕布也看到备注_在PPT中插入备注时,如何在放映时只让演讲者看到,而观众看不到...
  17. Windows电脑上最好的3个epub阅读器
  18. MOS管和三级管基础知识总结
  19. cst matlab,CST与Matlab连接设置
  20. MyBatis从入门到精通 PDF 完整版

热门文章

  1. win10以太网未识别的网络解决方法
  2. Python NLPIR(中科院汉语分词系统)的使用 十五分钟快速入门与完全掌握
  3. codeforces 1553B Reverse String
  4. Windows管理用户账号
  5. Method annotated with @Bean is called directly. Use dependency injection instead
  6. 浙大竺可桢学院混合班计算机专业,起底黄峥毕业的浙大混合班:学霸不算牛 个个是学神...
  7. 如何使用阿里云进行人脸和身份证头像验证比对(人证核验接口API)--java
  8. discuz论坛快速登录、分享帐号一键登录方法
  9. Win7下面安装VS2003
  10. Clion安装教程(Linux)