Vienetas 6 / 11

Matematinė vizualizacija

Pelnas:

  • Galimybė vizualizuoti funkcijas, sankryžas ir duomenis spausdinant Matplotlib kodą dirbtiniam intelektui ir paleidžiant kodą bei pasirinkti tinkamą grafiko tipą pagal paskirtį
  • Gebėjimas patikrinti, ar grafikas teisingai atspindi matematiką, lyginant jį su žinomomis funkcijos savybėmis, ašių diapazonu, asimptotėmis ir bent vieno taško skaičiavimu.
  • Gebėjimas vizualiai nustatyti šaknis ir sankryžas naudojant vizualizaciją kaip patikrinimo įrankį ir pateikti tikslius skaitinių metodų pradžios taškus

Grafikas pasako daugiau nei tūkstantį lygčių. Vizualiai pamatyti, kaip veikia funkcija, kur yra jos šaknys, kur susikerta dvi kreivės arba kaip paskirstomi duomenys, yra vienas iš galingiausių būdų suprasti ir patikrinti matematiką. Matematinė vizualizacija – tai vizualinis matematinių objektų (funkcijų, duomenų, geometrinių formų) atvaizdavimas grafika. Standartinis Python įrankis yra Matplotlib biblioteka. Šiame skyriuje sužinosite, kaip dirbtinį intelektą naudoti kaip asistentą, generuojantį vizualizacijos kodą, ir, dar svarbiau, kaip patikrinti, ar grafikas teisingai atspindi matematiką.

Vizualizacija taip pat yra patikrinimo įrankis. Ankstesniame vienete matėme: nubraižydami lygties šaknį prieš ją surandant, apytiksliai parodoma, kur yra šaknis, ir pateikiamas tikslus pradinis įvertinimas. Funkcijos grafiko matymas prieš integralinį skaičiavimą leidžia suprasti, ar rezultato ženklas (teigiamas / neigiamas plotas) yra prasmingas. Grafike klausiama "ar šis rezultatas prasmingas?" Tai vizualus atsakymas į klausimą.

Pagrindiniai vizualizacijos panaudojimo būdai matematikoje

  • Funkcijos elgsena: didėjantys / mažėjantys regionai, maksimumai / minimumai, f(x) asimptotės.
  • Šaknų ir susikirtimų radimas: vietos, kur kreivė susikerta su x ašimi (šaknys), dviejų kreivių susikirtimo vieta.
  • Plotas/integrali intuicija: vizualinis ploto po kreive vaizdavimas.
  • Duomenų pasiskirstymas: Histograma, sklaidos diagrama, dėžutės diagrama.
  • Geometrija: trikampiai, apskritimai, transformacijos.
  • Kurso medžiaga: Sąvokos vaizdinis paaiškinimas studentams.

Žingsnis po žingsnio: tikslios grafikos kūrimas naudojant AI

1. Būkite aiškus, ką norite parodyti. „Brėžti sin(x)“ neužtenka; Geriau pavaizduoti sin(x) diapazone [−2π, 2π], pažymėtomis ašimis ir tinkleliu.

2. Parašykite Matplotlib kodą į AI. Klauskite kodo, o ne išvesties vaizdo; Paleidžiate kodą ir matote grafiką.

3. Palyginkite grafiką su matematika. Ar grafikas rodo žinomas funkcijos savybes? sin(x) turi svyruoti tarp –1 ir 1; parabolė turi būti simetriška; eksponentinė funkcija turi sparčiai didėti. Jei diagramoje tai nerodoma, kode yra klaida.

4. Patikrinkite ašies diapazoną. Neteisingas tarpas gali paslėpti svarbią šaknį ar elgesį. Įsitikinkite, kad jis apima įdomią funkcijos sritį.

5. Patikrinkite etiketę ir svarstykles. Ar ašys paženklintos? Ar teisinga skalė (tiesinė / loginė)? Klaidinanti skalė sukuria klaidingą įspūdį.

6. Patvirtinkite skaitiniu tašku. Jei grafike rodoma f(2)≈3, patikrinkite tai skaičiuodami. Grafikas gali meluoti (jei nubraižyta neteisinga funkcija).

Patarimas: nubraižę grafiką, patikrinkite jį savarankiškai apskaičiuodami bent vieną tašką. Jei diagrama rodo y=1, kai x=0, apskaičiuokite f(0) rankiniu būdu. Jei jie sutampa, tikriausiai buvo nubrėžta teisinga funkcija; Jei jis nesutampa, AI galėjo užkoduoti neteisingą išraišką.

Skiriamoji geba ir atranka: kur yra grafikas

Matplotlib diagrama iš tikrųjų nėra ištisinė kreivė; Jis apskaičiuoja funkciją esant baigtiniam taškų skaičiui ir sujungia šiuos taškus tiesiomis linijomis. Šių taškų skaičius vadinamas atrankos skiriamąja geba. Jei skiriamoji geba maža (pvz., NumPy naudojant linspace sugeneruota tik 10 taškų), greitai svyruojanti funkcija (pvz., sin(50x)) grafike gali atrodyti visiškai neteisinga – dauguma smailių ir slenksčių patenka tarp dviejų mėginių ėmimo taškų ir išnyksta. Apdorojant signalą tai vadinama slapyvardžiu. AI kartais rašo kodą, kuris sukuria nedidelį taškų skaičių; Rezultatas yra sklandus, bet klaidinantis grafikas.

Priešnuodis paprastas: greitai kintančiose funkcijose (pvz., np.linspace(a, b, 1000) išlaikyti didelį mėginių ėmimo taškų skaičių). Be to, jei diagrama atrodo kampuota, dantyta ar netaisyklinga, kurios nesitikėjote, tai dažnai yra mažos skiriamosios gebos šalutinis poveikis, o ne tikroji funkcijos elgsena; Padidinkite taškų skaičių ir patikrinkite, ar grafikas nesikeičia. Jei grafikas labai pasikeičia atsižvelgiant į taškų skaičių, dar nematote tikrosios funkcijos formos.

Atsargiai: žemos skiriamosios gebos grafikas gali visiškai klaidingai parodyti greitai svyruojančią funkciją arba net atitikti šabloną, kurio nėra. Braižydami kritinį grafiką, sąmoningai pasirinkite didelį atrankos taškų skaičių ir patikrinkite, ar grafikas išlieka stabilus, kai padidinate taškų skaičių.

Diagramos tipo pasirinkimas

Tikslas

tinkama grafika

Matplotlib funkcija

Funkcijų kreivė

linijinė diagrama

siužetas ()

duomenų taškai

Sklaidos sklypas

išsklaidyti ()

paskirstymas

histograma

istorija ()

Du kintamieji santykiai

Sklaida + kreivė

plot() + sklaida()

Kategoriškas palyginimas

juostinė diagrama

baras ()

Paviršius/3D

3D paviršius

plot_surface()

trys mini dėklai

1 atvejis – paslėpta šaknis. Vienas studentas nubraižė grafiką, kad matytų daugianario šaknis, tačiau pasirinko YZ ašies diapazoną [−1, 1]; tuo tarpu šaknys buvo maždaug x=3 ir grafike visai nebuvo matomos. Mokinys klausia "ar ši funkcija neturi šaknies?" Jis nustebo, tada, kai jis pakeitė tarpą į [−5, 5], atsirado šaknys. Pamoka: neteisingas tarpas paslepia matematiką.

2 atvejis – netinkama funkcija. Mokytojas norėjo, kad AI nubrėžtų „cos(x²)“, tačiau kodas klaidingai parašė „cos(x)²“ (t. y. cos²(x)). Abi funkcijos labai skiriasi. Kai mokytojas palygino grafiką su numatoma reikšme x=√π, jis pamatė, kad ji nesutampa, ir pastebėjo klaidą. Skliaustų vieta viską pakeičia.

3 atvejis – įsitvirtino vizualinis patikrinimas. Inžinierius pirmiausia nubrėžė funkciją ir pamatė, kad ji kerta x ašį dviejose vietose (~1,2 ir ~4,7). Turėdamas šią vaizdinę informaciją, jis suteikė skaitmeniniam šaknies ieškikliui tikslius pradinius spėjimus ir tiksliai nustatė abi šaknis. Be grafiko jis galėtų susivesti tik į šaknį. Dvi šaknys per 5 minutes.

Keturi kopijuojami šablonai

1) Funkcijų diagrama:

Parašykite Matplotlib kodą, kuris atvaizduoja funkciją [f(x)] diapazone [a, b]. Sukurkite x masyvą naudodami NumPy, pažymėkite ašį, pridėkite tinklelį, įdėkite pavadinimą. Aš paleisiu kodą; identifikuojant vaizdą. Pasirinkite tinkamą tarpą, kad būtų matomos šaknys/specialūs taškai.

2) Dviejų kreivių sankirta:

Tame pačiame grafike nubrėžkite [f(x)] ir [g(x)] funkcijas diapazone [a, b]. Parodykite juos skirtingomis spalvomis, pridėkite legendą. Sureguliuokite atstumą tarp ašių, kad galėčiau apytiksliai matyti, kur yra susikirtimo taškai.

3) vizualinis + skaitmeninis patikrinimas:

Nubraižykite [f(x)] IR atspausdinkite grafike faktines 3 imties taškų f reikšmes (x=[reikšmės]). Taigi galiu palyginti diagramą su skaitinėmis reikšmėmis. Tiesiog duok kodą.

4) Duomenų histograma:

Parašykite kodą, kuris nubrėžia šio duomenų sąrašo histogramą: [duomenys]. Pasirinkite atitinkamą diapazonų (dėžių) skaičių, pažymėkite ašis. Taip pat atspausdinkite vidutinį ir standartinį nuokrypį. Aš paleisiu kodą.

Silpnas raginimas / Stiprus raginimas

Silpna: "Nubraižykite funkciją 1/(x−2)."
Rezultatas: kodas gali netinkamai apdoroti vertikalią asimptotę, kai x=2; Diagramoje pavaizduota klaidinanti vertikali linija ties x=2 ir funkcijos veikimas nesuprastas.
Stiprus: "Funkciją 1/(x−2) nubraižykite diapazone [−5, 5], bet vertikalią asimptotę parodykite ties x = 2 teisingai: ribines vertes šalia asimptotės arba nubrėžkite jas kaip dvi atskiras dalis. Pažymėkite ašis, pažymėkite asimptotę punktyrine linija."
Rezultatas: asimptotas rodomas teisingai, grafikas atspindi tikrąjį funkcijos elgesį.

Dažnos klaidos

  • Neteisingas ašies diapazonas. Diapazonas, kuris neapima įdomios funkcijos srities (šaknys, viršūnės), užgožia matematiką.
  • Asimptotų ignoravimas. Vertikalios asimptotės tokiose funkcijose kaip 1/x veda prie klaidinančių linijų; reikalingas specialus tvarkymas.
  • Skliausteliuose / žymėjimo klaida. Tokie skirtumai kaip cos(x²) ir cos²(x) į kodą įvesti neteisingai; Grafike parodyta kita funkcija.
  • Nežymėti kirviai. Kas nupiešta, lieka neaišku; Tai rimtas kurso medžiagos trūkumas.
  • Nepatvirtina diagramos skaičiais. Jei grafikas nubraižo neteisingą funkciją, ją sugaus tik taškiniai skaičiavimai.
  • Klaidinantis mastas. Dėl logaritminės/tiesinės skalės painiavos susidaro klaidingas įspūdis.
Atsargiai: vien todėl, kad diagrama „gražiai atrodo“, ji nėra teisinga. AI gali sudaryti estetiškai patrauklų, bet matematiškai neteisingą grafiką – pavyzdžiui, jis gali nubraižyti netinkamą funkciją, netinkamame diapazone arba su iškreipta asimptote. Visada palyginkite grafiką su žinomomis funkcijos savybėmis, kurias jis nubraižo, ir su bent vieno taško skaičiavimu.

Apibendrinant

Vizualizacija yra ir išraiška, ir tikrinimo įrankis: vizualiai matyti funkcijos elgseną, jos šaknis ir susikirtimus, tai yra galingas būdas pagauti klaidas ir rasti tikslius skaitinius atskaitos taškus. AI greitai generuoja Matplotlib kodą; Paleidžiate kodą, palyginate grafiką su žinomomis funkcijos savybėmis, patikrinate ašių diapazoną ir asimptotes ir patvirtinate bent vieną tašką skaitiniu būdu. Gražus grafikas nėra teisingas grafikas; visada lyginkite su matematika.

Taikymo užduotis

Pasirinkite įdomią funkciją (pvz., 1/(x−2), kuri turi vertikalią asimptotę arba daugianarį su keliomis šaknimis). Leiskite AI nubraižyti grafiką su 1 ir 3 šablonais ir atspausdinti tikrąsias kelių taškų reikšmes. Paleiskite kodą ir pamatysite grafiką. Palyginkite grafiko požymius (šaknis, asimptotę, viršūnes) su žinoma funkcijos matematika. Patvirtinkite bent vieną tašką rankiniu būdu arba naudodami SymPy. Pakeiskite ašies diapazoną ir pažiūrėkite, ar neatsiranda paslėptų veiksmų.

kontrolinis sąrašas

  • [ ] Aiškiai pasakiau, ką noriu nupiešti su tarpais ir etiketėmis.
  • [ ] Paleidau kodą ir iš tikrųjų pamačiau grafiką.
  • [ ] Palyginau grafiką su žinomomis funkcijos savybėmis.
  • Patikrinau, kad [ ] ašių diapazonas apima įdomų regioną.
  • [ ] Patikrinau, ar asimptotės/neapibrėžti taškai rodomi teisingai.
  • [ ] Patvirtinau bent vieną tašką skaičiais.