Как создать трехдиагональную матрицу в R
Матрица представляет собой комбинацию ячеек, расположенных вместе в табличном формате. Матрица содержит элементы, принадлежащие одному типу данных. В матрице mxn элементов, где m — количество строк, а n — количество столбцов соответственно.
Трехдиагональная матрица — это матрица, которая имеет следующие атрибуты:
- Все элементы на главной диагонали должны быть ненулевыми.
- Все элементы на первой нижней диагонали должны быть ненулевыми.
- Все элементы на первой верхней диагонали должны быть ненулевыми.
- Все остальные элементы должны быть равны нулю.
Создание трехдиагональной матрицы основано на том, что разница в номере строки и столбца для ненулевых элементов меньше, чем равна 1.
Создание трехдиагональной матрицы на языке программирования R
Метод 1: использование итерации
Цикл for можно использовать для перебора элементов матрицы. Внешний цикл for используется для перебора строк матрицы, а внутренний цикл for используется для перебора столбцов. Поэтому необходимо две петли. Затем номер строки и столбца проверяется с использованием условия if. Сравнивается абсолютная разница номеров строки и столбца. Если значение больше константы 1, то элемент матрицы перезаписывается со значением 0, иначе 1 или любым другим числом.
R
# creating a matrix mat<- matrix (,nrow=4,ncol=4) print ( "Empty matrix" ) print (mat) # looping over rows for (row in 1: nrow (mat)) { # looping over columns for (col in 1: ncol (mat)) { # checking if absolute difference # between the row and column is # greater than 1 if ( abs (row-col) > 1){ # assigning the value of 0 mat[row,col] = 0 } else { # assigning value 1 if not satisfactory mat[row,col] = 1 } } } print ( "Tridiagonal Matrix" ) print (mat) |
Выход
[1] "Empty matrix" [,1] [,2] [,3] [,4] [1,] NA NA NA NA [2,] NA NA NA NA [3,] NA NA NA NA [4,] NA NA NA NA [1] "Tridiagonal Matrix" [,1] [,2] [,3] [,4] [1,] 1 1 0 0 [2,] 1 1 1 0 [3,] 0 1 1 1 [4,] 0 0 1 1
Объяснение :
Первоначально создается пустая матрица со значениями NA путем указания размерностей. Затем значения переписываются на основе приведенной выше формулы.
Способ 2: Использование методов адресации
Трехдиагональную матрицу можно создать с помощью простых методов адресации. Матрица может быть создана с использованием простой формулы абсолютной разности. Если разница между номером соответствующей строки и столбца матрицы больше 1, то значение этого элемента эквивалентно 0. В противном случае значение элемента не равно нулю.
Для любого номера строки и столбца матричного мата можно проверить следующую формулу для матрицы:
abs(row(mat) - col(mat)) > 1
Все значения, удовлетворяющие приведенной выше формуле, эквивалентны 0.
R
# specifying the number of rows rows <- 4 # creating a matrix mat <- matrix (1:16, nrow = rows ) # printing matrix print ( "Matrix" ) print (mat) # checking the absolute difference # is greater than 1 or not # setting that value equal to 0 mat[ abs ( row (mat) - col (mat)) > 1] = 0 # print tridiagonal matrix print ( "Tridiagonal Matrix" ) print (mat) |
Выход
[1] "Matrix" [,1] [,2] [,3] [,4] [1,] 1 5 9 13 [2,] 2 6 10 14 [3,] 3 7 11 15 [4,] 4 8 12 16 [1] "Tridiagonal Matrix" [,1] [,2] [,3] [,4] [1,] 1 5 0 0 [2,] 2 6 10 0 [3,] 0 7 11 15 [4,] 0 0 12 16