查找系统的传递矩阵

问题描述 投票:0回答:1

我有以下系统

enter image description here

[表示由4个已知输入和12个已知输出组成的系统。

我可以使用什么方法来找到传递矩阵,可以使用神经网络或类似的方法,还是只有矩阵代数才可以?

任何帮助将不胜感激

预先感谢

matrix signal-processing system
1个回答
0
投票

不需要使用神经网络,矩阵代数就足够了!

  • 您的问题可以公式化为优化问题,即给定minimize f(T) = norm(y - T*x)yx。如果您有足够的数据对(x,y),则可以求解T

  • 另一种方法是使用矩阵的广义逆来求解传递矩阵T,即T = Y*ginv(X)。在这里,我将向您展示语言R

  • 的示例
library(MASS)
Y <- matrix(1:36,nrow = 9)
X <- matrix(1:16,nrow = 4)

T <- Y %*% ginv(X)

其中

> X
     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16

> Y
      [,1] [,2] [,3] [,4]
 [1,]    1   10   19   28
 [2,]    2   11   20   29
 [3,]    3   12   21   30
 [4,]    4   13   22   31
 [5,]    5   14   23   32
 [6,]    6   15   24   33
 [7,]    7   16   25   34
 [8,]    8   17   26   35
 [9,]    9   18   27   36

并且转移T求解为

> T
       [,1]  [,2] [,3]   [,4]
 [1,]  1.95 1.025  0.1 -0.825
 [2,]  1.65 0.925  0.2 -0.525
 [3,]  1.35 0.825  0.3 -0.225
 [4,]  1.05 0.725  0.4  0.075
 [5,]  0.75 0.625  0.5  0.375
 [6,]  0.45 0.525  0.6  0.675
 [7,]  0.15 0.425  0.7  0.975
 [8,] -0.15 0.325  0.8  1.275
 [9,] -0.45 0.225  0.9  1.575

要验证获得的T,可以使用

> norm(Y - T%*%X,"2")
[1] 1.178746e-13

接近0,表示所获得的T有效。

© www.soinside.com 2019 - 2024. All rights reserved.