Eining 4 / 11

Táknræn útreikningur: Stjórna gervigreind með SymPy

Hagnaður:

  • Geta til að þekkja kjarnagetu SymPy (einföldun, þáttun, jöfnulausn, afleiða, heild, takmörk) og nota það til að sannreyna AI framleiðsla
  • Geta til að fá ákveðnar og nákvæmar niðurstöður með því að prenta SymPy kóða í gervigreind og keyra kóðann sjálfan; Skildu að það að hafa kóðann sem spáð er fyrir af gervigreind er ekki sannprófun
  • Þegar gervigreindarniðurstaðan passar ekki við SymPy úttakið, er möguleikinn á að nota SymPy sem grundvöll til að finna villuna og bæta handvirkt við fíngerðum eins og lénum.

Hagnýtasta og öflugasta tólið í þessari einingu er í þessari einingu: táknræn útreikningur og Python bókasafnið SymPy. Táknræn reikningur er að gera nákvæma stærðfræði ekki með tölum heldur með táknum (breytur eins og x, y, osfrv.): að taka heild með nákvæmri formúlu, leysa jöfnu með bókstöfum, einfalda tjáningu. SymPy er opinn uppspretta, ókeypis og ákvarðandi Python bókasafn sem gerir þetta - sem þýðir að það gefur alltaf sömu nákvæmlega réttu niðurstöðuna fyrir sama inntak. Þetta gerir það tilvalið til að staðfesta AI framleiðsla: AI gefur hraða og innsýn, SymPy gefur nákvæmni.

Aðalhugmyndin í þessari einingu er þessi: láttu gervigreindina reikna út, en láttu SymPy sannreyna niðurstöðuna. Jafnvel betra: Láttu gervigreindina skrifa SymPy kóðann, þú keyrir kóðann og færð lokaniðurstöðuna. Þannig að þú útilokar ofskynjaáhættu gervigreindarinnar með ákveðni SymPy.

Ein skilgreining í viðbót: CAS (Computer Algebra System) er almennt heiti hugbúnaðar sem framkvæmir táknræna stærðfræði; SymPy er CAS. Viðskiptadæmi eru Mathematica og Maple, en SymPy er ókeypis og aðgengilegt vegna þess að það keyrir í Python.

Kjarnageta SymPy

SymPy gerir eftirfarandi nákvæmlega:

  • Einföldun: einfalda (tjáning) minnkar tjáningu í sína einföldustu mynd.
  • Factoring / stækkun: factor() og expand().
  • Að leysa jöfnu: leysa (jöfnu, x) gefur nákvæmar rætur jöfnunnar.
  • Afleiða: diff(expr, x).
  • Samþættur: samþætta(expr, x) (óákveðinn) eða samþætta(expr, (x, a, b)) (ákveðinn).
  • Takmörk: takmörk (tjáning, x, punktur).
  • Röð stendur fyrir: röð (tjáning, x, 0, n).
  • Fylkisaðgerðir, jöfnukerfi, diffurjöfnur og fleira.

Skref fyrir skref: AI + SymPy staðfestingarvinnuflæði

1. Láttu gervigreind leysa vandamálið. Fáðu skref fyrir skref lausn og endanlega niðurstöðu.

2. Láttu gervigreindina skrifa SymPy kóða fyrir sama vandamál. Segðu "Skrifaðu kóða sem staðfestir þessa niðurstöðu með SymPy."

3. Keyrðu kóðann sjálfur. Ekki láta gervigreindina „spá fyrir“ úttak kóðans - það væri ofskynjanir. Keyrðu kóðann í alvöru Python umhverfi.

4. Berðu saman niðurstöðurnar tvær. Ef niðurstaðan sem AI og SymPy úttakið finnur handvirkt er sú sama, eykst sjálfstraustið; ef öðruvísi er bilunin í gervigreindinni (traust SymPy).

5. Ef það er munur, finndu villuna. Segðu gervigreindinni: "SymPy gaf þetta, niðurstaðan þín er önnur; finndu mistökin þín."

Athugið: Ef þú tekur kóða frá gervigreind og spyrð "hvað framleiðir þessi kóða?" Að spyrja gervigreindar“ er EKKI sannprófun – vegna þess að gervigreind getur líka myndað kóðann. Vertu viss um að keyra kóðann í raunverulegu Python umhverfi (staðbundin uppsetning, Jupyter eða Python hlaupari á netinu). Kraftur SymPy kemur í ljós þegar hann er keyrður.

AI handvirk lausn osfrv. SymPy — samanburður

eiginleiki

AI handvirk lausn

SymPy

hraða

mjög hratt

hratt

nákvæmni

Engin trygging (ofskynjanir)

Ákveðið, víst

Útskýrðu skrefin

gott

Veikt (niðurstöðumiðað)

Innsæi/stefna

gott

Engin

Hæfi til sannprófunar

nei

Besta samsetningin: gervigreind fyrir útskýringar og stefnu, SymPy fyrir nákvæmni.

þrjú smámál

Tilvik 1 - Ósamræmi í heild. Nemandi spurði AI ∫ x/(x²+1) dx. YZ gaf (1/2)·ln(x²+1) + C. Nemandi hljóp integrate(x/(x**2+1), x); SymPy skilaði log(x**2 + 1)/2. Þeir voru eins - algjört traust. Þá var afleidd stjórnun einnig gerð með diff; Það er aftur í x/(x²+1). Þreföld staðfesting, 3 mínútur.

Tilvik 2 — Einföldunarvilla. Kennari lét gervigreindina einfalda tjáninguna (x²−1)/(x−1); YZ sagði x+1 (rétt en sleppti skilyrðinu x≠1). SymPy simplify((x**2-1)/(x-1)) gaf einnig x+1, en kennarinn bætti handvirkt við lénstakmörkunum (óskilgreint á x=1). Lexía: Jafnvel SymPy leggur stundum ekki áherslu á fínleika léns; maðurinn bætir við stærðfræðilegu samhengi.

Tilfelli 3 — Jöfnukerfi. Verkfræðingur lét gervigreindina leysa línulega jöfnukerfi með 3 óþekktum hlutum og gerði mistök í einni breytu. SymPy með leysa([jöfnur], [x, y, z]) gaf nákvæma lausn; Z gildi gervigreindarinnar var rangt. Verkfræðingurinn tók SymPy niðurstöðuna og lét gervigreindina finna villuna: táknvillu. Það var leyst á 4 mínútum.

Fjögur afritanleg sniðmát

1) Að biðja um SymPy staðfestingarkóða frá YZ:

Þú leystir eftirfarandi vandamál: [vandamál], niðurstaðan þín er [niðurstaða]. Skrifaðu nú SymPy keyranlegan kóða sem SANNAÐAR þessa niðurstöðu. Láttu kóðann skilgreina táknin, reiknaðu út niðurstöðuna og prentaðu hana. Ekki giska á úttak kóðans; Ég mun keyra það.

2) Lausn frá grunni með SymPy:

Skrifaðu Python kóða sem leysir eftirfarandi vandamál með SymPy: [vandamál]. Bættu við nauðsynlegum innflutningi, táknskilgreiningum og útprentun. Skrifaðu hvað kóðinn framleiðir; Gefðu mér bara kóðann og ég mun keyra hann. Bættu stuttri athugasemd við hverja kóðalínu.

3) Lagaðu gervigreind með SymPy úttak:

Þú sagðir [niðurstaða] en SymPy gaf þetta: [SymPy output]. Þetta tvennt er ólíkt. Þar sem SymPy er ákvarðandi, samþykktu það sem rétt. Finndu út HVAÐA skref þú gerðir mistök í lausn þinni og sýndu það.

4) Afleiða/heildin krossathugunarkóði:

Þú tókst eftirfarandi heild: ∫ [f(x)] dx = [F(x)]. Til að sannreyna þetta, skrifaðu kóða í SymPy sem tekur AFLEÐU af F(x) og athugar hvort það sé jafnt og f(x) (með rökfræði simplify(diff(F)-f) == 0). Gefðu bara kóðann.

Veik kvaðning / Sterk kvaðning

Veik: "Hvað er ∫ sin²(x) dx? Athugaðu líka með SymPy og skrifaðu úttakið."
Niðurstaða: gervigreind passar bæði við svarið og „SymPy úttakið“; Hvort tveggja virðist vera í samræmi, en hvorugt hefur verið staðfest. Falskt sjálfstraust.
Strong: "Skrifaðu keyranlegan SymPy kóða fyrir ∫ sin²(x) dx (innflutningur, tákn, samþætting, prentun). Þú skrifar ekki úttakið — ég skal keyra það og sjá. Bættu líka við línu sem athugar til að aðgreina niðurstöðuna og skila henni í sin²(x)."
Niðurstaða: Þú keyrir kóðann og sérð nákvæmlega úttak SymPy; sannprófun verður raunveruleg.

Algeng mistök

  • Að láta gervigreindina spá fyrir um úttak kóðans. Þetta er ekki staðfesting; AI getur líka passað úttakið. Þú keyrir kóðann.
  • Samþykkja SymPy niðurstöðuna án þess að lesa hana. Úttakssnið SymPy er stundum óvenjulegt (t.d. log = náttúrulegur logaritmi); Vita hvernig á að túlka.
  • Að gleyma léninu. SymPy einföldun leggur ekki alltaf áherslu á takmarkanir eins og x≠1; manneskjan bætir við samhengi.
  • Röng táknskilgreining. Ef x = symbols('x') gleymist mun kóðinn ekki virka; forsendur (jákvæðar, raunverulegar) hafa áhrif á niðurstöðuna (tákn('x', jákvætt=Satt)).
  • Skortur á innflutningi. Það eru algeng mistök að gleyma að flytja inn frá sympy import * eða nauðsynlegum aðgerðum.
Ábending: Til að kanna réttmæti jöfnunar í SymPy er tjáningin simplify(left_side - right_side) == 0 mjög gagnleg: tvær segðir eru eins ef munurinn einfaldast í núll. Þetta er hreinasta leiðin til að sannreyna auðkenni eða einföldun framleidd af gervigreindinni.

Forsendur SymPy: sama tjáning, önnur niðurstaða

Fínn en mikilvægur eiginleiki SymPy er forsendukerfi þess. Þegar tákn er skilgreint geturðu gefið því eiginleika: symbols('x', positive=True) gefur til kynna að x sé jákvætt, raunverulegt=Satt gefur til kynna að það sé raunverulegt. Þessar forsendur geta breytt niðurstöðunni. Til dæmis, segðin √(x²) helst sqrt(x**2) ef það eru engar forsendur um x (vegna þess að SymPy tekur tillit til þess að x getur verið neikvætt og veit að það verður að vera |x|); En ef x er skilgreint sem jákvætt er útkoman beint x. Þetta er ekki villa, heldur stærðfræðilega strangleiki: √(x²) = |x|, ekki x = x.

AI sleppir oft eða gerir rangt ráð fyrir þessum forsendum þegar SymPy kóða er búið til. Þar af leiðandi getur kóðinn sem gervigreind framleiðir ekki gert þá einföldun sem þú „býst við“ – og þetta þýðir í raun að SymPy hegðar sér nákvæmari. Svo þegar einföldun virðist „ekki virka“ skaltu fyrst íhuga raunveruleg stærðfræðileg skilyrði vandamálsins (er x jákvætt? er það raunverulegt? er það ekki núll?) og bættu þessum forsendum við kóðann. Að fá forsendur réttar tryggir ekki aðeins að SymPy skili réttri niðurstöðu, heldur neyðir þig líka til að hugsa um svið vandamálsins - sem er hluti af stærðfræðilegri nákvæmni.

Varúð: Misbrestur SymPy í að "einfalda" tjáningu er oft ekki galli, heldur spurning um stærðfræðilega nákvæmni: þar sem nauðsynlegar forsendur (jákvæðni, raunsæi) eru ekki gefnar, heldur SymPy almennustu, öruggustu niðurstöðuna. Ef þú sérð ekki þá einföldun sem þú býst við skaltu fyrst fara yfir forsendur táknsins.

Í stuttu máli

SymPy er tilvalið ákvörðunartæki til að sannprófa stærðfræðilega úttak gervigreindar. Öflugasta verkflæði: stefna og lýsing á gervigreind, nákvæmni fyrir SymPy. Spyrðu gervigreindina um SymPy kóða, en vertu viss um að keyra úttakið sjálfur - láttu gervigreindina giska á að kóðaúttakið sé ekki staðfesting. Ef niðurstöðurnar passa ekki, treystu SymPy og láttu gervigreindina finna villuna. Krossathugaðu auðkenni með simplify(difference) == 0 og samþættingar með diff.

Umsóknarverkefni

Veldu heild, jöfnulausn og tjáningareinföldun (þrjú aðskilin verkefni). Fyrir hvern og einn, láttu gervigreindina skrifa lausnina handvirkt, síðan SymPy kóðann. Keyrðu kóðana í alvöru Python umhverfi (staðbundin uppsetning eða nethlaupari). Berðu saman SymPy úttak við handvirkar niðurstöður gervigreindar. Reyndu að finna að minnsta kosti eitt misræmi; Ef þú finnur það, láttu gervigreindina finna mistök sín. Athugaðu ferlið.

gátlisti

  • [ ] Ég fékk bæði gervigreindarlausnina og SymPy kóðann fyrir hvert vandamál.
  • [ ] Ég keyrði SymPy kóðann í alvöru Python umhverfi.
  • [ ] Ég bar saman YZ handvirku niðurstöðuna við SymPy úttakið.
  • [ ] Ég krossaði afleiðu/heilda andhverfu með SymPy.
  • [ ] Ég bætti við léninu og forsendum (jákvæð/raunveruleg) handvirkt.
  • [ ] Í deilunni treysti ég á SymPy og lét gervigreindina finna mistök sín.