Inhaltsverzeichnis
Diagonal dominante Matrix
Beispiel
Problemstellung
Methode 1: Brute-Force-Cracking
Algorithmus
Methode 2: Sortieren
Methode 3: Zeilenskalierung
Fazit
Heim Web-Frontend js-Tutorial JavaScript-Programm für diagonal dominante Matrizen

JavaScript-Programm für diagonal dominante Matrizen

Aug 27, 2023 pm 01:53 PM

对角占优矩阵的 JavaScript 程序

Matrizen sind ein wichtiges Hilfsmittel in der Informatik und Mathematik und können zur schnellen Approximation schwieriger Berechnungen eingesetzt werden. Eine Matrix ist eine in Zeilen und Spalten organisierte Sammlung von Zahlen, die Daten oder ein mathematisches Problem darstellen können.

In diesem Artikel erfahren wir etwas über die diagonal dominante Matrix. Wir werden die Konzepte, Algorithmen und Beispiele diagonal dominanter Matrizen sowie deren Implementierung in verschiedenen Programmiersprachen untersuchen.

Diagonal dominante Matrix

Wenn für jede Zeile in der Matrix die Größe des diagonalen Eintrags in der Zeile größer oder gleich der Summe der Größen aller nicht diagonalen Einträge ist, können wir eine quadratische Matrix als diagonal dominant bezeichnen. Einfach ausgedrückt, wenn die Summe der Elemente in der Matrix mit Ausnahme der Diagonalelemente kleiner als die Diagonalmatrix ist.

Wenn wir eine quadratische Matrix a haben, die i Zeilen und j Spalten enthält, können wir mathematische Gleichungen verwenden, um sie als diagonal dominante Matrix darzustellen -

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

eq:i}:|:a_{ij} |}$$ im Besitz von mir wobei aij die Einträge in den Spalten i und j darstellt

Beispiel

A = [ [6, -2, 0, 0],
   [2, 8, -3, 0],
   [1, 2, 9, -4],
   [0, 1, -2, 7]
]
Nach dem Login kopieren

Diese Matrix ist diagonal dominant, weil sie die folgenden Bedingungen erfüllt -

|a11| ≥ |a12| + |a13| + |a14| == |+6| ≥ |+2| + |+1| + |+0|
|a22| ≥ |a21| + |a23| + |a24| == |+8| ≥ |+2| + |+3| + |+0|
|a33| ≥ |a31| + |a32| + |a34| == |+9| ≥ |+1| + |+2| + |+4|
|a44| ≥ |a41| + |a42| + |a43| == |+7| ≥ |+0| + |+1| + |+2|
Nach dem Login kopieren

Problemstellung

Schreiben Sie bei einer gegebenen quadratischen Matrix ein JavaScript-Programm, um zu prüfen, ob die Matrix diagonal dominant ist.

Beispiel

Betrachten wir eine 3x3-Matrix -

| 4 -1 0 |
| -1 4 -1|
| 0 -1 4 |
Nach dem Login kopieren

Hier sind die Diagonalelemente jeder Zeile 4, 4 bzw. 4 und sie sind alle größer als die Summe der Absolutwerte der anderen Elemente in der Zeile. Daher ist diese Matrix diagonal dominant.

Sehen wir uns nun die Lösungen für die oben genannten Probleme an.

Methode 1: Brute-Force-Cracking

Bei der Brute-Force-Methode wird jede Zeile der Matrix durchlaufen und ermittelt, ob das Diagonalelement größer als die Summe der Absolutwerte der anderen Elemente in der Zeile ist.

Algorithmus

  • Iterieren Sie über die Zeilen einer Matrix.

  • Berechnen Sie die Summe der Absolutwerte der anderen Komponenten in jeder Zeile.

  • Überprüfen Sie, ob die Diagonalelemente der Reihe größer oder gleich der in Schritt 2 ermittelten Summe sind.

  • Wenn das Diagonalelement größer oder gleich der Summe ist, fahren Sie mit der Iteration zur nächsten Zeile fort.

  • Wenn die Diagonalelemente kleiner als die Summe sind, wird false zurückgegeben, was darauf hinweist, dass die Matrix nicht diagonal dominant ist.

Beispiel

<!DOCTYPE html>
<html>
<body>
   <div id="matrix"></div>
   <div id="output"></div>
   <script>
      function isDiagonallyDominant(matrix) {
         const rows = matrix.length;
         const cols = matrix[0].length;
         for(let i = 0; i < rows; i++) {
            let sum = 0;
            for(let j = 0; j < cols; j++) {
               if(i !== j) {
                  sum += Math.abs(matrix[i][j]);
               }
            }
            if(Math.abs(matrix[i][i]) < sum) {
               return false;
            }
         }
         return true;
      }
      const matrix = [[4, -1, 0], [-1, 4, -1], [0, -1, 4]];
      const output = isDiagonallyDominant(matrix) ? 'Matrix is diagonally dominant.' : 'Matrix is not diagonally dominant.';
      document.getElementById('matrix').innerHTML = 'Matrix: ' + JSON.stringify(matrix);
      document.getElementById('output').innerHTML = 'Output: ' + output;
   </script>
</body>
</html>
Nach dem Login kopieren

Zeitliche Komplexität: O(n2), wobei n die Größe der Matrix ist.

Methode 2: Sortieren

Bei dieser Methode sortieren wir den absoluten Wert jeder Zeile in absteigender Reihenfolge. Anschließend bestimmen wir, ob die Diagonalelemente der Zeile größer oder gleich der größten Summe von n-1 Absolutwerten sind, wobei n die Größe der Matrix ist.

Algorithmus

  • Iterieren Sie über die Zeilen einer Matrix.

  • Sortieren Sie die Werbebuchungen nach absolutem Wert in absteigender Reihenfolge.

  • Fügen Sie die größten n-1 absoluten Werte hinzu, wobei n die Größe der Matrix ist.

  • Überprüfen Sie, ob die Diagonalelemente der Reihe größer oder gleich der in Schritt 3 ermittelten Summe sind.

  • Wenn das Diagonalelement größer oder gleich der Summe ist, fahren Sie mit der Iteration zur nächsten Zeile fort.

  • Wenn die Diagonalelemente kleiner als die Summe sind, wird false zurückgegeben, was darauf hinweist, dass die Matrix nicht diagonal dominant ist.

Beispiel

<!DOCTYPE html>
<html>
<body>
   <h2>Diagonally Dominant Matrix</h2>
   <p id="matrix"></p>
   <p id="output"></p>
   <script>
      function isDiagonallyDominant(matrix) {
         const rows = matrix.length;
         const cols = matrix[0].length;
         for(let i = 0; i < rows; i++) {
            const sortedRow = matrix[i].map(Math.abs).sort((a, b) => b - a);
            const sum = sortedRow.slice(1, cols).reduce((acc, val) => acc + val, 0);
            if(sortedRow[0] < sum) {
               return false;
            }
         }
         return true;
      }

      // Example matrix
      const matrix = [[4, -1, 0], [-1, 4, -1], [0, -1, 4]];

      // Display input matrix
      const matrixElement = document.getElementById("matrix");
      matrixElement.innerHTML = "Input Matrix: <br>" + JSON.stringify(matrix);

      // Check if the matrix is diagonally dominant
      const isDominant = isDiagonallyDominant(matrix);

      // Display output
      const outputElement = document.getElementById("output");
      outputElement.innerHTML = "Is diagonally dominant: " + isDominant;
   </script>
</body>
</html>
Nach dem Login kopieren

Zeitkomplexität: O(n2 log n), wobei n die Größe der Matrix ist.

Methode 3: Zeilenskalierung

Bei dieser Methode skalieren wir zunächst jede Zeile der Matrix so, dass ihre Diagonalelemente gleich 1 sind. Wir prüfen dann, ob der Absolutwert der anderen Einträge in der Zeile kleiner als 1 ist.

Algorithmus

  • Iterieren Sie über die Zeilen einer Matrix.

  • Identifizieren Sie die Zeile mit dem höchsten absoluten Wert.

  • Zeilen skalieren, bis die Diagonalelemente gleich 1 sind.

  • Überprüfen Sie, ob der absolute Wert der verbleibenden Einträge in der Zeile kleiner als 1 ist.

  • Gibt „true“ zurück, wenn alle Zeilen die Kriterien in Schritt 4 erfüllen, was darauf hinweist, dass die Matrix diagonal dominant ist.

  • Wenn eine Zeile die Anforderungen von Schritt 4 nicht erfüllt, geben Sie false zurück, was darauf hinweist, dass die Matrix nicht diagonal dominant ist.

Beispiel

<!DOCTYPE html>
<html>
<body>
   <h3>Diagonally Dominant Matrix</h3>
   <p>Matrix:</p>
   <pre id="matrix">

Is diagonally dominant:

<script> function isDiagonallyDominant(matrix) { const rows = matrix.length; const cols = matrix[0].length; for(let i = 0; i < rows; i++) { const maxAbsVal = Math.max(...matrix[i].map(Math.abs)); if(maxAbsVal === 0) { return false; } const scale = 1 / maxAbsVal; for(let j = 0; j < cols; j++) { matrix[i][j] *= scale; } const sum = matrix[i].slice(0, i).reduce((acc, val) => acc + Math.abs(val), 0) + matrix[i].slice(i+1, cols).reduce((acc, val) => acc + Math.abs(val), 0); if(sum >= 1) { return false; } } return true; } const matrix = [[4, -1, 0], [-1, 4, -1], [0, -1, 4]]; document.getElementById('matrix').innerHTML = matrix.map(row => row.join(' ')).join(''); document.getElementById('output').innerHTML = isDiagonallyDominant(matrix) ? 'true' : 'false'; </script>
Nach dem Login kopieren

Zeitkomplexität: O(n3), wobei n die Größe der Matrix ist.

Fazit

In diesem Blog diskutieren wir ein Programm, mit dem mithilfe verschiedener Methoden ermittelt werden kann, ob eine Matrix diagonal dominant ist. Einige von ihnen verwenden Schleifen-, Sortier- und Zeilenskalierungsmethoden. Ich hoffe, Sie finden diese Informationen nützlich.

Das obige ist der detaillierte Inhalt vonJavaScript-Programm für diagonal dominante Matrizen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Erstellen Sie Ihre eigenen AJAX -Webanwendungen Erstellen Sie Ihre eigenen AJAX -Webanwendungen Mar 09, 2025 am 12:11 AM

Hier sind Sie also bereit, alles über dieses Ding namens Ajax zu lernen. Aber was genau ist das? Der Begriff AJAX bezieht sich auf eine lose Gruppierung von Technologien, mit denen dynamische, interaktive Webinhalte erstellt werden. Der Begriff Ajax, ursprünglich von Jesse J geprägt

Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

JQuery Matrixeffekte JQuery Matrixeffekte Mar 10, 2025 am 12:52 AM

Bringen Sie Matrix -Filmeffekte auf Ihre Seite! Dies ist ein cooles JQuery -Plugin, das auf dem berühmten Film "The Matrix" basiert. Das Plugin simuliert die klassischen grünen Charakter-Effekte im Film und wählen Sie einfach ein Bild aus, und das Plugin verwandelt es in ein mit numerischer Zeichen gefüllte Bild im Matrix-Stil. Komm und probiere es aus, es ist sehr interessant! Wie es funktioniert Das Plugin lädt das Bild auf die Leinwand und liest die Pixel- und Farbwerte: Data = ctx.getImagedata (x, y, setting.grainize, setting.grainesize) .data Das Plugin liest geschickt den rechteckigen Bereich des Bildes und berechnet JQuery, um die durchschnittliche Farbe jedes Bereichs zu berechnen. Dann verwenden Sie

So bauen Sie einen einfachen JQuery Slider So bauen Sie einen einfachen JQuery Slider Mar 11, 2025 am 12:19 AM

In diesem Artikel werden Sie mit der JQuery -Bibliothek ein einfaches Bildkarousel erstellen. Wir werden die BXSLIDER -Bibliothek verwenden, die auf JQuery basiert und viele Konfigurationsoptionen zum Einrichten des Karussells bietet. Heutzutage ist Picture Carousel zu einem Muss auf der Website geworden - ein Bild ist besser als tausend Wörter! Nachdem Sie sich entschieden haben, das Bild -Karussell zu verwenden, ist die nächste Frage, wie Sie es erstellen. Zunächst müssen Sie hochwertige, hochauflösende Bilder sammeln. Als nächstes müssen Sie ein Bildkarousel mit HTML und einem JavaScript -Code erstellen. Es gibt viele Bibliotheken im Web, die Ihnen helfen können, Karussell auf unterschiedliche Weise zu erstellen. Wir werden die Open -Source -BXSLIDER -Bibliothek verwenden. Die BXSLIDER -Bibliothek unterstützt reaktionsschnelles Design, sodass das mit dieser Bibliothek gebaute Karussell an alle angepasst werden kann

So laden und herunterladen Sie CSV -Dateien mit Angular hoch und laden Sie sie herunter So laden und herunterladen Sie CSV -Dateien mit Angular hoch und laden Sie sie herunter Mar 10, 2025 am 01:01 AM

Datensätze sind äußerst wichtig für den Aufbau von API -Modellen und verschiedenen Geschäftsprozessen. Aus diesem Grund ist das Import und Exportieren von CSV eine häufig benötigte Funktionalität. In diesem Tutorial lernen Sie, wie Sie eine CSV-Datei in einem Angular herunterladen und importieren.

See all articles