Bölüm 5 / 11

San hasaplamasy, Python we kod döretmek

Girdeji:

  • Simwoliki we san hasaplamalaryny tapawutlandyrmak we her bir mesele üçin dogry gural (SymPy ýa-da NumPy / SciPy) saýlamak ukyby
  • Emeli intellektiň öndürýän san koduny okamak we düşünmek, ony özüňiz dolandyrmak we belli bir giriş bilen umumy many synagyny geçirip barlamak.
  • Floüzýän nokatlaryň takyklygynyň çäklerine düşüniň, takyk deňligiň ýerine çydamlylygy ulanyň we başlangyç çaklamalaryň san usullaryna täsirini dolandyryň.

Simwoliki hasaplama integral ýa-da deňlemäniň takyk formulasyny berýär; Emma matematikadaky amaly meseleleriň köpüsini ýapyk formula bilen çözüp bolmaz. Ine, san hasaplamasy ýerine ýetirilýär: takyk san däl-de, islenýän takyklyk bilen takmynan san netijesini öndürmek. 0.001 takyklygyna integralyň bahasyny tapmak, deňlemäniň köküni onluk takmynan hasaplamak, maglumatlar toplumyndan statistika çykarmak - bularyň hemmesi san hasaplamalary. Python-da munuň üçin gurallar NumPy (san massiwleri we matematika) we SciPy (ylmy hasaplaýyş) kitaphanalarydyr. Bu bölümde, san hasaplamak üçin Python koduny döredýän we koduň dogrulygyny barlaýan kömekçi hökmünde AI ulanmagy öwrenersiňiz.

Möhüm kesgitleme: ýüzýän nokat belgisi, kompýuteriň onluk sanlary çäkli takyklyk bilen saklaýan görnüşidir. Şonuň üçin kompýuter arifmetikasynda 0,1 + 0,2 takyk 0,3 däl-de, 0.30000000000000004 bolup biler. Bu ýalňyşlyk däl, san hasaplamagyň tebigaty - ýöne bilmeseňiz nädogry netijelere getirer. San hasaplamasynda biri "takyk deňlik" däl-de, "ýeterlik ýakyn" bilen işleýär.

Simwoliki ýa-da san? Dogry gural saýlamak

.Agdaý

Simwoliki (SymPy)

San (NumPy / SciPy)

Aapyk formula bar

makul bilner

zerur däl

Formula ýok / gaty çylşyrymly

çözüp bilmeýär

makul bilner

Doly takyklyk talap edilýär

Hawa

Takmynan.

Uly maglumatlar / köp işlemek

haýal

örän çalt

Onluk bilen netije ýeterlikdir

-

laýyk gelýär

Gowy tejribeçi ikisini hem ulanýar: mümkin bolsa simwoliki çözüň, mümkin däl bolsa san bilen gidiň we mümkin boldugyça birini beýlekisi bilen kesiň.

Stepdimme-ädim: AI bilen san taýdan ygtybarly hasaplama

1. Meseläni we duýgurlygy kesgitläň. "Näçe onluk ýer?" we "haýsy aralykda?" Soraglaryňyzy düşündiriň.

2. Çykyş däl-de, AI-e kod ýazyň. 4-nji bölümden ýadyňyzdan çykarmaň: AI koduň çykarylyşyny öňünden aýtmaň. Kody işledýärsiňiz

3. Kody okaň we düşüniň. Döredilen kod setirine setir boýunça düşüniň. Dogry kitaphana, dogry funksiýa, dogry parametrler? Düşünmedik koduňyzy işletmäň.

4. Belli bir ýagdaý bilen synag ediň. Kody ýönekeý giriş bilen synap görüň, munuň jogabyny eýýäm bilýärsiňiz. Mysal üçin, belli integralyň bahasy ýaly günä (0) = 0. Kod dogry berse, has köp ynanarsyňyz.

5. Simwoliki ýa-da el bilen kesiş. Mümkin bolsa, SymPy ýa-da el bilen çemeleşmek bilen şol bir netijäni tassyklaň.

6. floüzýän nokat duzaklaryndan ägä boluň. == bilen berk deňligiň ýerine abs (a - b) <1e-9 ýaly çydamlylygy ulanyň.

Maslahat: Elmydama san koduny "bilýän jogabyňyz bilen" barlaň. Kök tapyjy ýazan bolsaňyz, ilki bilen x² - 4 = 0 ýaly belli kök (x = ± 2) deňlemä ulanyň. Kod muny dogry tapsa, bilmeýän deňlemeleriňizde has ygtybarly bolýar. Bu "saglyk barlagy" iň arzan barlag.

San hasaplamalarynyň ýalňyşlygy: ýakynlaşma we ýalňyşlyk toplanmagy.

San usullarynyň köpüsi gaýtalanyp işleýär: başlangyç çaklamadan başlap, kem-kemden hakyky jogaba ýakynlaşýar. Closerakynlaşmagyň bu prosesi ýakynlaşma diýilýär. Everyöne her gaýtalama usuly hemişe birleşmeýär; käbir bölünişikler (netijeden daşlaşyň) ýa-da nädogry baha öwrüler. AI-den döredilen kod usulyň birleşýändigini ýa-da ýokdugyny barlamasa, ýuwaşlyk bilen size nädogry belgini berip biler. Şonuň üçin san netijesiniň "san öndürendigi" ony dogrylaşdyrmaýar; Şeýle hem bu sanyň hakykatdanam gözlenýän çözgüde öwrülýändigini tassyklamaly.

Ikinji inçelik, ýalňyşlyk toplamakdyr. Hasaplamalaryň uzyn zynjyrynda, her ädimde ownuk ýüzýän nokat tegelek ýalňyşlyklar toplanyp we ulalyp biler; Esasanam iki sany gaty uly sanyň tapawudyny alsaňyz (bu katastrofiki ýatyryş diýilýär), netijäniň möhüm sanlary ýitip biler. Emeli intellekt şeýle san durnuklylygy meselesini hemişe çaklamaýar. Kritiki hasaplamalarda, netijäni başga usul bilen ýa-da has takyklyk bilen täzeden hasaplamak we deňeşdirmek gizlin ýalňyşlaryň ýygnanmagyny ýüze çykarýar.

Üns beriň: "Netijäni bermek" we san usulynyň "dogry netijä öwrülmegi" iki dürli zat. Kodyň ýakynlaşma barlagynyň bardygyna göz ýetiriň (meselem, yzygiderli iki ädimiň arasyndaky tapawudyň ýeterlik derejede kiçeljekdigini); Eger özünde ýok bolsa, emeli intellekt bu gözegçiligi goşuň.

üç sany kiçi halat

1-nji waka - Nädogry funksiýany saýlamak. Bir okuwçy AI-den funksiýanyň köküni tapmak üçin kod sorady. AI scipy.optimize.fsolve ulandy, ýöne erbet başlangyç çaklamany saýlady we nädogry köküne öwrüldi. Talyp bu funksiýany ilki bilen gözden geçirdi (wizuallaşdyrma bölümine serediň), dogry başlangyç çaklamany berdi we hakyky köküni tapdy. Sapak: san kök tapýanlar başlangyç nokadyna duýgur.

2-nji hadysa - loüzýän nokat duzagy. Bir inerener, 0.1 + 0.2 == 0.3 bolsa ýazan AI koduny işledi we şertiň asla dogry däldigine düşündi. AI ýüzýän nokadyň takyklygyna üns bermedi. Kod abs ((0.1 + 0.2) - 0.3) <1e-9 bilen düzedildi. 1e-9 "minus dokuzdan on" diýmek, gaty az çydamlylyk.

3-nji hadysa - Düşünjeli synag ýalňyşlygy ele aldy. Mugallym kesgitli integraly san taýdan hasaplaýan scipy.integrate.quad-dan kod aldy. Ilki bilen ∫₀¹ x dx = 0.5 ýaly belli integral bilen synagdan geçirdi; kod 0,5 berdi. Soň bolsa hakyky integraly hasaplady we netijäni SymPy bilen tassyklady. Iki garaşsyz usulyň birmeňzeş netije berendigine ynanýardy. Jemi wagt: 6 minut.

Göçürip boljak dört şablon

1) San hasaby koduny talap etmek:

Aşakdaky meseläni NUMERIKALY çözýän Python koduny ýazyň: [mesele]. NumPy / SciPy ulanyň. Duýgurlyk: [meselem 6 onluk]. Kody işlederin; çykyşyny çaklamak. Haýsy funksiýany saýlandygyňyzy we sebäbini düşündiriş setirinde gysgaça düşündiriň.

2) umumy many synagyny goşmak:

Işlemezden ozal KORRECTNESI barlamak üçin bu koda umumy many barlaň: jogap eýýäm belli bolan ýönekeý giriş bilen synap görüň (meselem, kök x 2-x = 4 = 0) we garaşylýan netijäni berýändigini barlaň. Kod: [şu ýerde]

3) Simwoliki-san taýdan kesiş:

BIR SymPy (simwoliki) we SciPy (san) bilen aşakdaky integral / deňlemäni çözýän kod ýazyň: [mesele]. Iki netijäni çap ediň, deňeşdirip bilerin. Abs () bilen tapawudy barlaýan bir setir goşuň.

4) loüzýän nokadyň howpsuzlygy:

Bu koddaky ýüzýän nokatlaryň deňeşdirmelerini gözden geçiriň. Gaty '==' deňlik bar bolsa, olary degişli çydamlylyk bilen çalşyň (abs (a-b) <1e-9) we munuň sebäbini düşündiriň. Kod: [şu ýerde]

Gowşak haýyş / Güýçli haýyş

Gowşak: "Bu deňlemäniň köküni tapyň: x³ - 2x - 5 = 0. Jogap ýazyň."
Netije: AI onluk sana laýyk gelýär (meselem: "2.0946 ..."). Bu dogry bolup biler ýa-da bolmazlygy mümkin; Işlenmändigi sebäpli tassyklanmady.
Güýçli: "SciPy bilen x³ - 2x - 5 = 0 deňlemäniň hakyky köküni tapýan kod ýazyň. Ilki bilen çaklamak üçin ilki bilen funksiýanyň üýtgeýän ýerini kesgitläň. Köküň ornuny tutýan çyzyk goşuň we netijäniň ~ 0dygyny barlaň. Çykaryny görerin."
Netije: ecuterine ýetirilýän kod, takyk başlangyç çaklama, gurlan hasşler. Köküň dogrulygy subut edildi.

Adaty ýalňyşlyklar

  • Kod işlemän netijä ynanmak. AI-iň “çaklaýan” san çykyşy tassyklanmaýar.
  • Floüzýän nokadyň deňligini `==` bilen barlamak. Hemişe diýen ýaly ýalňyş; Çydamlylygy ulanyň.
  • Erbet başlangyç çaklama. San kök / optimizasiýa usullary başlangyç nokada duýgur; Nädogry köklere öwrülip biler.
  • Duýgurlygy aňlatmaýar. "Näçe ädim?" Soralmasa, netije zerurlyga laýyk gelmezligi mümkin.
  • Umumy many synagyny almazlyk. Kody belli bir giriş bilen barlamazdan hakyky meselä ulanmak töwekgelçiliklidir.
  • Koda düşünmän işlemek. Düşünmedik koduňyz nädogry funksiýany ulanyp biler; her setire düşüniň.
Üns beriň: San netijeleri elmydama takmynan bolýar. "Netije hut şu" diýmegiň ýerine, "edil şu" diýiň. In engineeringenerçilik ýa-da ylmy hasabatda ulanylýan usuly we takyklygy görkezmek takyklygyň bir bölegidir. Takmynan netijäni kesgitli hökmünde görkezmek ýalňyşdyr.

Gysgaça

San hasaplamalary ýapyk formula bilen çözülip bilinmeýän meseleler üçin takmynan, ýöne amaly netijeleri berýär; Python-da onuň gurallary NumPy we SciPy. AI bu kitaphanalar üçin çalt kod döredýär, ýöne kody işletmeli, okamaly we düşünmeli we belli giriş bilen synagdan geçirmeli. Floüzýän nokadyň takyklygy bilen seresap boluň: takyk deňlige däl-de, çydamlylygy ulanyň. Mümkin bolsa simwoliki we san usullaryny kesip geçiň. Umumy düşünjäni barlamak we çalyşmak iň arzan we iň täsirli barlaglardyr.

Programma meselesi

Closedapyk formula bilen çözmek kyn bolan meseläni saýlaň (meselem, kök x³ - 2x - 5 = 0 ýa-da elementar däl integralyň kesgitli bahasy). AI san koduny hem, mümkin bolsa 1 we 3 şablonlary bilen simwoliki-sanly barlag koduny çap etmegini üpjün ediň. Kody hakyky Python gurşawynda işlediň. Ilki bilen belli giriş bilen umumy many synagyny geçiriň, soňra hakyky meseläni çözüň. Floüzýän nokat deňeşdirmesi bar bolsa, çydamlylygy ulanmagy unutmaň. Netijä duýgurlygy bilen birlikde üns beriň.

gözegçilik sanawy

  • [] Meseläni we zerur duýgurlygy kesgitledim.
  • [] AI setirinde öndürilen kody setir boýunça okadym we düşündim.
  • [] Kody hakyky Python gurşawynda işledim.
  • [] Belli bir giriş bilen umumy many synagyny geçirdim.
  • [] Mümkin bolsa simwoliki / el bilen kesiş goşdum.
  • [] Floüzýän nokat deňeşdirmelerinde çydamlylygy ulandym.