Ẹyọ 5 / 11

Iṣiro nọmba, Python ati koodu Generation

Awọn anfani:

  • Agbara lati ṣe iyatọ laarin aami ati iṣiro nọmba ati yan irinṣẹ to tọ (SymPy tabi NumPy/SciPy) fun iṣoro kọọkan
  • Agbara lati ka ati loye koodu nomba ti a ṣe nipasẹ itetisi atọwọda, ṣiṣẹ funrararẹ, ati rii daju nipasẹ ṣiṣe idanwo ori ti o wọpọ pẹlu titẹ sii ti a mọ.
  • Loye awọn opin ti konge nọmba oju omi lilefoofo, lo ifarada dipo imudogba deede, ati ṣakoso ipa ti lafaimo akọkọ lori awọn ọna nọmba.

Iṣiro aami n funni ni agbekalẹ gangan ti isọpọ tabi idogba; Ṣugbọn awọn iṣoro ti o wulo julọ ni mathimatiki ko le yanju nipasẹ agbekalẹ pipade. Eyi ni ibi ti iṣiro-nọmba ti wa sinu ere: ṣiṣejade abajade isunmọ isunmọ pẹlu pipe ti o fẹ, dipo agbekalẹ gangan. Wiwa iye ti o jẹ pataki si 0.001 konge, ṣe iṣiro root ti idogba si isunmọ eleemewa, yiyo awọn iṣiro jade lati inu eto data kan - iwọnyi jẹ gbogbo awọn iṣiro nọmba. Ni Python, awọn irinṣẹ fun eyi ni NumPy (awọn nọmba nọmba ati mathimatiki) ati awọn ile-ikawe SciPy (iṣiro imọ-jinlẹ). Ninu ẹyọ yii, iwọ yoo kọ ẹkọ lati lo AI bi oluranlọwọ ti o ṣe agbekalẹ koodu Python fun iṣiro nọmba ati ṣayẹwo deede koodu naa.

Itumọ to ṣe pataki: nọmba aaye lilefoofo kan jẹ ọna kika ninu eyiti kọnputa kan tọju awọn nọmba eleemewa pẹlu pipe to lopin. Ti o ni idi ni kọmputa isiro, 0.1 + 0.2 le tan jade lati wa ni 0.3000000000000004, ko pato 0.3. Eyi kii ṣe aṣiṣe, o jẹ iseda ti iṣiro nọmba - ṣugbọn yoo ja si awọn abajade ti ko tọ ti o ko ba mọ rẹ. Ni isiro isiro, ọkan ṣiṣẹ pẹlu "sunmọ to" kuku ju "gangan Equality".

Àmì tàbí òǹkà? Yiyan awọn ọtun ọpa

Ipo

Aami (SymPy)

Nomba (NumPy/SciPy)

Ilana pipade wa

ayanfẹ

ko wulo

Ko si agbekalẹ / eka pupọ

ko le yanju

ayanfẹ

pipe konge beere

Bẹẹni

Isunmọ.

Nla data / olona-processing

lọra

gan sare

Abajade pẹlu eleemewa to

-

yẹ

Onisegun to dara lo awọn mejeeji: yanju aami ti o ba ṣeeṣe, lọ ni nọmba ti kii ba ṣe bẹ, ki o ṣayẹwo ọkan pẹlu ekeji nigbakugba ti o ṣeeṣe.

Igbesẹ nipasẹ igbese: Ṣe iṣiro iṣiro nọmba pẹlu AI

1. Ṣe idanimọ iṣoro naa ati ifamọ. "Melo ni aaye eleemewa?" ati "ni ibiti?" Ṣe alaye awọn ibeere rẹ.

2. Kọ koodu si AI, kii ṣe abajade. Ranti lati ẹyọkan 4: Maṣe ṣe iṣelọpọ koodu asọtẹlẹ AI. O ṣiṣe awọn koodu.

3. Ka ati ki o ye awọn koodu. Loye laini koodu ti ipilẹṣẹ nipasẹ laini. Ile-ikawe ti o tọ, iṣẹ to tọ, awọn paramita ọtun? Maṣe ṣiṣẹ koodu ti o ko loye.

4. Idanwo pẹlu ipo ti a mọ. Gbiyanju koodu naa pẹlu titẹ sii ti o rọrun fun eyiti o ti mọ idahun tẹlẹ. Fun apẹẹrẹ, ẹṣẹ (0) = 0, bii iye ti ohun elo ti a mọ. Ti koodu naa ba fun ni deede, iwọ yoo gbẹkẹle diẹ sii.

5. Agbelebu ṣayẹwo aami tabi pẹlu ọwọ. Ti o ba ṣeeṣe, jẹrisi abajade kanna pẹlu SymPy tabi ọna afọwọṣe.

6. Ṣọra fun awọn ẹgẹ aaye lilefoofo. Dipo imudogba ti o muna pẹlu ==, lo awọn ifarada gẹgẹbi abs(a-b) <1e-9.

Imọran: Nigbagbogbo ṣe idanwo koodu nomba kan "pẹlu idahun ti o mọ". Ti o ba ko oluwari root kan, kọkọ lo si idogba pẹlu gbongbo ti a mọ (x=±2), bii x²−4=0. Ti koodu naa ba rii pe eyi pe o tọ, o le ni igbẹkẹle diẹ sii lori awọn idogba ti o ko mọ. “Ayẹwo mimọ” yii jẹ ijẹrisi ti o kere julọ.

Ibanujẹ ti iṣiro nọmba: isọdọkan ati ikojọpọ aṣiṣe.

Pupọ julọ awọn ọna nọmba n ṣiṣẹ ni ilodisi: bẹrẹ lati amoro akọkọ ati maa sunmọ idahun gangan. Ilana isunmọ si ni a npe ni isunmọ. Sugbon ko gbogbo aṣetunṣe ọna nigbagbogbo converges; diẹ ninu awọn diverge (lọ kuro lati abajade) tabi ṣajọpọ si iye ti ko tọ. Ti koodu ti ipilẹṣẹ AI ko ba ṣayẹwo boya ọna naa n ṣajọpọ, o le ni ipalọlọ fun ọ ni nọmba ti ko tọ. Nitorinaa nitori abajade nọmba kan “ti ṣe nọmba kan” ko jẹ ki o jẹ otitọ; O tun jẹ dandan lati jẹrisi pe nọmba yẹn ni idapọ gangan si ojutu ti a wa.

Abele keji jẹ ikojọpọ aṣiṣe. Ni ẹwọn gigun ti awọn iṣiro, awọn aṣiṣe yikaka lilefoofo kekere ni ipele kọọkan le ṣajọpọ ati di nla; Paapa nigbati o ba mu iyatọ ti awọn nọmba nla nla meji ti o sunmọ pupọ (eyi ni a pe ni ifagile ajalu), awọn nọmba pataki ti abajade le padanu. Imọran atọwọda ko nigbagbogbo sọ asọtẹlẹ iru awọn iṣoro iduroṣinṣin nọmba. Ni awọn iṣiro to ṣe pataki, ṣiṣatunṣe ati afiwe abajade pẹlu ọna ti o yatọ tabi pẹlu pipe ti o ga julọ ṣafihan ikojọpọ aṣiṣe ti o farapamọ.

Ifarabalẹ: “Fifun abajade kan” ati “iṣapapọ si abajade to pe” ti ọna nọmba jẹ awọn nkan oriṣiriṣi meji. Rii daju pe koodu naa pẹlu ayẹwo isọdọkan (fun apẹẹrẹ, pe iyatọ laarin awọn igbesẹ ti o tẹle meji di kekere to); Ti ko ba ni ninu, jẹ ki oye itetisi atọwọda ṣafikun iṣakoso yii.

mẹta mini igba

Ọran 1 - Aṣayan iṣẹ ti ko tọ. Ọmọ ile-iwe kan beere AI fun koodu lati wa gbongbo iṣẹ kan. AI lo scipy.optimize.fsolve, ṣugbọn yan amoro ibẹrẹ buburu kan ati pe o ṣajọpọ si gbongbo ti ko tọ. Ọmọ ile-iwe naa kọkọ ṣe ayẹwo iṣẹ naa nipa yiyaworan rẹ (wo ẹyọ iworan), fun amoro ibẹrẹ ti o pe, o si rii gbongbo gidi. Ẹkọ: Awọn oluwadi gbongbo nọmba jẹ ifarabalẹ si aaye ibẹrẹ.

Case 2 - Lilefoofo ojuami pakute. Onimọ-ẹrọ kan ran koodu AI kan ti o kowe ti 0.1 + 0.2 == 0.3: ati rii pe ipo naa ko jẹ otitọ rara. AI ti foju kọju si pipe aaye lilefoofo. A ṣe atunṣe koodu naa pẹlu abs ((0.1+0.2) - 0.3) <1e-9. 1e-9 tumọ si “mẹwa si iyokuro mẹsan”, ifarada kekere kan.

Ọran 3 - Idanwo oye ti o wọpọ mu kokoro naa. Olukọni kan gba koodu lati scipy.integrate.quad ti o ṣe iṣiro nọmba kan ti o daju. Ó kọ́kọ́ dán an wò pẹ̀lú àkópọ̀ ohun tí a mọ̀ bíi ∫₀¹ x dx = 0.5; koodu fun 0,5. Lẹhinna o ṣe iṣiro ohun elo gangan ati jẹrisi abajade pẹlu SymPy. O gbẹkẹle nigbati awọn ọna ominira meji fun esi kanna. Lapapọ akoko: 6 iṣẹju.

Mẹrin daakọ awọn awoṣe

1) Nbeere koodu akọọlẹ nọmba kan:

Kọ Python koodu ti o yanju isoro wọnyi NUMERICALLY: [iṣoro]. Lo NumPy/SciPy. Ifamọ: [fun apẹẹrẹ. 6 eleemewa]. Emi yoo ṣiṣẹ koodu naa; asọtẹlẹ o wu. Ṣe alaye ni ṣoki ni laini asọye iru iṣẹ ti o yan ati idi.

2) Ṣafikun idanwo oye ti o wọpọ:

Ṣafikun ayẹwo oye ti o wọpọ si koodu yii lati ṣe idanwo Atunse rẹ ṣaaju ṣiṣe rẹ: gbiyanju pẹlu titẹ sii ti o rọrun nibiti idahun ti ti mọ tẹlẹ (fun apẹẹrẹ root ± 2 fun x²-4=0) ati ṣayẹwo pe o fun abajade ti o nireti.Code: [nibi]

3) Ayẹwo-agbelebu-nọmba aami:

Kọ koodu ti o yanju isọdi/idogba atẹle pẹlu BOTH SymPy (aami) ATI SciPy (nọmba): [iṣoro]. Tẹjade awọn abajade meji naa ki MO le ṣe afiwe wọn. Ṣafikun laini kan ti o ṣayẹwo fun awọn iyatọ pẹlu abs ().

4) Aabo aaye lilefoofo:

Ṣe ayẹwo awọn afiwe nọmba aaye lilefoofo ninu koodu yii. Ti awọn dọgba '==' ti o muna wa, rọpo wọn pẹlu ifarada ti o yẹ (abs(a-b) <1e-9) ki o si ṣalaye idi. Koodu: [nibi]

Ailagbara kiakia / Alagbara kiakia

Alailagbara: "Wa gbongbo idogba yii: x³ - 2x - 5 = 0. Kọ idahun."
Esi: AI jẹ nọmba eleemewa kan (fun apẹẹrẹ "2.0946..."). O le tabi ko le jẹ otitọ; O ti ko ti wadi nitori ti o ti ko ṣiṣe.
Alagbara: "Kọ koodu kan ti o rii gbongbo gidi ti idogba x³ - 2x - 5 = 0 pẹlu SciPy. Fun amoro akọkọ, kọkọ pato aarin nibiti iṣẹ naa ṣe yipada ami. Fi laini kan ti o rọpo root ati ṣayẹwo pe abajade jẹ ~ 0. Emi yoo rii abajade.”
Esi: Koodu ti o le ṣiṣẹ, amoro ibẹrẹ deede, awọn hashes ti a ṣe sinu. Awọn Wiwulo ti awọn root ti wa ni fihan.

Awọn aṣiṣe ti o wọpọ

  • Gbẹkẹle abajade laisi ṣiṣe koodu naa. Ijade nọmba ti AI “sọtẹlẹ” kii ṣe afọwọsi.
  • Idanwo idogba aaye lilefoofo pẹlu `==`. O fẹrẹ jẹ aṣiṣe nigbagbogbo; Lo ifarada.
  • Asọtẹlẹ ibẹrẹ ti ko dara. Awọn ọna root / iṣapeye nọmba jẹ ifarabalẹ si aaye ibẹrẹ; O le ṣajọpọ si gbongbo ti ko tọ.
  • Ko ṣe afihan ifamọ. "Awọn igbesẹ melo ni?" Ti ko ba beere, abajade le ma baamu iwulo naa.
  • Ko ṣe idanwo oye ti o wọpọ. Lilo koodu si iṣoro gidi kan laisi idanwo rẹ pẹlu titẹ sii ti a mọ jẹ eewu.
  • Ṣiṣe koodu laisi oye rẹ. Koodu ti o ko loye le jẹ lilo iṣẹ ti ko tọ; ye kọọkan ila.
Išọra: Awọn abajade nọmba nigbagbogbo jẹ isunmọ. Dipo sisọ "esi gangan eyi", sọ "eyi gan-an ni eyi". Ninu imọ-ẹrọ tabi ijabọ imọ-jinlẹ, sisọ ọna ati konge ti a lo jẹ apakan ti deede. O jẹ ṣinilọna lati ṣafihan abajade isunmọ bi asọye.

Ni akojọpọ

Iṣiro nọmba n funni ni isunmọ ṣugbọn awọn abajade ilowo fun awọn iṣoro ti a ko le yanju nipasẹ agbekalẹ pipade; Ni Python, awọn irinṣẹ rẹ jẹ NumPy ati SciPy. AI ni kiakia ṣe koodu fun awọn ile-ikawe wọnyi, ṣugbọn o gbọdọ ṣiṣẹ koodu naa, ka ati loye rẹ, ki o ṣe idanwo pẹlu titẹ sii ti a mọ. Ṣọra pẹlu konge aaye lilefoofo: lo ifarada kuku ju dọgbadọgba deede. Agbelebu-ṣayẹwo aami ati awọn ọna nọmba ti o ba ṣeeṣe. Idanwo ori ti o wọpọ ati iyipada jẹ awọn iṣeduro ti o kere julọ ati ti o munadoko julọ.

Ohun elo iṣẹ-ṣiṣe

Yan iṣoro kan ti o nira lati yanju pẹlu agbekalẹ titipa (fun apẹẹrẹ, gbòǹgbò x³ - 2x - 5 = 0, tabi iye to daju ti ohun elo ti kii ṣe alakọbẹrẹ). Ṣe AI tẹjade mejeeji koodu nomba ati, ti o ba ṣee ṣe, ami-ami-ṣayẹwo koodu agbelebu-nọmba pẹlu awọn awoṣe 1 ati 3. Ṣiṣe koodu naa ni agbegbe Python gidi kan. Ni akọkọ ṣe idanwo oye ti o wọpọ pẹlu titẹ sii ti a mọ, lẹhinna yanju iṣoro gangan. Rii daju lati lo awọn ifarada ti o ba jẹ afiwe aaye lilefoofo kan. Ṣe akiyesi abajade pẹlu ifamọ rẹ.

akojọ ayẹwo

  • [] Mo ṣe idanimọ iṣoro naa ati ifamọ ti o nilo.
  • [] Mo ka ati loye koodu ti a ṣe nipasẹ laini AI nipasẹ laini.
  • [] Mo ran koodu naa ni agbegbe Python gidi kan.
  • [] Mo ṣe idanwo oye ti o wọpọ pẹlu titẹ sii ti a mọ.
  • [] Mo ti ṣafikun ami-ami/ṣayẹwo agbekọja afọwọṣe ti o ba ṣeeṣe.
  • [] Mo lo ifarada ni awọn afiwe aaye lilefoofo.