Cholesky-Zerlegung Rechner
Zerlegen Sie eine symmetrische, positiv definite Matrix in ein unteres Dreieck L mal seiner Transponierten: Das klassische 3×3-Beispiel mit der ersten Zeile 4, 12, −16 ergibt ein L mit 2, 1 und 3 auf der Diagonale. Nützlich für Gleichungssysteme und Stichproben. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Cholesky ist das Standardverfahren, um lineare Gleichungssysteme zu lösen, korrelierte Zufallsstichproben zu erzeugen und zu prüfen, ob eine Matrix überhaupt positiv definit ist — existiert die Zerlegung, ist die Matrix es per Konstruktion. Senden Sie Ihre Matrix als Array von Zeilen und erhalten Sie den Faktor, die gespiegelte Eingabe und das verwendete Verfahren in einem einzigen deterministischen Aufruf.
Was die Cholesky-Zerlegung Ihnen tatsächlich liefert
Jede symmetrische positiv definite Matrix A lässt sich als Produkt einer unteren Dreiecksmatrix mit ihrer eigenen Transponierten schreiben: A = L·Lᵀ. Dieser Faktor L ist so etwas wie die Quadratwurzel der Matrix — und sobald Sie ihn haben, werden mehrere teure Probleme billig. A·x = b zu lösen erfordert keine allgemeine Elimination mehr: Sie lösen L·y = b per Vorwärtssubstitution und dann Lᵀ·x = y per Rückwärtssubstitution, beide in quadratischer Zeit.
Die Matrix zu invertieren, ihre Determinante zu berechnen (das Produkt der quadrierten Diagonaleinträge von L) und Zufallsvektoren zu entkorrelieren oder zu korrelieren reduziert sich auf Operationen am Dreieck. Der Cholesky-Zerlegungsrechner liefert genau diesen Faktor: eine n×n untere Dreiecksmatrix mit positiven Einträgen auf der Diagonale und Nullen darüber. Da die Berechnung deterministische Gleitkommaarithmetik mit festem Runden ist, erzeugt dieselbe Eingabe stets eine Byte für Byte identische Ausgabe, was das Ergebnis sicher cache-, vergleich- und archivierbar macht.
Wie die Zerlegung berechnet und geprüft wird
Der Endpunkt führt den Cholesky-Banachiewicz-Algorithmus aus, ein zeilenweises Verfahren, das L direkt aus der Definition A = L·Lᵀ aufbaut. Für jede Diagonalposition nimmt er den entsprechenden Eintrag von A, subtrahiert die quadrierte Norm der bisher berechneten Faktorzeile und zieht die Quadratwurzel; für jede Position unter der Diagonale subtrahiert er das Skalarprodukt der beiden Teilzeilen und dividiert durch den bereits bekannten Diagonaleintrag. Diese eine Quadratwurzel ist zugleich der endgültige Positivitätstest: Der Radikand ist in jeder Zeile genau dann positiv, wenn die Matrix positiv definit ist.
Vor all dem wird die Eingabe validiert: Sie muss ein quadratisches Array mit höchstens 50 Zeilen sein, jeder Eintrag muss eine endliche Zahl innerhalb der deklarierten Größenobergrenze sein, und gespiegelte Einträge müssen innerhalb einer relativen Toleranz übereinstimmen, denn eine nicht symmetrische Matrix hat überhaupt keine Cholesky-Zerlegung.
Wo sie in der Praxis ihren Platz hat
Die beiden klassischen Heimaten von Cholesky sind Statistik und numerisches Rechnen. In der Statistik bedeutet das Ziehen von Stichproben aus einer multivariaten Normalverteilung mit Kovarianzmatrix Σ, einen Vektor unabhängiger Standardnormalen mit dem Cholesky-Faktor von Σ zu multiplizieren — Monte-Carlo-Engines tun dies millionenfach und brauchen den Faktor einmal, korrekt, im Voraus berechnet. Im numerischen Rechnen lösen Ausgleichsprobleme, Kalman-Filter und Innere-Punkte-Optimierer in jeder Iteration symmetrische positiv definite Systeme, und Cholesky ist etwa doppelt so schnell wie die allgemeine LU, weil es die Symmetrie ausnutzt und ohne Pivotisierung auskommt.
Anwendungsfälle
Validieren Sie eine Kovarianzmatrix vor dem Sampling
Prüfen Sie, ob eine geschätzte Kovarianz- oder Korrelationsmatrix wirklich positiv definit ist — und erhalten Sie den Faktor für korrelierte Monte-Carlo-Ziehungen — bevor sie eine Simulation vergiftet.
Lösen Sie ein symmetrisches System ohne Bibliothek
Holen Sie L einmal und lösen Sie dann A·x = b mit zwei Dreieckssubstitutionen in Ihrem eigenen Code, in jeder Sprache, ohne LAPACK oder NumPy einzubinden.
Prüfen Sie Ihren eigenen Lineare-Algebra-Code gegen
Vergleichen Sie den Faktor Ihrer Implementierung mit einem unabhängigen deterministischen Ergebnis, um Indexierungs- und Rundungsfehler zu finden.
Häufige Fragen
Was kostet das?
Die Ausführung in Ihrem Browser auf dieser Seite ist ebenfalls kostenlos, mit demselben Code.
Welche Matrizen werden akzeptiert?
Quadratische Matrizen bis 50×50, symmetrisch innerhalb einer relativen Toleranz, mit endlichen Einträgen bis 1e15 im Betrag. Nicht quadratische, nicht symmetrische oder nicht positiv definite Eingaben werden mit einer konkreten Fehlermeldung abgelehnt.
Was genau wird zurückgegeben?
Der untere Dreiecksfaktor L mit A = L·Lᵀ, gerundet auf die gewählte Genauigkeit (standardmäßig 10 Dezimalstellen), plus Eingabematrix, Dimension, Verfahrensname und verwendete Formel.
Wird meine Matrix gespeichert?
Nein. Sie wird im Speicher verarbeitet und verworfen; nur die berechnete Antwort verlässt die Funktion.
Wie genau ist das Ergebnis?
Der Faktor wird in doppelter Gleitkommagenauigkeit berechnet und auf die gewünschte Anzahl Dezimalstellen gerundet. Für gut konditionierte Matrizen innerhalb des Größenlimits erfüllt das gerundete Ergebnis A ≈ L·Lᵀ auf diese Genauigkeit.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/math/cholesky-decomposition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[4,12,-16],[12,37,-43],[-16,-43,98]]}'const res = await fetch("https://api.kit.forhosting.com/math/cholesky-decomposition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
4,
12,
-16
],
[
12,
37,
-43
],
[
-16,
-43,
98
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/cholesky-decomposition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
4,
12,
-16
],
[
12,
37,
-43
],
[
-16,
-43,
98
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/cholesky-decomposition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[4,12,-16],[12,37,-43],[-16,-43,98]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[4,12,-16],[12,37,-43],[-16,-43,98]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/cholesky-decomposition", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"matrix": [
[
4,
12,
-16
],
[
12,
37,
-43
],
[
-16,
-43,
98
]
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.cholesky_decomposition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_n | 50 |
max_abs_entry | 1000000000000000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Die Cholesky-Zerlegungs-API nimmt eine symmetrische positiv definite Matrix entgegen und liefert ihren unteren Dreiecksfaktor: die eindeutige Matrix L mit positiver Diagonale, für die A = L·Lᵀ gilt. Ist die Matrix nicht symmetrisch, nicht quadratisch oder nicht positiv definit, sagt die API Ihnen genau warum, statt eine plausibel aussehende falsche Antwort zu liefern.
Was die Cholesky-Zerlegung Ihnen tatsächlich liefert
Sie senden die Matrix als JSON-Array von Zeilen, optional mit einer Genauigkeit zwischen 0 und 15 Dezimalstellen, und die Antwort enthält den auf diese Genauigkeit gerundeten Faktor, die gesendete Matrix, die Dimension und den Namen des Algorithmus.
Wie die Zerlegung berechnet und geprüft wird
Ergibt ein Pivot null oder einen negativen Wert, stoppt die Berechnung und die API meldet, dass die Matrix nicht positiv definit ist, unter Nennung der Zeile, in der es scheiterte. Fehler werden als strukturierte invalid_input-Antworten zurückgegeben, niemals als numerischer Müll.
Wo sie in der Praxis ihren Platz hat
Diese API ist die Ein-Aufruf-Version dieses Schritts: nützlich, wenn Sie eine Kovarianzmatrix prüfen wollen, bevor sie einen Sampler speist, wenn eine Pipeline den Faktor braucht, ohne eine Lineare-Algebra-Bibliothek einzubinden, oder wenn Sie eine zweite Meinung zu einem Ergebnis Ihres eigenen Codes wollen. Sie läuft am Edge, ohne danach etwas aufzubewahren, kostet $0.002 pro Anfrage, und derselbe identische Code läuft kostenlos in Ihrem Browser auf dieser Seite: Fügen Sie eine Matrix ein, sehen Sie den Faktor und zahlen Sie erst, wenn Sie den Aufruf automatisieren.
Technische Fragen
Was passiert, wenn meine Matrix nicht positiv definit ist?
Die Anfrage schlägt mit einem invalid_input-Fehler fehl, der meldet, dass die Matrix nicht positiv definit ist, und die Zeile nennt, in der der Pivot scheiterte. Es wird kein Teilfaktor zurückgegeben.