> 웹 프론트엔드 > JS 튜토리얼 > 대각선 우위 행렬을 위한 JavaScript 프로그램

대각선 우위 행렬을 위한 JavaScript 프로그램

WBOY
풀어 주다: 2023-08-27 13:53:13
앞으로
663명이 탐색했습니다.

对角占优矩阵的 JavaScript 程序

행렬은 컴퓨터 과학 및 수학에서 중요한 도구이며 어려운 계산을 빠르게 근사화하는 데 사용할 수 있습니다. 행렬은 데이터나 수학적 문제를 나타낼 수 있는 숫자의 집합을 행과 열로 구성한 것입니다.

이번 글을 통해 대각우세행렬(Diagonal Dominant Matrix)에 대해 알아보겠습니다. 우리는 대각선 우세 행렬의 개념, 알고리즘, 예뿐만 아니라 다양한 프로그래밍 언어로의 구현을 연구합니다.

대각선 지배 행렬

행렬의 각 행에 대해 행의 대각선 항목의 크기가 모든 비대각선 항목의 크기의 합보다 크거나 같으면 대각선 우세 정사각 행렬이라고 부를 수 있습니다. 간단히 말하면, 행렬에서 대각선 요소를 제외한 요소의 합이 대각 행렬보다 작은 경우입니다.

i개의 행과 j개의 열을 포함하는 정사각 행렬 a가 있는 경우 수학 방정식을 사용하여 이를 대각선 우위 행렬로 나타낼 수 있습니다. -

$$mathrm{|:a_{ii}:|:geq:displaystylesumlimits_{j

eq:i}:|:a_{ij} |}$$ 내 소유 여기서 aij는 i열과 j열의 항목을 나타냅니다.

으아아아

이 행렬은 다음 조건을 만족하므로 대각선 우세 행렬입니다. -

으아아아

문제 설명

정사각 행렬이 주어지면 행렬이 대각선 우세인지 확인하는 JavaScript 프로그램을 작성하세요.

3x3 행렬을 생각해 봅시다 -

으아아아

여기서, 각 행의 대각선 요소는 각각 4, 4, 4이며, 모두 해당 행의 다른 요소의 절대값의 합보다 큽니다. 따라서 이 행렬은 대각선 우세 행렬입니다.

이제 위 문제에 대한 해결책을 살펴보겠습니다.

방법 1: 무차별 크래킹

무차별 대입 방법은 행렬의 각 행을 반복하고 대각선 요소가 행에 있는 다른 요소의 절대값의 합보다 큰지 여부를 확인하는 것으로 구성됩니다.

알고리즘

  • 행렬의 행을 반복합니다.

  • 각 행에 있는 다른 구성 요소의 절대값의 합을 계산합니다.

  • 행의 대각선 요소가 2단계에서 결정된 합보다 크거나 같은지 확인하세요.

  • 대각선 요소가 합보다 크거나 같으면 다음 행으로 계속 반복합니다.

  • 대각선 요소가 합보다 작으면 false를 반환하여 행렬이 대각선 지배적이지 않음을 나타냅니다.

으아아아

시간 복잡도: O(n2), 여기서 n은 행렬의 크기입니다.

방법 2: 정렬

이 방법에서는 각 행의 절대값을 내림차순으로 정렬합니다. 그런 다음 행의 대각선 요소가 n-1 절대값의 최대 합보다 크거나 같은지 여부를 확인합니다. 여기서 n은 행렬의 크기입니다.

알고리즘

  • 행렬의 행을 반복합니다.

  • 절대값을 기준으로 내림차순으로 광고 항목을 정렬합니다.

  • 가장 큰 n-1 절대값을 추가합니다. 여기서 n은 행렬의 크기입니다.

  • 행의 대각선 요소가 3단계에서 결정된 합보다 크거나 같은지 확인하세요.

  • 대각선 요소가 합보다 크거나 같으면 다음 행으로 계속 반복합니다.

  • 대각선 요소가 합보다 작으면 false를 반환하여 행렬이 대각선 지배적이지 않음을 나타냅니다.

으아아아

시간 복잡도: O(n2 log n), 여기서 n은 행렬의 크기입니다.

방법 3: 행 크기 조정

이 방법에서는 먼저 대각선 요소가 1과 같도록 행렬의 각 행의 크기를 조정합니다. 그런 다음 행에 있는 다른 항목의 절대값이 1보다 작은지 확인합니다.

알고리즘

  • 행렬의 행을 반복합니다.

  • 절대값이 가장 높은 행을 식별합니다.

  • 대각선 요소가 1이 될 때까지 행의 크기를 조정하세요.

  • 행에 남아 있는 항목의 절대값이 1보다 작은지 확인하세요.

  • 모든 행이 4단계의 기준을 충족하면 true를 반환합니다. 이는 행렬이 대각선 우세임을 나타냅니다.

  • 4단계의 요구 사항을 충족하지 않는 행이 있으면 false를 반환하여 행렬이 대각선 지배적이지 않음을 나타냅니다.

으아아아

시간 복잡도: O(n3), 여기서 n은 행렬의 크기입니다.

결론

이 블로그에서는 다양한 방법을 통해 행렬이 대각선 우세인지 알아보는 프로그램에 대해 논의합니다. 그 중 일부는 루핑, 정렬 및 행 크기 조정 방법을 사용합니다. 이 정보가 도움이 되길 바랍니다.

위 내용은 대각선 우위 행렬을 위한 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿