课程主页:https://see.stanford.edu/Course/EE263

这次回顾EE263作业6。

9.9

(a)

递推

得到

所以收敛情形和$A$的特征值有关。

当$\gamma =3$时,特征值的绝对值都小于$1$,所以无条件收敛;当$\gamma= 5$时,有一个特征值的绝对值大于$1$,所以可能会发散。

计算代码如下:

import numpy as np

A = np.array([
        [0, 0.2, 0.1],
        [0.05, 0, 0.05],
        [0.1, 1/30, 0]])
res = np.linalg.eigvals(A)

#gamma=3
print(res * 1.2 * 3)

#gamma=5
print(res * 1.2 * 5)
[ 0.60848571 -0.36       -0.24848571]
[ 1.01414284 -0.6        -0.41414284]

(b)回顾

假设$\Lambda^{-1} G -I_n$的特征值为$\lambda_i$,那么$A$的特征值为$\alpha \gamma \lambda_i $,记绝对值最大的$\lambda_i $为$\lambda_{\max}$,由之前讨论可得,

10.5

(a)设$\lambda_ i $对应的特征向量为$v_i$,那么

因此

所以$e^{A}$的特征值为$\lambda_i $

(b)由(a)可得

10.6

方程的解为

通过程序计算得到$e^A,e^{2A}$:

A = np.array([
        [0.5, 1.4],
        [-0.7, 0.5]])

print(expm(A))
[[ 0.90470626  1.94925032]
 [-0.97462516  0.90470626]]
print(expm(2 * A))
[[-1.081295    3.52699794]
 [-1.76349897 -1.081295  ]]

假设

那么由条件可得

目标是判断以下两个式子的符号

通过画图不难得出

10.8

(a)

(b)

(c)$\forall \lambda_i$对应的特征向量$v_i $,那么

(d)

10.14

(a)计算特征值即可

% (a)
eig(A)
ans =
  -0.1000 + 5.0000i
  -0.1000 - 5.0000i
  -0.1500 + 7.0000i
  -0.1500 - 7.0000i

因为实部都是负数,所以稳定

(b)

%(b)
sys = ss(A, [], [], []);
x0 = [1; 1; 1; 1];
[y,t,x] = initial(sys, x0);
for i = 1: 4
    figure(i);
    plot(x(:, i));
end

x0 = rand(4, 1);
[y,t,x] = initial(sys, x0);
for i = 1: 4
    figure(i + 4);
    plot(x(:, i));
end

(c)

%(c)
expm(15 * A)
ans =
    0.2032   -0.0068   -0.0552   -0.0708
    0.0340    0.0005   -0.0535    0.1069
    0.0173    0.1227    0.0270    0.0616
    0.0815    0.0186    0.1151    0.1298

(d)

%(d)
expm(- 20 * A)
ans =
    6.2557    3.3818    1.7034    2.2064
   -2.1630   -2.8107  -14.2950   12.1503
   -3.3972   17.3931   -1.6257   -2.8004
   -1.7269   -6.5353   10.7081    2.9736

(e)$Z$的元素较小,$Y$的元素较大

(f)使用下式子计算即可

对应代码为

%(e)
x10 = [1; 1; 1; 1];
expm(10 * A) \ x10
ans =
    3.9961
    1.0650
    3.8114
    1.7021

11.3

假设$A$可对角化,即

那么

11.6a

转移规则对应的矩阵为

记$B^{(k)}=A^k$,那么$B^{(k)}_{ij}$表示以$j$开头,$i$结尾的长度为$k+1$的语言数量,所以

接着计算$A^k$即可,注意此时$A$的特征值不相同,所以$A$相似于对角阵,即

那么

假设$\lambda_1 =\max \{|\lambda_i|\}$,那么

因此

利用计算机得到结果为

0.8113704627516485

对应代码为

import numpy as np

A = np.array([
        [0, 0, 1, 0, 1],
        [1, 1, 0, 1, 0],
        [1, 0, 0, 0, 1],
        [0, 0, 0, 1, 0],
        [0, 1, 0, 1, 0]], dtype=np.float64)

res = np.linalg.eigvals(A)
print(np.log2(np.max(np.abs(res))))

对于需要比较的情形,此时

注意到

因此

因此