Polinoame caracteristice întregi
Întoarce coeficienții descrescători ai det(xI−A) pentru o matrice pătrată întreagă de ordin zero până la șase cu elemente de modul până la 1000.
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- Proiect
- Testează matricea goală și valori proprii repetate, respingând rânduri inegale sau valori booleene fără aproximarea rădăcinilor.
- Verifică înainte de aplicare
- Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
- Modele
- Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
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 coefficientsAnalizează codul matematic la nivelul aplicației
Notația matematică poate face o implementare să pară definitivă înainte de examinarea contractului său software. SpectrumGorse este un spațiu de programare cu IA pentru Windows destinat analizei ambelor aspecte. Deschide proiectul și cere modelului conectat să identifice intrările acceptate, reprezentarea așteptată a ieșirii și tratarea erorilor înainte de a sugera modificări ale calculului.
O sarcină concretă ar putea analiza o rutină de polinom caracteristic pentru matrice mici cu numere întregi. Furnizează apelantul și cazuri de test cu coeficienți cunoscuți independent, apoi cere asistentului să explice orice modificare propusă în acești termeni. Separă calculul coeficienților de alte operații pe care aplicația le-ar putea efectua ulterior, astfel încât analiza să nu se extindă tacit la înlocuirea unui rezolvitor numeric.
Verifică reprezentarea la fel de atent ca aritmetica. Rulează testele proiectului pentru o matrice vidă, dacă este acceptată, cazuri diagonale simple și intrări nepătratice respinse. Verifică ordinea coeficienților și convențiile semnelor la consumator și examinează orice conversie numerică introdusă. Un răspuns cu coeficienți plauzibili nu este suficient dacă apelantul interpretează diferit ordinea lor sau cere rezultate întregi exacte.
SpectrumGorse acceptă endpointuri compatibile OpenAI și Anthropic pentru conectarea modelelor. Selectează un model IA fără cenzură acolo unde serviciul oferă unul; restricțiile și instrumentele sunt guvernate de acea configurație. Conversația ajută la explicarea codului propus; cazurile independente și verificările aplicației stabilesc dacă este potrivit.
Evaluarea unei modificări de calcul exact
Ce trebuie să furnizez pe lângă o matrice exemplu?
Include ordinea așteptată a coeficienților, convenția semnelor și apelantul care consumă rezultatul. Arată dimensiunile și tipurile valide ale elementelor. Aceste detalii permit asistentului să evalueze compatibilitatea software, nu doar dacă o expresie matematică pare familiară.
Pot verifica coeficienții cu aceeași implementare?
Aceasta ar oferi dovezi independente slabe. Folosește matrice simple cu rezultate cunoscute sau altă verificare justificată în proiect. Explică obținerea valorilor așteptate, astfel încât analiza să distingă o greșeală comună de un acord real.
O rutină pentru polinoame ar trebui să le găsească și rădăcinile?
Numai dacă aceasta este o cerință separată. Calculul exact al coeficienților și găsirea numerică a rădăcinilor au contracte diferite. Menține modificarea concentrată, cu excepția cazului în care aplicația cere explicit ambele și ai definit utilizarea ieșirilor lor.
De ce să examinez conversiile numerice din diferențele de cod?
O conversie poate transforma aritmetica exactă într-o aproximare chiar dacă testele obișnuite trec în continuare. Precizează reprezentarea cerută de aplicație și verifică dacă atât operațiile intermediare, cât și valorile returnate o păstrează în intervalul de intrare acceptat.
SpectrumGorse · Actualizat 2026-10-25