Polinomial karakteristik bilangan bulat
Kembalikan koefisien menurun det(xI−A) untuk matriks persegi bilangan bulat berordo nol hingga enam dengan besar elemen sampai 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- Proyek
- Uji matriks kosong dan nilai eigen berulang, tolak baris tak seragam atau Boolean tanpa mendekati akar.
- Tinjau sebelum menerapkan
- Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
- Model
- Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
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 coefficientsTinjau kode matematika pada tingkat aplikasi
Notasi matematika dapat membuat implementasi tampak sudah pasti sebelum kontrak perangkat lunaknya diperiksa. SpectrumGorse adalah ruang kerja pemrograman AI di Windows untuk meninjau keduanya. Buka proyek dan minta model yang terhubung mengidentifikasi masukan yang diterima, representasi keluaran yang diharapkan, dan penanganan kesalahan sebelum menyarankan perubahan perhitungan.
Tugas konkret dapat berupa peninjauan rutinitas polinomial karakteristik untuk matriks bilangan bulat kecil. Sertakan pemanggil dan data uji koefisien yang diketahui secara independen, lalu minta asisten menjelaskan setiap usulan perubahan berdasarkan hal itu. Pisahkan perhitungan koefisien dari operasi lain yang mungkin dilakukan aplikasi kemudian agar peninjauan tidak diam-diam meluas menjadi penggantian pemecah numerik.
Verifikasi representasi seteliti aritmetika. Jalankan pengujian proyek untuk matriks kosong jika didukung, kasus diagonal sederhana, dan masukan bukan persegi yang ditolak. Periksa urutan koefisien dan konvensi tanda pada kode pengguna hasil, serta setiap konversi numerik yang diperkenalkan. Koefisien yang tampak masuk akal tidak cukup jika pemanggil menafsirkan urutannya secara berbeda atau memerlukan hasil bilangan bulat eksak.
SpectrumGorse mendukung endpoint yang kompatibel dengan OpenAI dan endpoint Anthropic untuk koneksi model. Pilih model AI tanpa sensor jika layanan Anda menawarkannya, dengan pembatasan dan alat yang ditentukan oleh konfigurasi tersebut. Percakapan membantu menjelaskan usulan kode; data uji independen dan pemeriksaan aplikasi Anda menentukan kesesuaiannya.
Mengevaluasi tambalan perhitungan eksak
Apa yang perlu saya berikan selain contoh matriks?
Sertakan urutan koefisien yang diharapkan, konvensi tanda, dan pemanggil yang menggunakan hasil. Tunjukkan dimensi dan jenis entri yang valid. Rincian ini memungkinkan asisten menilai kompatibilitas perangkat lunak, bukan sekadar apakah suatu ekspresi matematika tampak familier.
Bisakah koefisien diperiksa menggunakan implementasi yang sama?
Itu memberikan bukti independen yang lemah. Gunakan matriks sederhana dengan hasil yang diketahui atau pemeriksaan lain yang beralasan dalam proyek. Jelaskan cara memperoleh nilai yang diharapkan agar peninjauan dapat membedakan kesalahan bersama dari kesesuaian yang nyata.
Haruskah rutinitas polinomial juga mencari akarnya?
Hanya jika itu merupakan kebutuhan terpisah. Perhitungan koefisien eksak dan pencarian akar numerik memiliki kontrak berbeda. Fokuskan tambalan saat ini kecuali aplikasi secara eksplisit membutuhkan keduanya dan penggunaan keluarannya telah ditentukan.
Mengapa memeriksa konversi numerik dalam diff?
Konversi dapat mengubah aritmetika eksak menjadi pendekatan meskipun data uji biasa tetap lulus. Nyatakan representasi yang dibutuhkan aplikasi dan periksa bahwa operasi antara serta nilai kembali mempertahankannya dalam rentang masukan yang didukung.
SpectrumGorse · Diperbarui 2026-10-25