Вам это поможет?
Добавлено / отредактировано: display: block; margin-bottom: 15px;
Удалено: позиция: абсолютная; Топ 10%; дно: 10%; слева: 0; справа: 0; поле: авто;
.btn1 {
color: #000 !important;
text-transform: uppercase;
background: #ed1b36;
padding: 20px;
border-radius: 5px;
display: block; /* edited */
border: none;
text-decoration: none;
cursor: pointer;
width: 30%;
transition: all 0.3s ease 50ms;
text-align: center;
max-width: 400px;
margin: 0 auto 15px auto; /* new */
}
<div>
<a class="btn1" href="showTable.php"><b>Reserveringen</b></a>
<a class="btn1" href="logout.php"><b>Logout</b></a>
</div>
Да, используйте назад замену. Стандартный алгоритм для инвертирования матрицы должен найти свое разложение LU (разложение в нижнее треугольное и верхнюю треугольную матрицу), использовать назад subsitution на треугольных частях и затем объединить результаты для получения инверсии исходной матрицы.
Если Вы говорите о реалах одинарной точности, взглянули на исходный код для стандартных программ LAPACK STRTRI и STRTI2.
Учитывая нижнюю треугольную матрицу L, backsubstitution позволяет Вам решать систему L x = b быстро для любой правой стороны b.
Для инвертирования L можно решить эту систему для правых сторон e1 = (1,0..., 0), e2 = (0,1..., 0)..., en = (0,0..., 1) и объединить получающиеся векторы решения в сингл (обязательно нижний треугольный) матрица.
Если Вы интересуетесь решением закрытой формы, диагональные элементы инверсии являются инверсиями исходных диагональных элементов, и формула для остальной части элементов инверсии становится все более сложной, поскольку Вы перемещаете aways от диагонали.
Ничего себе, это - практически половина содержания числового аналитического хода. Стандартные алгоритмы сделают это, и существует набор консервированного кода здесь. Окончательный источник для этого и большинства других обычных числовых аналитических проблем является Числовыми Рецептами.
Не переворачивайте его, если можете. Это одна из основных заповедей числовой линейной алгебры.
Намного быстрее и численно стабильнее сохранять саму матрицу L в памяти и вычислять
inv(L)b
с обратной заменой всякий раз, когда вам нужно сделать что-то еще с inv (L) ,
Обратите внимание, что обычный алгоритм для его инвертирования требует решения систем
inv(L)[1 0 0 ...],
inv(L)[0 1 0 ....],
inv(L)[0 0 1 ....]
и т. Д., Так что вы видите, что намного проще вообще не инвертировать его.