Ganzzahlige charakteristische Polynome
Gib die absteigenden Koeffizienten von det(xI−A) für quadratische Ganzzahlmatrizen der Ordnung null bis sechs mit Eintragsbeträgen bis 1000 zurück.
def characteristic_polynomial(matrix):
if type(matrix) not in (list, tuple) or len(matrix) > 6:
raise ValueError("charpoly.size")
n = len(matrix)
if any(type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int or abs(v) > 1000 for v in row) for row in matrix):
raise ValueError("charpoly.entry")
block = [[int(i == j) for j in range(n)] for i in range(n)]
coefficients = [1]
for degree in range(1, n+1):
product = [[sum(matrix[i][k]*block[k][j] for k in range(n)) for j in range(n)] for i in range(n)]
trace = sum(product[i][i] for i in range(n))
coefficient = -trace // degree
coefficients.append(coefficient)
block = [[product[i][j] + (coefficient if i == j else 0) for j in range(n)] for i in range(n)]
return coefficients- Projekt
- Prüfe die leere Matrix und mehrfache Eigenwerte, lehne ungleich lange Zeilen und boolesche Einträge ohne Näherung der Nullstellen ab.
- Vor dem Anwenden prüfen
- Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
- Modelle
- Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
def characteristic_polynomial(matrix):
if type(matrix) not in (list, tuple) or len(matrix) > 6:
raise ValueError("charpoly.size")
n = len(matrix)
if any(type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int or abs(v) > 1000 for v in row) for row in matrix):
raise ValueError("charpoly.entry")
block = [[int(i == j) for j in range(n)] for i in range(n)]
coefficients = [1]
for degree in range(1, n+1):
product = [[sum(matrix[i][k]*block[k][j] for k in range(n)) for j in range(n)] for i in range(n)]
trace = sum(product[i][i] for i in range(n))
coefficient = -trace // degree
coefficients.append(coefficient)
block = [[product[i][j] + (coefficient if i == j else 0) for j in range(n)] for i in range(n)]
return coefficientsPrüfen Sie mathematischen Code im Anwendungskontext
Mathematische Notation kann eine Implementierung abgeschlossen wirken lassen, bevor ihr Softwarevertrag geprüft wurde. SpectrumGorse ist ein KI-Programmierarbeitsbereich für Windows zur Prüfung beider Aspekte. Öffnen Sie das Projekt und lassen Sie das verbundene Modell akzeptierte Eingaben, erwartete Ausgabedarstellung und Fehlerbehandlung bestimmen, bevor es Änderungen an der Berechnung vorschlägt.
Eine konkrete Aufgabe könnte eine Routine für charakteristische Polynome kleiner ganzzahliger Matrizen prüfen. Geben Sie den aufrufenden Code und unabhängig bekannte Koeffizienten-Testfälle an und lassen Sie den Assistenten jeden Änderungsvorschlag daran erläutern. Trennen Sie die Koeffizientenberechnung von späteren Operationen der Anwendung, damit die Prüfung nicht unbemerkt zum Austausch eines numerischen Lösungsverfahrens wird.
Prüfen Sie die Darstellung ebenso sorgfältig wie die Arithmetik. Führen Sie Projekttests für eine leere Matrix, sofern unterstützt, einfache Diagonalfälle und zurückgewiesene nichtquadratische Eingaben aus. Prüfen Sie Koeffizientenreihenfolge und Vorzeichenkonventionen beim Empfänger sowie neu eingeführte Zahlenumwandlungen. Plausible Koeffizienten reichen nicht, wenn der aufrufende Code ihre Reihenfolge anders deutet oder exakte ganzzahlige Ergebnisse benötigt.
SpectrumGorse unterstützt OpenAI-kompatible und Anthropic-Endpunkte für Modellverbindungen. Wählen Sie ein unzensiertes KI-Modell, sofern Ihr Dienst eines anbietet; Einschränkungen und Werkzeuge werden durch diese Konfiguration bestimmt. Das Gespräch hilft, vorgeschlagenen Code zu erläutern. Ihre unabhängigen Testfälle und Anwendungsprüfungen entscheiden, ob er passt.
Eine Korrektur exakter Berechnungen bewerten
Was sollte ich neben einer Beispielmatrix bereitstellen?
Geben Sie die erwartete Koeffizientenreihenfolge, Vorzeichenkonvention und den Code an, der das Ergebnis verarbeitet. Zeigen Sie zulässige Dimensionen und Eintragstypen. So kann der Assistent die Softwarekompatibilität beurteilen, statt nur die Vertrautheit eines mathematischen Ausdrucks.
Kann dieselbe Implementierung die Koeffizienten prüfen?
Das wäre ein schwacher unabhängiger Beleg. Verwenden Sie einfache Matrizen mit bekannten Ergebnissen oder eine andere begründete Projektprüfung. Erläutern Sie die Herleitung der Erwartungswerte, damit die Prüfung einen gemeinsamen Fehler von tatsächlicher Übereinstimmung unterscheiden kann.
Sollte eine Polynomroutine auch Nullstellen bestimmen?
Nur als gesonderte Anforderung. Exakte Koeffizientenberechnung und numerische Nullstellensuche haben unterschiedliche Verträge. Begrenzen Sie die aktuelle Änderung, sofern die Anwendung nicht ausdrücklich beides benötigt und die Verwendung beider Ausgaben festgelegt ist.
Warum Zahlenumwandlungen in der Änderungsansicht prüfen?
Eine Umwandlung kann exakte Arithmetik in eine Näherung verwandeln, obwohl gewöhnliche Testfälle weiterhin bestehen. Legen Sie die benötigte Darstellung fest und prüfen Sie, dass Zwischenoperationen und Rückgabewerte sie im unterstützten Eingabebereich erhalten.
SpectrumGorse · Aktualisiert 2026-10-25