У меня есть две диагональные матрицы. Я пытаюсь построить из них большую блочную диагональную матрицу. Например, если бы я это:2D-матрица матриц
D = diag(zeros(3,1)+1)
D =
1 0 0
0 1 0
0 0 1
и ...
E = diag(zeros(2,1)+2, -1) + diag(zeros(2,1)+2, +1) + diag(zeros(3,1)+4)
E =
4 2 0
2 4 2
0 2 4
У меня есть уравнение, которое говорит A * U = X
Где А
[E D 0
D E D
0 D E]
Это для 3х3. 5x5 будет выглядеть так:
A =
[E D 0 0 0
D E D 0 0
0 D E D 0
0 0 D E D
0 0 0 D E]
A будет другой диагональной матрицей, состоящей из этих матриц. Мне нужно создать 40x40, и, конечно, для выполнения вручную потребуется очень ОЧЕНЬ ДЛИТЕЛЬНОЕ ВРЕМЯ.
Как я могу это определить? Я не понял, как использовать blkdiag для построения.
Как у 'A' есть 40 строк, когда' E' и 'D' имеют только 3? –
Вы пробовали '[E, D, нули (размер (E); D, E, D; нули (размер (E)), D, E]'? –
@High Performance Mark - Правильно, поэтому я плохо объяснил. В моем примере все они 3x3. В моем реальном примере все они 40x40. –