matlab里面幂指数怎么写,幂和指数 - MATLAB & Simulink - MathWorks 中国

本文深入讲解了矩阵的各种幂运算,包括正整数幂、逆幂、分数幂等,并介绍了MATLAB中实现这些运算的具体方法。此外,还探讨了逐元素幂、矩阵平方根及矩阵指数的计算方式。

正整数幂

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

A = [1 1 1

1 2 3

1 3 6];

A^2

ans = 3×3

3 6 10

6 14 25

10 25 46

逆幂和分数幂

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

A^(-3)

ans = 3×3

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 = logical

1

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

A^(2/3)

ans = 3×3

0.8901 0.5882 0.3684

0.5882 1.2035 1.3799

0.3684 1.3799 3.1167

逐元素幂

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

A.^2

ans = 3×3

1 1 1

1 4 9

1 9 36

平方根

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

sqrt(A)

ans = 3×3

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 = 3×3

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 = 3×3

0.8775 0.4387 0.1937

0.4387 1.0099 0.8874

0.1937 0.8874 2.2749

B^2

ans = 3×3

1.0000 1.0000 1.0000

1.0000 2.0000 3.0000

1.0000 3.0000 6.0000

标量底

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

2^A

ans = 3×3

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 = 3×3

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 = 3×3

103 ×

0.1008 0.2407 0.4368

0.2407 0.5867 1.0654

0.4368 1.0654 1.9418

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

expm(A)

ans = 3×3

103 ×

0.1008 0.2407 0.4368

0.2407 0.5867 1.0654

0.4368 1.0654 1.9418

矩阵指数可以用多种方法来计算。有关详细信息,请参阅 矩阵指数。

处理较小的数字

对于非常小的 x 值,MATLAB 函数 log1p 和 expm1 可以精确计算 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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值