Hagnaður:
- Geta til að greina á milli táknræns og talnareiknings og velja rétta tólið (SymPy eða NumPy/SciPy) fyrir hvert vandamál
- Hæfni til að lesa og skilja tölulega kóðann sem framleiddur er af gervigreind, keyra hann sjálfur og sannreyna hann með því að framkvæma skynsemispróf með þekktu inntaki.
- Skildu takmörk fljótandi töluna nákvæmni, notaðu umburðarlyndi í stað nákvæms jafnræðis og stjórnaðu áhrifum fyrstu giska á tölulegar aðferðir.
Táknræn útreikningur gefur nákvæma formúlu heild eða jöfnu; En flest hagnýt vandamál í stærðfræði er ekki hægt að leysa með lokaðri formúlu. Þetta er þar sem töluleg útreikningur kemur við sögu: að framleiða áætlaða tölulega niðurstöðu með æskilegri nákvæmni, frekar en nákvæmri formúlu. Að finna gildi heilatölu í 0,001 nákvæmni, reikna út rót jöfnu að tugatali, draga tölfræði úr gagnamengi - þetta eru allt tölulegir útreikningar. Í Python eru verkfærin fyrir þetta NumPy (talnafylki og stærðfræði) og SciPy (vísindaleg tölvusöfn). Í þessari einingu muntu læra að nota gervigreind sem aðstoðarmann sem býr til Python kóða fyrir tölulega útreikninga og athuga réttmæti kóðans.
Mikilvæg skilgreining: Fljótandi tala er snið þar sem tölva geymir aukastafi með takmarkaðri nákvæmni. Þess vegna í tölvureikningi getur 0,1 + 0,2 reynst vera 0,300000000000000004, ekki nákvæmlega 0,3. Þetta er ekki mistök, það er eðli tölulegra útreikninga - en það mun leiða til rangra niðurstaðna ef þú ert ekki meðvitaður um það. Í tölulegum útreikningum er unnið með "nógu nærri" frekar en "nákvæmt jafnrétti".
Táknrænt eða tölulegt? Að velja rétt tól
Staða
Táknrænt (SymPy)
Númeric (NumPy/SciPy)
Það er lokuð formúla
valinn
ekki nauðsynlegt
Engin formúla/of flókin
getur ekki leyst
valinn
Fullkomin nákvæmni krafist
Já
U.þ.b.
Stór gögn / fjölvinnsla
hægur
mjög hratt
Niðurstaðan með aukastaf er nægjanleg
—
hentugur
Góður iðkandi notar hvort tveggja: leysa með táknrænum hætti ef mögulegt er, nota tölulegt ef ekki, og krossa hvort við annað þegar mögulegt er.
Skref fyrir skref: Öruggur tölulegur útreikningur með gervigreind
1. Þekkja vandamálið og viðkvæmni. "Hvað eru margir aukastafir?" og "á hvaða bili?" Skýrðu spurningar þínar.
2. Skrifaðu kóða í gervigreindina, ekki úttak. Mundu frá einingu 4: Ekki láta gervigreindina spá fyrir um kóðann. Þú keyrir kóðann.
3. Lestu og skildu kóðann. Skilja myndaða kóða línu fyrir línu. Rétt bókasafn, rétt aðgerð, réttar breytur? Ekki keyra kóða sem þú skilur ekki.
4. Prófaðu með þekktum aðstæðum. Prófaðu kóðann með einföldu inntaki sem þú veist nú þegar svarið fyrir. Til dæmis, sin(0)=0, eins og gildi þekktrar heild. Ef kóðinn gefur hann rétt, munt þú treysta honum betur.
5. Krossathugaðu táknrænt eða handvirkt. Ef mögulegt er, staðfestu sömu niðurstöðu með SymPy eða handvirkri nálgun.
6. Varist fljótandi gildrur. Notaðu vikmörk eins og abs(a - b) < 1e-9 í stað þess að vera jafnrétti við ==.
Ábending: Prófaðu alltaf tölukóða "með svari sem þú veist". Ef þú skrifaðir rótarleitara skaltu fyrst nota það á jöfnu með þekkta rót (x=±2), eins og x²−4=0. Ef kóðinn finnur þetta rétt verða meiri líkur á að hann sé áreiðanlegur á jöfnum sem þú þekkir ekki. Þessi "heilbrigðisathugun" er ódýrasta staðfestingin.
Gryfja talnareiknings: samleitni og villusöfnun.
Flestar tölulegar aðferðir virka ítrekað: byrjað á fyrstu getgátu og nálgast smám saman raunverulegt svar. Þetta ferli að komast nær er kallað samleitni. En ekki eru allar endurteknar aðferðir alltaf saman; sumir víkja (fara frá niðurstöðunni) eða renna saman í rangt gildi. Ef AI-myndaður kóði athugar ekki hvort aðferðin rennur saman, gæti hann gefið þér rangt númer í hljóði. Svo bara vegna þess að töluleg niðurstaða "framleiddi tölu" gerir það ekki satt; Einnig er nauðsynlegt að staðfesta að sú tala samræmist raunverulega þeirri lausn sem leitað er eftir.
Önnur fínleiki er villusöfnun. Í langri keðju útreikninga geta litlar fljótandi námundunarskekkjur í hverju skrefi safnast fyrir og orðið stærri; Sérstaklega þegar þú tekur muninn á tveimur mjög nálægt stórum tölum (þetta er kallað skelfileg niðurfelling), geta verulegar tölustafir í niðurstöðunni tapast. Gervigreind spáir ekki alltaf fyrir um slík töluleg stöðugleikavandamál. Í mikilvægum útreikningum, endurútreikningur og samanburður á niðurstöðum með annarri aðferð eða með meiri nákvæmni leiðir í ljós falda villusöfnun.
Athygli: „Að gefa niðurstöðu“ og „samganga að réttri niðurstöðu“ tölulegrar aðferðar eru tveir ólíkir hlutir. Gakktu úr skugga um að kóðinn innihaldi samleitniathugun (t.d. að munurinn á tveimur skrefum í röð verði nógu lítill); Ef það inniheldur það ekki, láttu gervigreindina bæta þessari stjórn við.
þrjú smámál
Tilvik 1 — Rangt val á virkni. Nemandi bað gervigreindina um kóða til að finna rót falls. AI notaði scipy.optimize.fsolve, en valdi slæma upphafsgisku og fór saman að rangri rót. Nemandi skoðaði fallið fyrst með því að setja það á línurit (sjá sjónræna einingu), gaf upp rétta upphafsgisku og fann raunverulegu rótina. Lexía: tölulegar rótleitarar eru viðkvæmar fyrir upphafspunktinum.
Tilfelli 2 - Flotpunktsgildra. Verkfræðingur rak gervigreindarkóða sem skrifaði ef 0.1 + 0.2 == 0.3: og áttaði sig á því að ástandið var aldrei satt. Gervigreindin hafði hunsað fljótapunktsnákvæmni. Kóðinn var leiðréttur með abs((0.1+0.2) - 0.3) < 1e-9. 1e-9 þýðir "tíu á móti mínus níu", mjög lítið vikmörk.
Tilfelli 3 — skynsemispróf gripu villuna. Kennari fékk kóða frá scipy.integrate.quad sem reiknar út ákveðna heild. Hann prófaði það fyrst með þekktum heild eins og ∫₀¹ x dx = 0,5; kóðinn gaf 0,5. Síðan reiknaði hann út raunverulegan heild og staðfesti niðurstöðuna með SymPy. Hann treysti þegar tvær sjálfstæðar aðferðir gáfu sömu niðurstöðu. Heildartími: 6 mínútur.
Fjögur afritanleg sniðmát
1) Að biðja um tölulegan reikningskóða:
Skrifaðu Python kóða sem leysir eftirfarandi vandamál TÖLLEGA: [vandamál]. Notaðu NumPy/SciPy. Næmi: [t.d. 6 aukastafir]. Ég mun keyra kóðann; að spá fyrir um úttakið. Útskýrðu stuttlega í athugasemdarlínu hvaða aðgerð þú valdir og hvers vegna.
2) Bæta við skynsemisprófi:
Bættu skynsemisprófi við þennan kóða til að prófa RÉTTLEIKI hans áður en hann keyrir hann: reyndu hann með einföldu inntaki þar sem svarið er þegar þekkt (t.d. rót ±2 fyrir x²-4=0) og athugaðu hvort hann gefi væntanlega niðurstöðu.Kóði: [hér]
3) Táknræn og töluleg krossathugun:
Skrifaðu kóða sem leysir eftirfarandi heild/jöfnu með BÆÐI SymPy (táknrænt) OG SciPy (tölulegt): [vandamál]. Prentaðu út þessar tvær niðurstöður svo ég geti borið þær saman. Bættu við línu sem athugar mismun með abs().
4) Fljótapunktsöryggi:
Skoðaðu samanburð á flottölum í þessum kóða. Ef það eru ströng '==' jöfn, skiptu þeim út fyrir viðeigandi vikmörk (abs(a-b) < 1e-9) og útskýrðu hvers vegna. Kóði: [hér]
Veik kvaðning / Sterk kvaðning
Veik: "Finndu rót þessarar jöfnu: x³ − 2x − 5 = 0. Skrifaðu svarið."
Niðurstaða: Gervigreindin passar við aukastaf (t.d. "2.0946..."). Það getur verið satt eða ekki; Það hefur ekki verið staðfest vegna þess að það hefur ekki verið keyrt.
Öflugt: "Skrifaðu kóða sem finnur raunverulegu rót jöfnunnar x³ − 2x − 5 = 0 með SciPy. Til að giska á upphaflega, tilgreinið fyrst bilið þar sem fallið breytir um formerki. Bættu við línu sem kemur í stað rótarinnar og athugar að niðurstaðan sé ~0. Ég mun sjá úttakið."
Niðurstaða: Kóði sem hægt er að keyra, nákvæmar fyrstu getgátur, innbyggður kjötkássa. Réttmæti rótarinnar er sannað.
Algeng mistök
- Að treysta niðurstöðunni án þess að keyra kóðann. Tölulega framleiðslan sem gervigreindin „spáir“ er ekki staðfesting.
- Prófar fljótamarksjöfnuð með `==`. Það er næstum alltaf rangt; Notaðu umburðarlyndi.
- Slæm upphafsspá. Tölulegar rótar-/hagræðingaraðferðir eru viðkvæmar fyrir upphafspunktinum; Það getur runnið saman að rangri rót.
- Ekki tjá næmi. "Hversu mörg skref?" Ef ekki er spurt gæti niðurstaðan ekki passað þörfina.
- Ekki að taka skynsemispróf. Það er áhættusamt að nota kóða á raunverulegt vandamál án þess að prófa það með þekktu inntaki.
- Keyrir kóðann án þess að skilja hann. Kóði sem þú skilur ekki gæti verið að nota ranga aðgerð; skilja hverja línu.
Varúð: Tölulegar niðurstöður eru alltaf áætluð. Í stað þess að segja "niðurstaðan er nákvæmlega þessi", segðu "þetta er nákvæmlega það". Í verkfræði- eða vísindaskýrslu er það hluti af nákvæmni að tilgreina aðferð og nákvæmni sem notuð er. Það er villandi að setja fram áætlaða niðurstöðu sem endanlega.
Í stuttu máli
Talnareikningur gefur áætlaðar en raunhæfar niðurstöður fyrir vandamál sem ekki er hægt að leysa með lokuðum formúlum; Í Python eru verkfæri þess NumPy og SciPy. Gervigreind býr fljótt til kóða fyrir þessi bókasöfn, en þú verður að keyra kóðann, lesa hann og skilja hann og prófa hann með þekktu inntaki. Vertu varkár með fljótandi punkta nákvæmni: notaðu umburðarlyndi frekar en nákvæmlega jafnrétti. Athugaðu táknrænar og tölulegar aðferðir ef mögulegt er. Heilbrigð skynsemispróf og staðgengill eru ódýrustu og árangursríkustu sannprófanir.
Umsóknarverkefni
Veldu vandamál sem erfitt er að leysa með lokaðri formúlu (t.d. rót x³ − 2x − 5 = 0, eða ákveðið gildi óeinkennisheildar). Látið gervigreindina prenta bæði tölukóðann og, ef mögulegt er, táknrænan tölulega krossathugunarkóðann með sniðmátum 1 og 3. Keyrðu kóðann í alvöru Python umhverfi. Gerðu fyrst skynsemispróf með þekktu inntaki, leystu síðan raunverulegt vandamál. Vertu viss um að nota vikmörk ef það er samanburður á floti. Taktu eftir niðurstöðunni ásamt næmi hennar.
gátlisti
- [ ] Ég greindi vandamálið og næmni sem krafist er.
- [ ] Ég las og skildi kóðann framleiddur af gervigreindinni línu fyrir línu.
- [ ] Ég keyrði kóðann í alvöru Python umhverfi.
- [ ] Ég gerði skynsemispróf með þekktu inntaki.
- [ ] Ég hef bætt við táknrænni/handvirkri krossathugun ef mögulegt er.
- [ ] Ég notaði umburðarlyndi í samanburði með flottölum.