Jednostka 4 / 11

Obliczenia symboliczne: kontrolowanie sztucznej inteligencji za pomocą SymPy

Zyski:

  • Umiejętność rozpoznania podstawowych możliwości SymPy (uproszczenie, faktoryzacja, rozwiązywanie równań, pochodna, całka, granica) i wykorzystania ich do walidacji wyników AI
  • Możliwość uzyskania deterministycznych i precyzyjnych wyników poprzez wydrukowanie kodu SymPy do sztucznej inteligencji i uruchomienie samego kodu; Zrozum, że przewidywanie wyniku kodu przez sztuczną inteligencję nie jest weryfikacją
  • Gdy wynik sztucznej inteligencji nie jest zgodny z wynikami SymPy, możliwość wykorzystania SymPy jako podstawy do zlokalizowania błędu i ręcznego dodania subtelności, takich jak domeny.

Najbardziej praktyczne i wydajne narzędzie tego modułu znajduje się w tej jednostce: obliczenia symboliczne i biblioteka Pythona SymPy. Rachunek symboliczny to wykonywanie matematyki dokładnej nie na liczbach, ale na symbolach (zmiennych takich jak x, y itp.): przyjmowanie całki z jej dokładnym wzorem, rozwiązywanie równania za pomocą liter, upraszczanie wyrażeń. SymPy to bezpłatna, deterministyczna biblioteka Pythona o otwartym kodzie źródłowym, która to robi — co oznacza, że ​​zawsze daje ten sam, dokładnie ten sam poprawny wynik dla tych samych danych wejściowych. Dzięki temu idealnie nadaje się do sprawdzania wyników AI: AI zapewnia szybkość i wgląd, SymPy zapewnia precyzję.

Główną ideą tej jednostki jest to, że AI wykonuje obliczenia, ale SymPy sprawdza wynik. Jeszcze lepiej: poproś sztuczną inteligencję o napisanie kodu SymPy, uruchom kod i uzyskaj końcowy wynik. Dzięki determinizmowi SymPy eliminujesz ryzyko halucynacji AI.

Jeszcze jedna definicja: CAS (Computer Algebra System) to ogólna nazwa nadawana oprogramowaniu wykonującemu matematykę symboliczną; SymPy to CAS. Komercyjne przykłady to Mathematica i Maple, ale SymPy jest bezpłatny i dostępny, ponieważ działa w Pythonie.

Podstawowe możliwości SymPy

SymPy wykonuje dokładnie następujące czynności:

  • Uproszczenie: uproszczenie(wyrażenie) redukuje wyrażenie do najprostszej postaci.
  • Faktoring/rozszerzanie: faktor() i rozwiń().
  • Rozwiązywanie równania: rozwiązanie(równanie, x) daje dokładne pierwiastki równania.
  • Pochodna: diff(wyrażenie, x).
  • Całka: integruj(wyraż, x) (nieokreślony) lub integruj(wyraż, (x, a, b)) (określony).
  • Limit: limit(wyrażenie, x, kropka).
  • Seria oznacza: serię (wyrażenie, x, 0, n).
  • Operacje na macierzach, układy równań, równania różniczkowe i inne.

Krok po kroku: proces walidacji AI + SymPy

1. Niech sztuczna inteligencja rozwiąże problem. Uzyskaj rozwiązanie krok po kroku i wynik końcowy.

2. Poproś sztuczną inteligencję o napisanie kodu SymPy dla tego samego problemu. Powiedz „Napisz kod, który zweryfikuje ten wynik za pomocą SymPy”.

3. Uruchom kod samodzielnie. Nie pozwól, aby sztuczna inteligencja „przewidywała” wynik kodu — to byłaby halucynacja. Uruchom kod w prawdziwym środowisku Python.

4. Porównaj oba wyniki. Jeśli wynik znaleziony ręcznie przez sztuczną inteligencję i wynik SymPy są takie same, pewność wzrasta; jeśli jest inny, wina leży po stronie AI (zaufaj SymPy).

5. Jeśli jest różnica, znajdź błąd. Powiedz AI: „SymPy to dało, twój wynik jest inny; znajdź swój błąd”.

Uwaga: jeśli weźmiesz kod od AI i zapytasz „co tworzy ten kod?” Zapytanie AI „NIE jest weryfikacją — ponieważ sztuczna inteligencja może również wygenerować kod wyjściowy. Pamiętaj, aby uruchomić kod w prawdziwym środowisku Python (instalacja lokalna, Jupyter lub internetowy moduł uruchamiający Python). Moc SymPy ujawnia się po jego uruchomieniu.

Ręczne rozwiązanie AI itp. SymPy — porównanie

funkcja

Rozwiązanie ręczne AI

SymPy

prędkość

bardzo szybko

szybko

precyzja

Brak gwarancji (halucynacje)

Deterministyczny, pewny

Wyjaśnij kroki

dobrze

Słabe (zorientowane na wyniki)

Intuicja/strategia

dobrze

Żadne

Kwalifikacja do weryfikacji

nie

Tak

Najlepsza kombinacja: AI do wyjaśnień i strategii, SymPy do precyzji.

trzy mini etui

Przypadek 1 — Niedopasowanie całkowe. Uczeń zapytał AI ∫ x/(x²+1) dx. YZ dało (1/2)·ln(x²+1) + C. Uczeń wykonał polecenie integr(x/(x**2+1), x); SymPy zwrócił log (x**2 + 1)/2. Byli tacy sami – pełne zaufanie. Następnie przeprowadzono również kontrolę pochodną za pomocą diff; Wracamy do x/(x²+1). Potrójne potwierdzenie, 3 minuty.

Przypadek 2 – Błąd uproszczenia. Nauczyciel kazał AI uprościć wyrażenie (x²−1)/(x−1); YZ powiedział x+1 (poprawnie, ale pominąłem warunek x≠1). SymPy simple((x**2-1)/(x-1)) również dał x+1, ale nauczyciel ręcznie dodał ograniczenie domeny (niezdefiniowane przy x=1). Lekcja: Nawet SymPy czasami nie kładzie nacisku na finezję domeny; człowiek dodaje kontekst matematyczny.

Przypadek 3 — Układ równań. Inżynier zlecił sztucznej inteligencji rozwiązanie układu równań liniowych z 3 niewiadomymi i popełnił błąd w jednej zmiennej. SymPy z rozwiązaniem([równania], [x, y, z]) dało dokładne rozwiązanie; Wartość z AI była błędna. Inżynier wziął wynik SymPy i zlecił sztucznej inteligencji znalezienie błędu: błąd znaku. Problem został rozwiązany w 4 minuty.

Cztery szablony do kopiowania

1) Prośba o kod weryfikacyjny SymPy od YZ:

Rozwiązałeś następujący problem: [problem], twój wynik to [result]. Teraz napisz kod wykonywalny SymPy, który WERYFIKUJE ten wynik. Pozwól kodowi zdefiniować symbole, obliczyć wynik i wydrukować go. Nie zgaduj wyniku kodu; Uruchomię to.

2) Rozwiązanie od podstaw z SymPy:

Napisz kod w Pythonie, który rozwiąże następujący problem z SymPy: [problem]. Dodaj niezbędne importy, definicje symboli i wydruki. Napisz, co generuje kod; Podaj mi tylko kod, a ja go uruchomię. Dodaj krótki komentarz do każdej linii kodu.

3) Napraw sztuczną inteligencję za pomocą wyjścia SymPy:

Powiedziałeś [wynik], ale SymPy dał to: [Wyjście SymPy]. Obydwa są różne. Ponieważ SymPy jest deterministyczny, zaakceptuj go jako poprawny. Dowiedz się, W JAKIM kroku w rozwiązaniu popełniłeś błąd i pokaż to.

4) Kod kontroli krzyżowej pochodnej/całkowej:

Wziąłeś następującą całkę: ∫ [f(x)] dx = [F(x)]. Aby to sprawdzić, napisz w SymPy kod, który pobiera POCHODNĄ z F(x) i sprawdza, czy jest ona równa f(x) (z logiką uproszczenia(diff(F)-f) == 0). Po prostu podaj kod.

Słaba zachęta/silna zachęta

Słabe: „Co to jest ∫ sin²(x) dx? Sprawdź także w SymPy i zapisz wynik”.
Wynik: sztuczna inteligencja pasuje zarówno do odpowiedzi, jak i do „wyjścia SymPy”; Obie wydają się spójne, ale żadna nie została potwierdzona. Fałszywa pewność siebie.
Strong: „Napisz wykonywalny kod SymPy dla ∫ sin²(x) dx (import, symbol, integracja, wydruk). Nie piszesz wyniku — uruchomię go i zobaczę. Dodaj także linię, która sprawdza, czy różniczkuje wynik i zwraca go do sin²(x).”
Wynik: uruchamiasz kod i widzisz dokładny wynik SymPy; weryfikacja staje się faktem.

Typowe błędy

  • Posiadanie sztucznej inteligencji przewidywającej wynik kodu. To nie jest weryfikacja; AI może również dopasować dane wyjściowe. Uruchamiasz kod.
  • Akceptowanie wyniku SymPy bez jego czytania. Format wyjściowy SymPy jest czasami nietypowy (np. log = logarytm naturalny); Wiedz, jak interpretować.
  • Zapominanie domeny. Uproszczenie SymPy nie zawsze podkreśla ograniczenia takie jak x≠1; człowiek dodaje kontekst.
  • Nieprawidłowa definicja symbolu. Jeśli zapomnisz o x = symbols('x'), kod nie będzie działać; założenia (dodatnie, rzeczywiste) wpływają na wynik (symbole („x”, dodatnie = prawda)).
  • Brak importu. Częstym błędem jest zapominanie o importowaniu z sympy import * lub niezbędnych funkcji.
Wskazówka: Aby sprawdzić poprawność równości w SymPy, bardzo przydatne jest wyrażenie uproszczenie(lewa_strona - prawa_strona) == 0: dwa wyrażenia są identyczne, jeśli różnica upraszcza się do zera. To najczystszy sposób weryfikacji tożsamości lub uproszczenia stworzonego przez sztuczną inteligencję.

Założenia SymPy: to samo wyrażenie, inny wynik

Subtelną, ale ważną cechą SymPy jest system założeń. Definiując symbol, możesz nadać mu właściwości: symbols('x', dodatni=True) wskazuje, że x jest dodatnie, real=True oznacza, że ​​jest on rzeczywisty. Założenia te mogą zmienić wynik. Na przykład wyrażenie √(x²) pozostaje sqrt(x**2), jeśli nie ma żadnych założeń dotyczących x (ponieważ SymPy bierze pod uwagę, że x może być ujemne i wie, że musi to być |x|); Ale jeśli x jest zdefiniowane jako dodatnie, wynikiem jest bezpośrednio x. To nie jest błąd, ale ścisłość matematyczna: √(x²) = |x|, a nie x = x.

AI często pomija lub błędnie przyjmuje te założenia podczas generowania kodu SymPy. W rezultacie kod generowany przez sztuczną inteligencję może nie zapewniać uproszczenia, jakiego „oczekujesz” — a to w rzeczywistości oznacza, że ​​SymPy zachowuje się dokładniej. Kiedy zatem wydaje się, że uproszczenie „nie działa”, najpierw rozważ rzeczywiste warunki matematyczne problemu (czy x jest dodatnie? czy jest rzeczywiste? czy jest różne od zera?) i dodaj te założenia do kodu. Prawidłowe przyjęcie założeń nie tylko gwarantuje, że SymPy zwróci poprawny wynik, ale także zmusza Cię do zastanowienia się nad dziedziną problemu – co jest częścią matematycznej dokładności.

Uwaga: Brak „uproszczenia” wyrażenia przez SymPy często nie jest wadą, ale kwestią matematycznej dyscypliny: ponieważ nie podano niezbędnych założeń (pozytywność, realizm), SymPy zapewnia najbardziej ogólny i najbezpieczniejszy wynik. Jeśli nie widzisz oczekiwanego uproszczenia, najpierw przejrzyj założenia dotyczące symboli.

Podsumowując

SymPy to idealne narzędzie deterministyczne do sprawdzania wyników matematycznych sztucznej inteligencji. Najpotężniejszy przepływ pracy: strategia i opis do AI, precyzja do SymPy. Poproś sztuczną inteligencję o kod SymPy, ale pamiętaj, aby samodzielnie uruchomić dane wyjściowe — dzięki czemu sztuczna inteligencja zgadnie, że wynik kodu nie jest walidacją. Jeśli wyniki nie są zgodne, zaufaj SymPy i pozwól sztucznej inteligencji znaleźć błąd. Sprawdź tożsamość krzyżowo za pomocą funkcji uproszczenie(różnica) == 0 i całki za pomocą metody różnicowej.

Zadanie aplikacji

Wybierz całkę, rozwiązanie równania i uproszczenie wyrażeń (trzy osobne zadania). Dla każdego z nich poproś sztuczną inteligencję o ręczne zapisanie rozwiązania, a następnie kod SymPy. Uruchom kody w prawdziwym środowisku Python (instalacja lokalna lub moduł uruchamiający online). Porównaj wyniki SymPy z wynikami ręcznymi AI. Spróbuj znaleźć przynajmniej jedną rozbieżność; Jeśli go znajdziesz, poproś sztuczną inteligencję o znalezienie błędu. Zwróć uwagę na proces.

lista kontrolna

  • [ ] Otrzymałem zarówno rozwiązanie AI, jak i kod SymPy dla każdego problemu.
  • [ ] Uruchomiłem kod SymPy w prawdziwym środowisku Pythona.
  • [ ] Porównałem wynik ręczny YZ z wyjściem SymPy.
  • [ ] Sprawdziłem krzyżowo odwrotność pochodnej/całki za pomocą SymPy.
  • [ ] Dodałem domenę i założenia (pozytywne/rzeczywiste) ręcznie.
  • [ ] W sporze polegałem na SymPy i zleciłem AI znalezienie błędu.