Нахождение матрицы переноса системы - PullRequest
0 голосов
/ 10 января 2020

У меня есть следующая система

enter image description here

, которая представляет собой систему из 4 известных входов с 12 известными выходами.

Какие методы я могу использовать, чтобы найти матрицу передачи, могу ли я использовать нейронную сеть или что-то подобное или это возможно только с алгеброй матриц?

Любая помощь будет признательна

заранее спасибо

1 Ответ

1 голос
/ 11 января 2020

Нет необходимости использовать нейронную сеть, достаточно алгебры матриц!

  • Ваш вопрос может быть сформулирован как задача оптимизации, т. Е. minimize f(T) = norm(y - T*x) задано y и x , Если у вас достаточно пар данных (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 действителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...