Satuan 4 / 11

Perhitungan Simbolik: Mengontrol Kecerdasan Buatan dengan SymPy

Keuntungan:

  • Kemampuan untuk mengenali kemampuan inti SymPy (penyederhanaan, faktorisasi, penyelesaian persamaan, turunan, integral, batas) dan menggunakannya untuk memvalidasi keluaran AI
  • Kemampuan untuk memperoleh hasil yang deterministik dan tepat dengan mencetak kode SymPy ke kecerdasan buatan dan menjalankan kode itu sendiri; Pahami bahwa prediksi keluaran kode oleh kecerdasan buatan bukanlah verifikasi
  • Ketika hasil kecerdasan buatan tidak cocok dengan keluaran SymPy, kemampuan untuk menggunakan SymPy sebagai dasar untuk menemukan kesalahan dan secara manual menambahkan seluk-beluk seperti domain.

Alat yang paling praktis dan kuat dari modul ini ada di unit ini: komputasi simbolik dan perpustakaan Python SymPy-nya. Kalkulus simbolik adalah mengerjakan matematika eksak bukan dengan angka tetapi dengan simbol (variabel seperti x, y, dll.): mengambil integral dengan rumus eksaknya, menyelesaikan persamaan dengan huruf, menyederhanakan suatu ekspresi. SymPy adalah pustaka Python sumber terbuka, gratis, dan deterministik yang melakukan hal ini — artinya ia selalu memberikan hasil yang persis sama untuk masukan yang sama. Hal ini membuatnya ideal untuk memvalidasi keluaran AI: AI memberikan kecepatan dan wawasan, SymPy memberikan presisi.

Ide utama dari unit ini adalah: minta AI melakukan perhitungan, tetapi SymPy memvalidasi hasilnya. Bahkan lebih baik lagi: Minta AI menulis kode SymPy, Anda menjalankan kode tersebut dan mendapatkan hasil akhirnya. Jadi Anda menghilangkan risiko halusinasi AI dengan determinisme SymPy.

Satu definisi lagi: CAS (Computer Algebra System) adalah nama umum yang diberikan kepada perangkat lunak yang melakukan matematika simbolik; SymPy adalah CAS. Contoh komersialnya adalah Mathematica dan Maple, tetapi SymPy gratis dan dapat diakses karena dijalankan dengan Python.

Kemampuan inti SymPy

SymPy melakukan hal berikut dengan tepat:

  • Penyederhanaan: menyederhanakan (ekspresi) mereduksi suatu ekspresi ke bentuk yang paling sederhana.
  • Memfaktorkan / memperluas: faktor() dan perluasan().
  • Menyelesaikan persamaan: solve(equation, x) menghasilkan akar-akar eksak dari persamaan tersebut.
  • Turunan: diff(expr, x).
  • Integral: mengintegrasikan(expr, x) (tidak terbatas) atau mengintegrasikan(expr, (x, a, b)) (pasti).
  • Batas: batas (ekspresi, x, titik).
  • Seri singkatan dari: seri (ekspresi, x, 0, n).
  • Operasi matriks, sistem persamaan, persamaan diferensial dan banyak lagi.

Langkah demi langkah: Alur kerja validasi AI + SymPy

1. Minta AI untuk menyelesaikan masalahnya. Dapatkan solusi langkah demi langkah dan hasil akhir.

2. Minta AI menulis kode SymPy untuk masalah yang sama. Ucapkan "Tulis kode yang memverifikasi hasil ini dengan SymPy."

3. Jalankan sendiri kodenya. Jangan biarkan AI "memprediksi" keluaran kode — itu akan menjadi halusinasi. Jalankan kode di lingkungan Python nyata.

4. Bandingkan kedua hasil tersebut. Jika hasil yang ditemukan secara manual oleh AI dan keluaran SymPy sama, kepercayaan meningkat; jika berbeda, kesalahannya ada pada AI (trust SymPy).

5. Jika ada perbedaan, carilah kesalahannya. Katakan pada AI, "SymPy memberikan ini, hasil Anda berbeda; temukan kesalahan Anda."

Perhatian: Jika Anda mengambil kode dari AI dan bertanya "apa yang dihasilkan kode ini?" Meminta AI " BUKAN verifikasi - karena AI juga dapat membuat keluaran kode. Pastikan untuk menjalankan kode di lingkungan Python nyata (instalasi lokal, Jupyter, atau pelari Python online). Kekuatan SymPy terungkap saat dijalankan.

Solusi manual AI, dll. SymPy — perbandingan

fitur

Solusi manual AI

SimPy

kecepatan

sangat cepat

cepat

presisi

Tidak ada jaminan (halusinasi)

deterministik, pasti

Jelaskan langkah-langkahnya

bagus

Lemah (berorientasi pada hasil)

Intuisi/strategi

bagus

Tidak ada

Kelayakan untuk verifikasi

tidak

Ya

Kombinasi terbaik: AI untuk penjelasan dan strategi, SymPy untuk presisi.

tiga kasus mini

Kasus 1 — Ketidakcocokan integral. Seorang siswa bertanya pada AI ∫ x/(x²+1) dx. YZ memberikan (1/2)·ln(x²+1) + C. Siswa menjalankan integral(x/(x**2+1), x); SymPy mengembalikan log(x**2 + 1)/2. Mereka sama – kepercayaan penuh. Kemudian pengendalian derivatif juga dilakukan dengan diff; Kembali ke x/(x²+1). Konfirmasi tiga kali lipat, 3 menit.

Kasus 2 — Kesalahan penyederhanaan. Seorang guru meminta AI menyederhanakan ekspresi (x²−1)/(x−1); YZ menjawab x+1 (benar tetapi tidak memenuhi syarat x≠1). SymPy simplify((x**2-1)/(x-1)) juga memberikan x+1, tetapi guru secara manual menambahkan batasan domain (tidak ditentukan pada x=1). Pelajaran: Bahkan SymPy terkadang tidak menekankan kemahiran domain; manusia menambahkan konteks matematika.

Kasus 3 — Sistem persamaan. Seorang insinyur meminta AI memecahkan sistem persamaan linear dengan 3 hal yang tidak diketahui dan membuat kesalahan dalam satu variabel. SymPy dengan solve([equations], [x, y, z]) memberikan solusi yang tepat; Nilai z AI salah. Insinyur mengambil hasil SymPy dan meminta AI menemukan bug: kesalahan tanda. Itu diselesaikan dalam 4 menit.

Empat templat yang dapat disalin

1) Meminta kode verifikasi SymPy dari YZ:

Anda memecahkan masalah berikut: [masalah], hasil Anda adalah [hasil]. Sekarang tulis kode SymPy yang dapat dieksekusi yang MEMVERIFIKASI hasil ini. Biarkan kode menentukan simbolnya, hitung hasilnya dan cetak. Jangan menebak keluaran kodenya; Saya akan menjalankannya.

2) Solusi dari awal dengan SymPy:

Tulis kode Python yang memecahkan masalah berikut dengan SymPy: [problem]. Tambahkan impor, definisi simbol, dan cetakan yang diperlukan. Tulis apa yang dihasilkan kode tersebut; Berikan saja saya kodenya dan saya akan menjalankannya. Tambahkan komentar singkat ke setiap baris kode.

3) Perbaiki AI dengan keluaran SymPy:

Anda mengatakan [hasil], tetapi SymPy memberikan ini: [Keluaran SymPy]. Keduanya berbeda. Karena SymPy bersifat deterministik, terimalah itu sebagai kebenaran. Cari tahu langkah mana yang Anda buat kesalahan dalam solusi Anda dan tunjukkan.

4) Kode cross check turunan/integral:

Anda mengambil integral berikut: ∫ [f(x)] dx = [F(x)]. Untuk memverifikasi ini, tulis kode di SymPy yang mengambil DERIVATIVE dari F(x) dan periksa apakah sama dengan f(x) (dengan logika simplify(diff(F)-f) == 0). Berikan saja kodenya.

Perintah lemah / Perintah kuat

Lemah: "Apa itu ∫ sin²(x) dx? Periksa juga dengan SymPy dan tulis hasilnya."
Hasil: AI cocok dengan jawaban dan "output SymPy"; Keduanya tampak konsisten, namun belum ada yang terkonfirmasi. Keyakinan palsu.
Kuat: "Tulis kode SymPy yang dapat dieksekusi untuk ∫ sin²(x) dx (impor, simbol, integrasi, cetak). Anda tidak menulis hasilnya — saya akan menjalankannya dan melihatnya. Tambahkan juga baris yang memeriksa untuk membedakan hasil dan mengembalikannya ke sin²(x).."
Hasil: Anda menjalankan kode dan melihat keluaran persis dari SymPy; verifikasi menjadi nyata.

Kesalahan umum

  • Meminta AI memprediksi keluaran kode. Ini bukan validasi; AI juga bisa menyesuaikan outputnya. Anda menjalankan kodenya.
  • Menerima hasil SymPy tanpa membacanya. Format keluaran SymPy terkadang tidak biasa (misalnya log = logaritma natural); Tahu bagaimana menafsirkan.
  • Lupa domainnya. Penyederhanaan SymPy tidak selalu menekankan batasan seperti x≠1; manusia menambahkan konteks.
  • Definisi simbol salah. Jika x = simbol('x') dilupakan, kode tidak akan berfungsi; asumsi (positif, nyata) mempengaruhi hasil (simbol('x', positif=Benar)).
  • Kurangnya impor. Merupakan kesalahan umum jika lupa mengimpor dari sympy import * atau fungsi yang diperlukan.
Tip: Untuk memeriksa kebenaran persamaan di SymPy, ekspresi menyederhanakan(sisi_kiri - sisi_kanan) == 0 sangat berguna: dua ekspresi identik jika perbedaannya disederhanakan menjadi nol. Ini adalah cara terbersih untuk memverifikasi identitas atau penyederhanaan yang dihasilkan oleh AI.

Asumsi SymPy: ekspresi sama, hasil berbeda

Fitur halus namun penting dari SymPy adalah sistem asumsinya. Saat mendefinisikan sebuah simbol, Anda dapat memberinya properti: simbol ('x', positif=True) menunjukkan bahwa x positif, real=True menunjukkan bahwa itu nyata. Asumsi-asumsi ini dapat mengubah hasilnya. Misalnya, ekspresi √(x²) tetap sqrt(x**2) jika tidak ada asumsi tentang x (karena SymPy memperhitungkan bahwa x bisa negatif dan mengetahui bahwa x pasti |x|); Tetapi jika x didefinisikan positif maka hasilnya langsung x. Ini bukan kesalahan, tapi ketelitian matematis: √(x²) = |x|, bukan x = x.

AI sering kali menghilangkan atau salah mengasumsikan asumsi ini saat membuat kode SymPy. Akibatnya, kode yang dihasilkan AI mungkin tidak melakukan penyederhanaan yang Anda “harapkan” — dan ini berarti SymPy berperilaku lebih akurat. Jadi ketika penyederhanaan tampak “tidak berhasil”, pertama-tama pertimbangkan kondisi matematis sebenarnya dari soal tersebut (apakah x positif? apakah nyata? bukan nol?) dan tambahkan asumsi tersebut ke dalam kode. Mendapatkan asumsi yang benar tidak hanya memastikan bahwa SymPy mengembalikan hasil yang benar, tetapi juga memaksa Anda memikirkan domain masalahnya—yang merupakan bagian dari akurasi matematika.

Perhatian: Kegagalan SymPy untuk "menyederhanakan" suatu ekspresi seringkali bukan merupakan suatu kekurangan, namun masalah ketelitian matematis: karena asumsi yang diperlukan (positif, realisme) tidak diberikan, SymPy memegang hasil yang paling umum dan paling aman. Jika Anda tidak melihat penyederhanaan yang Anda harapkan, tinjau dulu asumsi simbolnya.

Singkatnya

SymPy adalah alat deterministik yang ideal untuk memvalidasi keluaran matematika AI. Alur kerja paling kuat: strategi dan deskripsi AI, presisi untuk SymPy. Mintalah kode SymPy kepada AI, tetapi pastikan untuk menjalankan sendiri keluarannya — membuat AI menebak bahwa keluaran kode tersebut bukan validasi. Jika hasilnya tidak cocok, percayakan pada SymPy dan biarkan AI menemukan kesalahannya. Periksa ulang identitas dengan simplify(difference) == 0 dan integral dengan diff.

Tugas aplikasi

Pilih integral, solusi persamaan, dan penyederhanaan ekspresi (tiga soal terpisah). Untuk masing-masingnya, minta AI menulis solusinya secara manual, lalu kode SymPy. Jalankan kode di lingkungan Python nyata (instalasi lokal atau runner online). Bandingkan keluaran SymPy dengan hasil manual AI. Cobalah untuk menemukan setidaknya satu perbedaan; Jika Anda menemukannya, biarkan AI menemukan kesalahannya. Perhatikan prosesnya.

daftar periksa

  • [ ] Saya menerima solusi AI dan kode SymPy untuk setiap masalah.
  • [] Saya menjalankan kode SymPy di ​​lingkungan Python nyata.
  • [ ] Saya membandingkan hasil manual YZ dengan keluaran SymPy.
  • [ ] Saya memeriksa ulang turunan/invers integral dengan SymPy.
  • [ ] Saya menambahkan domain dan asumsi (positif/nyata) secara manual.
  • [ ] Dalam perselisihan tersebut, saya mengandalkan SymPy dan meminta AI menemukan kesalahannya.