matlab 入门(三)线性代数

这篇具有很好参考价值的文章主要介绍了matlab 入门(三)线性代数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

矩阵基本数值的运算

1. 四则运算

%%    + - * /即可执行四则运算中的加减乘除 
>> a=ones(3),b=eye(3)
a=a+1,a=a/2
c=a-b,d=a*b
a=rand(3,2)
b=randn(2,3)


a =

     1     1     1
     1     1     1
     1     1     1


b =

     1     0     0
     0     1     0
     0     0     1


a =

     2     2     2
     2     2     2
     2     2     2


a =

     1     1     1
     1     1     1
     1     1     1


c =

     0     1     1
     1     0     1
     1     1     0


d =

     1     1     1
     1     1     1
     1     1     1


a =

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


b =

   -0.4336    3.5784   -1.3499
    0.3426    2.7694    3.0349



2. 矩阵的左除和右除

 左除:A\B=A-1*B,A为满秩矩阵;
 右除:A/B=A*B-1,B为满秩矩阵
>> A=[1 2 3;2 3 4;3 4 7];
         B=[6;9;14];X=A\B

X =

    1.0000
    1.0000
    1.0000

3. 矩阵的乘方和开方

在MATLAB中,用“A^n”来计算矩阵A的n次方,
用“sqrtm”函数来计算矩阵的开方
(sqrtm(A)求的是满足X*X=A的矩阵X。)

>> A=[1,2;2,1]
X=sqrtm(A)
Y=A^0.5
XX=X^2
A =
     1     2
     2     1

X =

   0.8660 + 0.5000i   0.8660 - 0.5000i
   0.8660 - 0.5000i   0.8660 + 0.5000i

Y =

   0.8660 + 0.5000i   0.8660 - 0.5000i
   0.8660 - 0.5000i   0.8660 + 0.5000i

XX =

    1.0000    2.0000
    2.0000    1.0000

4. 矩阵的指数和对数运算

矩阵对数运算与矩阵指数运算互为逆运算,
可以分别用函数expm和logm来实现。

Expm: 以e为底对矩阵求指数,并不是对每个元素求指数,对每个元素求指数的指令是exp。

>> A=[1 2 3;4 5 6;7 8 9]
Y=expm(A)
A_expm_logm=logm(Y)

A =

     1     2     3
     4     5     6
     7     8     9

Y =

   1.0e+06 *

    1.1189    1.3748    1.6307
    2.5339    3.1134    3.6929
    3.9489    4.8520    5.7552

A_expm_logm =

    1.0000    2.0000    3.0000
    4.0000    5.0000    6.0000
    7.0000    8.0000    9.0000

>> 

5.向量的点积、差积和混合积

MATLAB中计算点积和差积的函数分别为dot和cross,
而混合积是点积和叉积的复合运算,
它的计算也是依靠以上两个函数。

Y =

0.8660 + 0.5000i 0.8660 - 0.5000i
0.8660 - 0.5000i 0.8660 + 0.5000i

XX =

1.0000    2.0000
2.0000    1.0000


##  4. 矩阵的指数和对数运算
矩阵对数运算与矩阵指数运算互为逆运算,
可以分别用函数expm和logm来实现。

Expm: 以e为底对矩阵求指数,并不是对每个元素求指数,对每个元素求指数的指令是exp。

```matlab
>> A=[1 2 3;4 5 6;7 8 9]
Y=expm(A)
A_expm_logm=logm(Y)

A =

     1     2     3
     4     5     6
     7     8     9

Y =

   1.0e+06 *

    1.1189    1.3748    1.6307
    2.5339    3.1134    3.6929
    3.9489    4.8520    5.7552

A_expm_logm =

    1.0000    2.0000    3.0000
    4.0000    5.0000    6.0000
    7.0000    8.0000    9.0000

>> 

矩阵的特征参数运算

1. 矩阵的行列式、秩和逆运算

在MATLAB中,分别用函数det、rank

和inv来计算矩阵的行列式、秩和逆矩阵。
例如:
A1=[1 2 3;4 5 6;7 8 0];
rank(A1),det(A1),inv(A1)
A2=[1 2 3;4 5 6;2 4 6];
rank(A2),det(A2),inv(A2)

2. 矩阵的特征参数运算

矩阵A的特征值λ和特征向量v满足
关系式:Av=λv。
  在MATLAB中,可用eig函数求出矩阵
的特征值和特征向量。
例如:

>> A=magic(3),
lambda=eig(A),[V,D]=eig(A)
A =
     8     1     6
     3     5     7
     4     9     2

lambda =

   15.0000
    4.8990
   -4.8990

V =

   -0.5774   -0.8131   -0.3416
   -0.5774    0.4714   -0.4714
   -0.5774    0.3416    0.8131

D =

   15.0000         0         0
         0    4.8990         0
         0         0   -4.8990

3. 矩阵(向量)的范数运算

  在MATLAB中,用norm和normest函数

来计算向量和矩阵X的范数。其使用格式为:
norm(X)、norm(X,2):计算X的2范数;
norm(X,1):计算X的1范数;
norm(X,inf):计算X的无穷范数;
normest(X):只能计算X的2范数,并且是
2范数的估计值,适用于计算norm(X)比较费
时的情况。

clear
clc
w=gallery('cauchy',1000);
t1=clock;
w_norm=norm(w)
t2=clock;
t_norm=etime(t2,t1)
t3=clock;
w_normest=normest(w)
t4=clock;
t_normest=etime(t4,t3)

w_norm =

    2.2469


t_norm =

    0.0730


w_normest =

    2.2469


t_normest =

    0.0220

>> 
               

矩阵的分解运算

矩阵分解是把一个矩阵分解成几个
“较简单”的矩阵连乘积的形式。
常用的矩阵分解的方法有:
三角分解(LU)、正交分解(QR)、
特征值分解(EIG)、奇异值分解(SVD)和
Chollesky分解(CHOL)等。

1.LU分解

A=LU,L是一个下三角阵与置换矩阵的
乘积(L经过行交换可化为下三角阵),
U为一个上三角阵。
LU分解在MATLAB中可以用函数lu来实现。

>> A=[1 2 3;4 5 6;4 2 6];
%A=[5 -2 0;-2 6 2;0 2 7];
[L,U]=lu(A)    %A=LU
[L1,U,P]=lu(A)  %PA=L1U,L=P-1L1

L =

    0.2500   -0.2500    1.0000
    1.0000         0         0
    1.0000    1.0000         0

U =

    4.0000    5.0000    6.0000
         0   -3.0000         0
         0         0    1.5000


L1 =

    1.0000         0         0
    1.0000    1.0000         0
    0.2500   -0.2500    1.0000

U =

    4.0000    5.0000    6.0000
         0   -3.0000         0
         0         0    1.5000

P =

     0     1     0
     0     0     1
     1     0     0

2. QR分解

QR分解是把矩阵A分解为正交矩阵Q和
上三角阵R的乘积,即A=Q*R。
在MATLAB中,QR分解可由函数qr实现

>> A=[1 2 3;4 5 6;7 8 9;10 11 12];
[Q,R]=qr(A)      %A=QR
[Q1,R1,E]=qr(A)   %AE=Q1R1

Q =

   -0.0776   -0.8331    0.5477   -0.0037
   -0.3105   -0.4512   -0.7276    0.4131
   -0.5433   -0.0694   -0.1880   -0.8153
   -0.7762    0.3124    0.3679    0.4058

R =

  -12.8841  -14.5916  -16.2992
         0   -1.0413   -2.0826
         0         0   -0.0000
         0         0         0

Q1 =

   -0.1826   -0.8165    0.5465    0.0363
   -0.3651   -0.4082   -0.7558    0.3589
   -0.5477   -0.0000   -0.1280   -0.8268
   -0.7303    0.4082    0.3373    0.4316

R1 =

  -16.4317  -12.7802  -14.6059
         0    1.6330    0.8165
         0         0    0.0000
         0         0         0

E =

     0     1     0
     0     0     1
     1     0     0

>> 

3. EIG分解

若以A的所有特征值构成对角阵D,相应
的特征向量作为列构成矩阵V,则有 AV=VD。
若V是非奇异的,则可得矩阵A的特征值
分解式:A=VDV–1。
在MATLAB中,利用eig函数即可求出矩阵
A的特征值和特征向量,也可以对A进行特征值
分解。

>> A=magic(4),[V,D]=eig(A),V*D*inv(V)

A =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

V =

   -0.5000   -0.8236    0.3764   -0.2236
   -0.5000    0.4236    0.0236   -0.6708
   -0.5000    0.0236    0.4236    0.6708
   -0.5000    0.3764   -0.8236    0.2236

D =

   34.0000         0         0         0
         0    8.9443         0         0
         0         0   -8.9443         0
         0         0         0   -0.0000

ans =

   16.0000    2.0000    3.0000   13.0000
    5.0000   11.0000   10.0000    8.0000
    9.0000    7.0000    6.0000   12.0000
    4.0000   14.0000   15.0000    1.0000

>> 

4. SVD分解

A=USV’,S为A的奇异值对角阵
(对角元素的值非负,且按降序排列),U与V为正交阵。
在MATLAB中,奇异值分解可通过函数svd
来实现

>> A=[1 2 3;4 5 6;7 8 9;10 11 12];
[U,S,V]=svd(A)
[U,S,V]=svd(A,0) %奇异值的最佳分解

U =
   -0.1409    0.8247    0.5477   -0.0037
   -0.3439    0.4263   -0.7276    0.4131
   -0.5470    0.0278   -0.1880   -0.8153
   -0.7501   -0.3706    0.3679    0.4058

S =

   25.4624         0         0
         0    1.2907         0
         0         0    0.0000
         0         0         0

V =
   -0.5045   -0.7608   -0.4082
   -0.5745   -0.0571    0.8165
   -0.6445    0.6465   -0.4082


U =
   -0.1409    0.8247    0.5477
   -0.3439    0.4263   -0.7276
   -0.5470    0.0278   -0.1880
   -0.7501   -0.3706    0.3679

S =
   25.4624         0         0
         0    1.2907         0
         0         0    0.0000


V =
   -0.5045   -0.7608   -0.4082
   -0.5745   -0.0571    0.8165
   -0.6445    0.6465   -0.4082

>> 

5. CHOL分解

Cholesky分解是把一个对称正定矩阵A
表示为一个上三角阵R与其转置的乘积,
即 A=R*R’
在MATLAB中,Cholesky分解可通过
chol函数来实现。文章来源地址https://www.toymoban.com/news/detail-805873.html

>> A=[4 -1 -1;-1 4.25 2.75;1 2.75 3.5];
B=[0 4 0;3 0 1;0 1 3];
R=chol(A),R1=chol(B)

R =

    2.0000   -0.5000   -0.5000
         0    2.0000    1.2500
         0         0    1.2990

到了这里,关于matlab 入门(三)线性代数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数中涉及到的matlab命令-第一章:行列式

    目录 1,逆序数  2,行列式定义和性质 2.1,常用特性及命令  2.2,求行列式 2.3,行列式的性质  2,行列式按行(列)展开  3,范德蒙德行列式   在学习线性代数过程中,发现同步使用MATLAB进行计算验证可以加深对概念的理解,并能掌握MATLAB的命令和使用方法; 使用的线性

    2024年02月04日
    浏览(43)
  • 线性代数中涉及到的matlab命令-第二章:矩阵及其运算

    目录 1,矩阵定义 2,矩阵的运算 3,方阵的行列式和伴随矩阵  4,矩阵的逆  5,克莱默法则  6,矩阵分块  矩阵与行列式的区别: (1)形式上行列式是数表加两个竖线,矩阵是数表加大括号或中括号; (2)行列式可计算得到一个值,矩阵不能; (3)两个行列式相加与两

    2024年02月08日
    浏览(48)
  • 线性代数中涉及到的matlab命令-第三章:矩阵的初等变换及线性方程组

    目录 1,矩阵的初等变换 1.1,初等变换 1.2,增广矩阵  ​1.3,定义和性质 1.4,行阶梯型矩阵、行最简型矩阵 1.5,标准形矩阵  1.6,矩阵初等变换的性质  2,矩阵的秩  3,线性方程组的解  初等变换包括三种:交换行或列、某行或列乘以一个非零系数、某行或列加上零一行

    2024年02月04日
    浏览(50)
  • 《python数学实验与建模》(2)高等数学与线性代数

    3.1 求下列积分的符号解 (1) ∫ 0 1 1 + 4 x   d x int_{0}^{1}sqrt{1+4x}~dx ∫ 0 1 ​ 1 + 4 x ​   d x (2) ∫ 0 + ∞ e − x sin ⁡ x   d x int_{0}^{+infty}e^{-x}sin x ~dx ∫ 0 + ∞ ​ e − x sin x   d x 结果: − 1 6 + 5 5 6 -frac{1}{6}+frac{5sqrt{5}}{6} − 6 1 ​ + 6 5 5 ​ ​ 1 2 frac{1}{2} 2 1 ​ 3.2 求方程 x

    2023年04月24日
    浏览(86)
  • Numpy入门(3)—线性代数

    线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分,NumPy中实现了线性代数中常用的各种操作,并形成了numpy.linalg线性代数相关的模块。本节主要介绍如下函数: diag :以一维数组的形式返回方阵的对角线(或非对角线)元素,或

    2024年02月12日
    浏览(42)
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 以及什么是线性代数?

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月10日
    浏览(53)
  • 线性代数的学习和整理2:什么是线性,线性相关,线性无关 及 什么是线性代数?

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月11日
    浏览(135)
  • 线性代数的学习和整理15:线性代数的快速方法

       5  空间的同构 下面再谈谈同构。线性空间千千万,应如何研究呢?同构就是这样一个强大的概念,任何维数相同的线性空间之间是同构的,空间的维数是简单而深刻的,简单的自然数居然能够刻画空间最本质的性质。借助于同构,要研究任意一个n维线性空间,只要研究

    2024年02月11日
    浏览(58)
  • 线性代数入门:基础知识与实践

    线性代数是数学的一个分支,主要研究的是线性方程组和向量空间等概念。它在现代科学和工程领域中具有广泛的应用,如计算机图形学、机器学习、信号处理、金融等。线性代数的核心内容包括向量、矩阵、线性方程组的求解、向量空间等。在本文中,我们将从线性代数的

    2024年02月22日
    浏览(56)
  • 量子算法入门——2.线性代数与复数

    参考资料: 【【零基础入门量子计算-第03讲】线性代数初步与复数】 来自b站up:溴锑锑跃迁 建议关注他的更多高质量文章:CSDN:【溴锑锑跃迁】 强烈建议搭配b站原视频进行观看,这只是我当时看的笔记,读懂这堂课的内容可能需要:线性代数(初等变换、列向量)、离散

    2024年02月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包