Matlab快速入门之线性代数:幂和指数

文章目录(展开/隐藏→)

展开
4.3
(3)

本文属于Matlab快速入门之线性代数的第三篇,即幂和指数 ,主要包括正整数幂逆幂和分数幂逐元素幂平方根标量底矩阵指数处理较小的数字等各种方法计算矩阵幂和指数。

Matlab快速入门之线性代数:幂和指数

正整数幂

如果A为方阵并且p为正整数,则A^p实际上是将A乘以其自身p-1次。例如:

>> A = [1 1 1
     1 2 3
     1 3 6];
>> A^2

ans =

     3     6    10
     6    14    25
    10    25    46

逆幂和分数幂

如果A为方阵并且是非奇异的,则A^(-p)实际上是将inv(A)乘以其自身p-1次。

>> A^(-3)

ans =

  145.0000 -207.0000   81.0000
 -207.0000  298.0000 -117.0000
   81.0000 -117.0000   46.0000

MATLAB® 用相同的算法计算inv(A)A^(-1),因此结果完全相同。如果矩阵接近奇异,inv(A)A^(-1)都会发出警告。

>> isequal(inv(A),A^(-1))

ans =

     1

也允许分数幂,例如A^(2/3)。使用小数幂的结果取决于矩阵特征值的分布。

>> A^(2/3)

ans =

    0.8901    0.5882    0.3684
    0.5882    1.2035    1.3799
    0.3684    1.3799    3.1167
Matlab快速入门之线性代数:幂和指数

逐元素幂

.^运算符计算逐元素幂。例如,要对矩阵中的每个元素求平方,可以使用A.^2

>> A.^2

ans =

     1     1     1
     1     4     9
     1     9    36
Matlab快速入门之线性代数:幂和指数

平方根

使用sqrt函数可以方便地计算矩阵中每个元素的平方根。另一种方法是A.^(1/2)

>> sqrt(A)

ans =

    1.0000    1.0000    1.0000
    1.0000    1.4142    1.7321
    1.0000    1.7321    2.4495

对于其他根,您可以使用nthroot。例如,计算A.^(1/3)

>> nthroot(A,3)

ans =

    1.0000    1.0000    1.0000
    1.0000    1.2599    1.4422
    1.0000    1.4422    1.8171

这些按元素计算的根不同于矩阵平方根,后者计算得到的是另一个矩阵B以满足A=BB。函数sqrtm(A)采用更精确的算法计算A^(1/2)sqrtm中的m将此函数与sqrt(A)区分开来,后者与A.^(1/2)一样,以逐元素方式工作。

>> B = sqrtm(A)

B =

    0.8775    0.4387    0.1937
    0.4387    1.0099    0.8874
    0.1937    0.8874    2.2749

>> B^2

ans =

    1.0000    1.0000    1.0000
    1.0000    2.0000    3.0000
    1.0000    3.0000    6.0000
Matlab快速入门之线性代数:幂和指数

标量底

除了对矩阵求幂以外,您还可以以矩阵为次数对标量求幂。

>> 2^A

ans =

   10.4630   21.6602   38.5862
   21.6602   53.2807   94.6010
   38.5862   94.6010  173.7734

当您以矩阵为次数对标量求幂时,MATLAB 使用矩阵的特征值和特征向量来计算矩阵幂。如果[V,D] = eig(A),则2A=V2DV−1

>> [V,D] = eig(A);
>> V*2^D*V^(-1)

ans =

   10.4630   21.6602   38.5862
   21.6602   53.2807   94.6010
   38.5862   94.6010  173.7734

矩阵指数

矩阵指数是以矩阵为次数对标量求幂的特殊情况。矩阵指数的底是欧拉数e = exp(1)

>> e = exp(1);
>> e^A

ans =

   1.0e+03 *

    0.1008    0.2407    0.4368
    0.2407    0.5867    1.0654
    0.4368    1.0654    1.9418

expm函数是计算矩阵指数的一种更方便的方法。

>> expm(A)

ans =

   1.0e+03 *

    0.1008    0.2407    0.4368
    0.2407    0.5867    1.0654
    0.4368    1.0654    1.9418

矩阵指数可以用多种方法来计算。

Matlab快速入门之线性代数:幂和指数

处理较小的数字

对于非常小的x值,MATLAB 函数log1pexpm1可以精确计算log(1+x)和ex−1。例如,如果您尝试将小于计算机精度的一个数与 1 相加,则结果会舍入到 1。

>> log(1+eps/2)

ans =

     0

但是,log1p能够返回更准确的答案。

>> log1p(eps/2)

ans =

   1.1102e-16

同样,对于ex−1,如果x非常小,则会将它舍入为零。

>> exp(eps/2)-1

ans =

     0

同样,expm1能够返回更准确的答案。

>> expm1(eps/2)

ans =

   1.1102e-16

共计3人评分,平均4.3

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

转载文章,原文出处:MathWorks官网,由古哥整理发布

如若转载,请注明出处:https://iymark.com/program/matlab/linear-algebra-power-index.html

(0)
上一篇 2022年09月25日 17:49
下一篇 2022年09月26日 21:05

相关推荐

发表回复

登录后才能评论
本站APP
微信小程序