Unità 5 / 11

Kalkolu Numeriku, Python u Ġenerazzjoni tal-Kodiċi

Qligħ:

  • Kapaċità li tiddistingwi bejn kalkulu simboliku u numeriku u tagħżel l-għodda t-tajba (SymPy jew NumPy/SciPy) għal kull problema
  • Kapaċità li taqra u tifhem il-kodiċi numeriku prodott mill-intelliġenza artifiċjali, tħaddem lilek innifsek, u tivverifikah billi twettaq test tas-sens komun b'input magħruf.
  • Jifhmu l-limiti tal-preċiżjoni tan-numri b'punt li jvarja, uża t-tolleranza minflok l-ugwaljanza eżatta, u mmaniġġja l-impatt tal-guessing inizjali fuq metodi numeriċi.

Il-kalkulu simboliku jagħti l-formula eżatta ta’ integrali jew ekwazzjoni; Iżda l-biċċa l-kbira tal-problemi prattiċi fil-matematika ma jistgħux jiġu solvuti b'formula magħluqa. Dan huwa fejn tidħol il-komputazzjoni numerika: tipproduċi riżultat numeriku approssimattiv bil-preċiżjoni mixtieqa, aktar milli formula eżatta. Sib il-valur ta 'integral għal 0.001 preċiżjoni, kalkolu ta' l-għerq ta 'ekwazzjoni għall-approssimazzjoni deċimali, estrazzjoni ta' statistika minn sett ta 'dejta - dawn huma kollha kalkoli numeriċi. F'Python, l-għodod għal dan huma l-libreriji NumPy (arrays numeriċi u matematika) u SciPy (kompjuters xjentifiċi). F'din l-unità, titgħallem tuża l-AI bħala assistent li jiġġenera kodiċi Python għall-kalkolu numeriku u tivverifika l-korrettezza tal-kodiċi.

Definizzjoni kritika: numru floating-point huwa format li fih kompjuter jaħżen numri deċimali bi preċiżjoni limitata. Huwa għalhekk li fl-aritmetika tal-kompjuter, 0.1 + 0.2 jista 'jirriżulta li jkun 0.3000000000000004, mhux eżattament 0.3. Dan mhuwiex żball, huwa n-natura tal-kalkolu numeriku - iżda se jwassal għal riżultati żbaljati jekk ma tkunx konxju minnu. Fil-kalkolu numeriku, wieħed jaħdem ma '"qrib biżżejjed" aktar milli "ugwaljanza eżatta".

Simboliku jew numeriku? Tagħżel l-għodda t-tajba

Status

Simboliku (SymPy)

Numeriku (NumPy/SciPy)

Hemm formula magħluqa

preferut

mhux meħtieġ

L-ebda formula/kumplessa wisq

ma tistax issolvi

preferut

Preċiżjoni sħiħa meħtieġa

Iva

Appross.

Big data / multi-ipproċessar

bil-mod

malajr ħafna

Ir-riżultat b'deċimal huwa biżżejjed

addattat

Prattikanti tajjeb juża t-tnejn: issolvi simbolikament jekk possibbli, mur numeriku jekk le, u kontroċċekkja waħda mal-oħra kull meta jkun possibbli.

Pass pass: Kalkolu numeriku sigur bl-AI

1. Identifika l-problema u s-sensittività. "Kemm postijiet deċimali?" u "f'liema medda?" Iċċara l-mistoqsijiet tiegħek.

2. Ikteb kodiċi lill-AI, mhux output. Ftakar mill-unità 4: M'għandekx tagħmel l-output tal-kodiċi tal-previżjoni tal-AI. Inti tmexxi l-kodiċi.

3. Aqra u tifhem il-kodiċi. Ifhem il-kodiċi ġġenerat linja b'linja. Librerija t-tajba, funzjoni t-tajba, parametri t-tajba? Tħaddimx kodiċi li ma tifhimx.

4. Test b'sitwazzjoni magħrufa. Ipprova l-kodiċi b'input sempliċi li għalih diġà taf it-tweġiba. Pereżempju, sin(0)=0, bħall-valur ta' integrali magħrufa. Jekk il-kodiċi jagħtiha b'mod korrett, inti tafdah aktar.

5. Cross check simbolikament jew manwalment. Jekk possibbli, ikkonferma l-istess riżultat b'SymPy jew b'approċċ manwali.

6. Oqgħod attent min-nases floating point. Minflok ugwaljanza stretta ma ==, uża tolleranzi bħal abs(a - b) < 1e-9.

Tip: Dejjem ittestja kodiċi numeriku "bi tweġiba li taf". Jekk ktibt finder għerq, l-ewwel applikaha għal ekwazzjoni b'għerq magħruf (x=±2), bħal x²−4=0. Jekk il-kodiċi jsib dan korrett, isir aktar probabbli li jkun affidabbli fuq ekwazzjonijiet li ma tafx. Dan il-"kontroll tas-sanità" huwa l-orħos verifika.

L-iżvantaġġ tal-kalkulu numeriku: konverġenza u akkumulazzjoni ta 'żbalji.

Il-biċċa l-kbira tal-metodi numeriċi jaħdmu b'mod iterattiv: jibdew minn raden inizjali u jersqu gradwalment lejn it-tweġiba attwali. Dan il-proċess ta’ qrib jissejjaħ konverġenza. Iżda mhux kull metodu iterattiv dejjem jikkonverġi; xi wħud jiddiverġu (jitbiegħdu mir-riżultat) jew jikkonverġu għal valur mhux korrett. Jekk kodiċi ġġenerat mill-AI ma jiċċekkjax jekk il-metodu jikkonverġix, jista 'skiet jagħtik numru żbaljat. Allura sempliċement għax riżultat numeriku "pproduċa numru" ma jagħmilx veru; Jeħtieġ ukoll li jiġi kkonfermat li dak in-numru fil-fatt jikkonverġi lejn is-soluzzjoni mfittxija.

It-tieni sottili hija l-akkumulazzjoni ta 'żbalji. F'katina twila ta 'kalkoli, żbalji żgħar fl-arrotondament ta' punt li jvarja f'kull pass jistgħu jakkumulaw u jsiru akbar; Speċjalment meta tieħu d-differenza ta 'żewġ numri kbar qrib ħafna (din tissejjaħ kanċellazzjoni katastrofika), ċifri sinifikanti tar-riżultat jistgħu jintilfu. L-intelliġenza artifiċjali mhux dejjem tbassar problemi ta' stabbiltà numerika bħal dawn. F'kalkoli kritiċi, il-kalkolu mill-ġdid u t-tqabbil tar-riżultat b'metodu differenti jew bi preċiżjoni ogħla jiżvela akkumulazzjoni ta 'żbalji moħbija.

Attenzjoni: "Li tagħti riżultat" u "konverġenza għar-riżultat korrett" ta 'metodu numeriku huma żewġ affarijiet differenti. Kun żgur li l-kodiċi jinkludi kontroll tal-konverġenza (eż., li d-differenza bejn żewġ passi suċċessivi ssir żgħira biżżejjed); Jekk ma fihiex, agħmel li l-intelliġenza artifiċjali żżid dan il-kontroll.

tliet każijiet żgħar

Każ 1 — Għażla mhux korretta tal-funzjoni. Student talab lill-AI għall-kodiċi biex issib l-għerq ta 'funzjoni. AI użat scipy.optimize.fsolve, iżda għażlet raden inizjali ħażina u kkonverġiet għall-għerq ħażin. L-istudent l-ewwel eżamina l-funzjoni billi għamel graff tagħha (ara l-unità tal-viżwalizzazzjoni), ta l-raden inizjali korrett, u sab l-għerq reali. Lezzjoni: finders numeriċi tal-għeruq huma sensittivi għall-punt tat-tluq.

Każ 2 — Nassa b'punt li jvarja. Inġinier mexxa kodiċi AI li kiteb jekk 0.1 + 0.2 == 0.3: u rrealizza li l-kundizzjoni qatt ma kienet vera. L-AI kienet injorat il-preċiżjoni tal-punt li jvarja. Il-kodiċi ġie kkoreġut bl-abs((0.1+0.2) - 0.3) < 1e-9. 1e-9 tfisser "għaxra sa minus disa", tolleranza żgħira ħafna.

Każ 3 — L-ittestjar tas-sens komun qabad il-bug. Għalliem irċieva kodiċi minn scipy.integrate.quad li jikkalkula numerikament integrali definita. L-ewwel ittestjaha b'integral magħrufa bħal ∫₀¹ x dx = 0.5; il-kodiċi ta 0.5. Imbagħad ikkalkula l-integral attwali u kkonferma r-riżultat b'SymPy. Huwa fda meta żewġ metodi indipendenti taw l-istess riżultat. Ħin totali: 6 minuti.

Erba' mudelli li jistgħu jiġu kkupjati

1) Li titlob kodiċi numeriku tal-kont:

Ikteb kodiċi Python li ssolvi l-problema li ġejja NUMERIKALMENT: [problema]. Uża NumPy/SciPy. Sensittività: [eż. 6 deċimali]. Se nmexxi l-kodiċi; tbassir tal-output. Spjega fil-qosor f'linja ta' kumment liema funzjoni għażilt u għaliex.

2) Żieda ta' test tas-sens komun:

Żid verifika tas-sens komun ma’ dan il-kodiċi biex tittestja l-KORRETTITÀ tiegħu qabel ma tħaddem: ipprovaha b’input sempliċi fejn it-tweġiba hija diġà magħrufa (eż. għerq ±2 għal x²-4=0) u ċċekkja li tagħti r-riżultat mistenni. Kodiċi: [hawn]

3) Kontroverifika simbolika-numerika:

Ikteb il-kodiċi li ssolvi l-integral/ekwazzjoni li ġejja KEMM B'SymPy (simboliku) U SCIPy (numeriku): [problema]. Ipprintja ż-żewġ riżultati sabiex inkun nista' nqabbelhom. Żid linja li tiċċekkja għal differenzi ma abs().

4) Sigurtà bil-punt li jvarja:

Irrevedi l-paraguni tan-numri floating point f'dan il-kodiċi. Jekk ikun hemm ugwaljanzi stretti '==', ibdelhom b'tolleranza xierqa (abs(a-b) < 1e-9) u spjega għaliex. Kodiċi: [hawn]

Pront dgħajjef / Pront qawwi

Dgħajjef: "Sib l-għerq ta' din l-ekwazzjoni: x³ − 2x − 5 = 0. Ikteb it-tweġiba."
Riżultat: L-AI taqbel ma' numru deċimali (eż. "2.0946..."). Jista’ jkun veru jew le; Ma ġiex ivverifikat għax ma ġiex immexxi.
Qawwija: "Ikteb kodiċi li jsib l-għerq reali tal-ekwazzjoni x³ − 2x − 5 = 0 b'SciPy. Għall-raden inizjali, l-ewwel speċifika l-intervall fejn il-funzjoni tbiddel is-sinjal. Żid linja li tissostitwixxi l-għerq u tivverifika li r-riżultat huwa ~ 0. Se nara l-output."
Riżultat: Kodiċi eżegwibbli, raden inizjali preċiż, hashes integrati. Il-validità tal-għerq hija ppruvata.

Żbalji komuni

  • Fidu r-riżultat mingħajr ma tħaddem il-kodiċi. L-output numeriku li l-AI "tbassar" mhix validazzjoni.
  • Ittestjar ta' l-ugwaljanza tal-punt li jvarja b' `==`. Huwa kważi dejjem ħażin; Uża tolleranza.
  • Tbassir inizjali ħażin. Metodi ta 'għeruq/ottimizzazzjoni numeriċi huma sensittivi għall-punt tat-tluq; Jista 'jikkonverġi lejn l-għerq ħażin.
  • Mhux jesprimi sensittività. "Kemm passi?" Jekk ma jintalabx, ir-riżultat jista 'ma jkunx jaqbel mal-ħtieġa.
  • Mhux qed tieħu test tas-sens komun. L-applikazzjoni tal-kodiċi għal problema reali mingħajr ma tittestjaha b'input magħruf hija riskjuża.
  • Tmexxi l-kodiċi mingħajr ma tifhimha. Kodiċi li ma tifhimx jista' jkun qed juża l-funzjoni ħażina; tifhem kull linja.
Attenzjoni: Ir-riżultati numeriċi huma dejjem approssimattivi. Minflok tgħid "ir-riżultat huwa eżattament dan", għid "dan huwa eżattament dak". F'rapport ta 'inġinerija jew xjentifiku, li jiddikjara l-metodu u l-preċiżjoni użati huwa parti mill-eżattezza. Huwa qarrieqi li riżultat approssimattiv jiġi ppreżentat bħala definittiv.

Fil-qosor

Il-kalkulu numeriku jagħti riżultati approssimattivi iżda prattiċi għal problemi li ma jistgħux jiġu solvuti b'formula magħluqa; F'Python, l-għodod tiegħu huma NumPy u SciPy. L-AI malajr tiġġenera kodiċi għal dawn il-libreriji, iżda trid tħaddem il-kodiċi, taqrah u tifhimha, u tittestjah b'input magħruf. Oqgħod attent bil-preċiżjoni floating point: uża t-tolleranza aktar milli l-ugwaljanza eżatta. Iċċekkja l-metodi simboliċi u numeriċi jekk possibbli. L-ittestjar tas-sens komun u s-sostituzzjoni huma l-orħos u l-aktar verifiki effettivi.

Kompitu ta' applikazzjoni

Agħżel problema li hija diffiċli biex issolvi b'formula magħluqa (eż., l-għerq x³ − 2x − 5 = 0, jew il-valur definit ta' integrali mhux elementari). Ħalli l-AI tipprintja kemm il-kodiċi numeriku kif ukoll, jekk possibbli, il-kodiċi tal-kontroverifika simboliku-numeriku bil-mudelli 1 u 3. Mexxi l-kodiċi f'ambjent reali Python. L-ewwel agħmel test tas-sens komun b'input magħruf, imbagħad issolvi l-problema attwali. Kun żgur li tuża tolleranzi jekk ikun hemm paragun b'punt li jvarja. Innota r-riżultat flimkien mas-sensittività tiegħu.

lista ta' kontroll

  • [ ] Identifikajt il-problema u s-sensittività meħtieġa.
  • [ ] Qrajt u fhimt il-kodiċi prodott mill-AI linja b'linja.
  • [ ] Jien ħadt il-kodiċi f'ambjent reali Python.
  • [ ] Għamilt test tas-sens komun b'input magħruf.
  • [ ] Żidt kontroverifika simbolika/manwali jekk possibbli.
  • [ ] Użajt it-tolleranza f'paraguni b'punt li jvarja.