MATLAB求解矩阵函数

MATLAB求解矩阵函数

  • 0. 说明
  • 1. 矩阵函数介绍
  • 2. 矩阵函数求解方法
    • 2.1 例子介绍
    • 2.2 jordan标准型法
    • 2.3 最小多项式法
    • 2.4 两种方法计算结果相同
  • 3. 一般矩阵运算函数不可用
  • 4. 矩阵函数求解函数funm()
  • 5. 多多点赞关注,多多交流

0. 说明

这里的 1-2 节涉及到矩阵函数的一般求法。

第 3 节演示了为什么不能用普通的运算函数求矩阵函数。

第 4 节介绍了MATLAB内置的矩阵函数求解函数。

如果赶时间,直接看第 4 节即可!!!

1. 矩阵函数介绍

直接查看百度百科吧,我也说不太清楚:矩阵函数

总的来说,矩阵函数的求解方式和一般的标量方式不一样。

常用的矩阵函数有:

  1. exp(A)
  2. log(A)
  3. sin(A)
  4. cos(A)
  5. sinh(A)
  6. cosh(A)

MATLAB内置的求解方案也只能求解这6类矩阵函数

2. 矩阵函数求解方法

2.1 例子介绍

这里以矩阵:MATLAB求解矩阵函数_第1张图片

为例,求解其矩阵函数 sinA。求解方案在百度百科里面有两种。

2.2 jordan标准型法

  1. 求出A的jordan标准型 J 和伴随矩阵 P
    MATLAB求解矩阵函数_第2张图片
    可以看到其特征值 λ1 = λ2 = λ3 = 2;

  2. 计算需要的标量函数值

我们的函数是 f(z)=sinz。根据jordan矩阵和特征值,我们知道需要 f(2) 和 f‘(2)来构造f(J).

MATLAB求解矩阵函数_第3张图片

  1. 根据公式构造 f(J)
    MATLAB求解矩阵函数_第4张图片
  2. 根据 f(J) 和 P 计算矩阵函数
    MATLAB求解矩阵函数_第5张图片

2.3 最小多项式法

  1. 求矩阵的最小多项式
    MATLAB求解矩阵函数_第6张图片
    可以看到,最小多项式为 m=x²-4x+4=(x-2)²,有两个相同的特征根。

  2. 计算需要的标量函数值

我们的函数是 f(z)=sinz,根据定理需要计算 f(2) 和 f’(2),和上面jordan求法相同。
MATLAB求解矩阵函数_第7张图片

  1. 计算构造量C0和C1

令 g(λ) = C0+C1*λ (根据定理,f 与之相同)

则,f(2)=g(2)=C0+2C1 f’(2)=g’(2)=C1;

f(2)和f’(2)上文已经求出,所以由此可以解出C0和C1:
MATLAB求解矩阵函数_第8张图片

  1. 根据定理直接构造 f(A)

很简单,f(A)=C0I+C1A,如下:
MATLAB求解矩阵函数_第9张图片

2.4 两种方法计算结果相同

3. 一般矩阵运算函数不可用

刚开始我以为MATLAB普通的运算符会直接为我们计算矩阵函数,实际上并不是这样。

我们的例子是 sin(A),这里试一下:
MATLAB求解矩阵函数_第10张图片
显然,这里是直接对每个元素求sin,不符合我们的要求。

4. 矩阵函数求解函数funm()

步入正题。这里才是MATLAB内置的函数矩阵的求解函数:funm()

官方文档介绍如下:
MATLAB求解矩阵函数_第11张图片
意味着可以计算常用函数的矩阵函数,调用形式也比较清楚。

我们将其应用到我们的例子中,得到了正确结果:
MATLAB求解矩阵函数_第12张图片
注:求exp和log也有专有的expm和logm函数,效果和funm一样。

5. 多多点赞关注,多多交流

你可能感兴趣的:(MATLAB代码,MATLAB,矩阵函数,funm)