Добивки:
- Способност да се визуелизираат функции, пресеци и податоци со печатење на Matplotlib код на вештачка интелигенција и извршување на кодот и да се избере соодветен тип на графикон за целта
- Способност да се провери дали графикот правилно ја рефлектира математиката со споредување со познатите својства на функцијата, опсегот на оската, асимптотите и пресметката на најмалку една точка.
- Способност за визуелно лоцирање корени и пресеци со користење на визуелизација како алатка за верификација и обезбедување точни појдовни точки за нумерички методи
Графикот кажува повеќе од илјада равенки. Визуелно гледање како се однесува функцијата, каде се нејзините корени, каде се сечат две кривини или како се распределуваат податоците е еден од најмоќните начини за разбирање и потврдување на математиката. Математичката визуелизација е визуелно претставување на математички објекти (функции, податоци, геометриски форми) со графика. Стандардна алатка за ова во Python е библиотеката Matplotlib. Во оваа единица ќе научите како да користите вештачка интелигенција како асистент кој генерира код за визуелизација и, уште поважно, како да проверите дали графикот правилно ја рефлектира математиката.
Визуелизацијата е исто така алатка за верификација. Видовме во претходната единица: графикот на коренот на равенката пред да се најде нумерички покажува приближно каде е коренот и дава точна почетна проценка. Гледањето на графикот на функцијата пред интегрална пресметка ви овозможува да разберете дали знакот на резултатот (позитивна/негативна област) има смисла. Графикот прашува "дали овој резултат има смисла?" Тоа е визуелен одговор на прашањето.
Главните употреби на визуелизацијата во математиката
- Однесување на функцијата: Зголемувачки/омалувачки региони, максимални/минимуми, асимптоти на f(x).
- Наоѓање корени и пресеци: Местата каде што кривата ја сече оската x (корени), пресекот на две кривини.
- Површина/интегрална интуиција: Визуелно претставување на областа под кривата.
- Дистрибуција на податоци: хистограм, заплет на расејување, заплет на кутии.
- Геометрија: Триаголници, кругови, трансформации.
- Материјал на предметната програма: Визуелно објаснување на концептот на студентите.
Чекор по чекор: Производство на точна графика со вештачка интелигенција
1. Бидете јасни за тоа што сакате да покажете. „Нацртајте грев(x)“ не е доволно; „Исцртај sin(x) во опсегот [−2π, 2π], со означени оски и мрежа“ е подобро.
2. Напишете го кодот Matplotlib на вештачката интелигенција. Побарајте го кодот, а не излезната слика; Го извршувате кодот и го гледате графикот.
3. Споредете го графикот со математиката. Дали графикот покажува познати својства на функцијата? sin(x) мора да осцилира помеѓу -1 и 1; параболата мора да биде симетрична; експоненцијална функција мора брзо да се зголемува. Ако графиконот не ги прикажува овие, има грешка во кодот.
4. Проверете го опсегот на оската. Неправилното растојание може да скрие важен корен или однесување. Погрижете се да го покрие интересниот регион на функцијата.
5. Проверете ја етикетата и вагата. Дали се означени оските? Дали скалата (линеарна/лог) е точна? Лажна вага дава погрешен впечаток.
6. Потврдете со нумеричка точка. Ако графиконот покажува f(2)≈3, потврдете го ова со пресметка. Графикот може да лежи (ако е нацртана погрешна функција).
Совет: Откако ќе нацртате график, потврдете го со самостојно пресметување на барем една точка на него. Ако графикот покажува y=1 на x=0, пресметајте ја f(0) рачно. Ако се совпаѓаат, најверојатно е нацртана точната функција; Ако не се совпаѓа, вештачката интелигенција можеби кодирала погрешен израз.
Резолуција и земање примероци: каде лежи графикот
Заплетот Matplotlib всушност не е континуирана крива; Ја пресметува функцијата на конечен број точки и ги поврзува овие точки со прави линии. Бројот на овие точки се нарекува резолуција на земање примероци. Ако резолуцијата е ниска (на пр. само 10 точки генерирани со linspace во NumPy), брзо осцилирачка функција (на пр. sin(50x)) може да изгледа сосема погрешно на графиконот - повеќето врвови и корита паѓаат помеѓу двете точки за земање примероци и исчезнуваат. Ова се нарекува алиасирање во процесирањето на сигналот. AI понекогаш пишува код кој произведува мал број на поени; Резултатот е течен, но погрешен график.
Противотровот е едноставен: држете го бројот на точки за земање примероци висок во функциите кои брзо се менуваат (на пр. np.linspace(a, b, 1000)). Исто така, ако графикот има аголен, заби или неправилен изглед што не го очекувате, ова е често несакан ефект на ниската резолуција, а не на вистинското однесување на функцијата; Зголемете го бројот на поени и проверете дали графикот се менува. Ако графикот значително се промени со бројот на точки, сè уште не ја гледате вистинската форма на функцијата.
Внимание: Графикот со ниска резолуција може целосно погрешно да ја претстави функцијата што брзо осцилира - или дури и да одговара на шема што не постои. Кога цртате критичен график, намерно изберете голем број точки за земање примероци и проверете дали графикот останува стабилен додека го зголемувате бројот на точки.
Избор на тип на графикон
Цел
соодветна графика
Функција Matplotlib
Функционална крива
линиски графикон
заговор ()
точки на податоци
Растера парцела
растура ()
дистрибуција
хистограм
hist ()
Две променливи односи
Растера + крива
заговор () + растура ()
Категорична споредба
столбест дијаграм
лента ()
Површина/3Д
3D површина
plot_површина ()
три мини футроли
Случај 1 - Скриен корен. Еден студент имаше график нацртан за да ги види корените на полиномот, но го избра опсегот на оската YZ [−1, 1]; додека корените беа околу x=3 и воопшто не беа видливи на графикот. Ученикот прашува "дали оваа функција нема корен?" Тој беше изненаден, а потоа кога го промени растојанието во [−5, 5], се појавија корените. Лекција: погрешното растојание ја крие математиката.
Случај 2 - Неправилна функција. Еден наставник сакал да го нацрта ВИ „cos(x²)“, но кодот погрешно напишал „cos(x)²“ (т.е. cos²(x)). Двете функции се многу различни. Кога наставникот го споредил графикот со очекуваната вредност x=√π, видел дека не се совпаѓа и ја фатил грешката. Местото на заградите менува сè.
Случај 3 - Визуелната верификација се вкорени. Еден инженер најпрво ја направи графиконот на функцијата и виде дека таа ја пресекува оската x на две места (~1,2 и ~4,7). Со овие визуелни информации, му даде на дигиталниот пронаоѓач на корени точни првични претпоставки и прецизно ги пронајде двата корени. Без графиконот, може да се конвергира само до корен. Два корени за 5 минути.
Четири шаблони за копирање
1) Табела со функции:
Напишете Matplotlib код кој ја исцртува функцијата [f(x)] во опсегот [a, b]. Направете x низа со NumPy, означете ја оската, додадете мрежа, ставете наслов. ќе го извршам кодот; идентификување на сликата. Изберете го соодветното растојание за да се видат корените/посебните точки.
2) Пресек на две кривини:
Нацртај [f(x)] и [g(x)] функции во опсегот [a, b] на истиот график. Покажете ги во различни бои, додадете легенда. Прилагодете го растојанието меѓу оските за да можам да видам приближно каде се пресечните точки.
3) Визуелна + нумеричка верификација:
Нацртај [f(x)] И отпечати ги вистинските вредности на f на 3-те примероци точки (x=[вредности]) на графикот. Така, можам да ја споредам табелата со нумеричките вредности. Само дајте го кодот.
4) Хистограм на податоци:
Напишете код кој исцртува хистограм од следнава листа на податоци: [податоци]. Изберете соодветен број опсези (канти), означете ги оските. Испечатете ја и средната и стандардната девијација. Јас ќе го извршам кодот.
Слаб промпт / Силен промпт
Слабо: „Исцртај ја функцијата 1/(x−2).“
Резултат: кодот може да не се справува правилно со вертикалната асимптота на x=2; Графикот покажува погрешна вертикална линија на x=2 и однесувањето на функцијата е погрешно разбрано.
Силно: „Исцртај ја функцијата 1/(x−2) на опсегот [−5, 5], но правилно прикажи ја вертикалната асимптота на x=2: граничните вредности во близина на асимптотата или исцртај ги како два посебни дела. Означете ги оските, означете ја асимптотата со испрекината линија.
Резултат: Асимптотата се прикажува правилно, графикот го одразува вистинското однесување на функцијата.
Вообичаени грешки
- Погрешен опсег на оската. Опсегот што не го опфаќа интересниот регион на функцијата (корени, темиња) ја замаглува математиката.
- Игнорирање на асимптоти. Вертикалните асимптоти во функции како 1/x водат до погрешни линии; потребно е посебно ракување.
- Грешка во загради/ нотација. Разликите како што се cos(x²) и cos²(x) се пренесуваат погрешно во кодот; Графикот покажува друга функција.
- Неозначени секири. Она што е нацртано останува нејасно; Тоа е сериозен недостаток во предметниот материјал.
- Не се потврдува нумерички графиконот. Ако графиконот ја исцртува погрешната функција, само калкулусот за точки ќе ја фати.
- Заблуда скала. Збунетоста на логаритамската/линеарната скала дава погрешен впечаток.
Внимание: Само затоа што графиконот „изгледа убаво“ не го прави исправен. ВИ може да произведе график кој е естетски пријатен, но математички неточен - на пример, може да нацрта погрешна функција, во погрешен опсег или со искривена асимптота. Секогаш споредувајте го графикот со познати својства на функцијата што ја исцртува и со пресметка на најмалку една точка.
Сумирано
Визуелизацијата е и израз и алатка за верификација: визуелното гледање на однесувањето на функцијата, нејзините корени и пресеци, е моќен начин да се фатат грешките и да се најдат точни нумерички почетни точки. AI брзо генерира Matplotlib код; Го извршувате кодот, го споредувате графикот со познатите својства на функцијата, го проверувате опсегот на оските и асимптотите и нумерички потврдувате барем една точка. Прекрасен графикон не е правилен график; секогаш споредувај со математика.
Задача за апликација
Изберете интересна функција (на пр. 1/(x−2), која има вертикална асимптота или полином со неколку корени). Нека вештачката интелигенција да го нацрта графикот со 1-ви и 3-ти шаблони и да ги испечати вистинските вредности на неколку точки. Извршете го кодот и видете го графиконот. Споредете ги карактеристиките на графикот (корени, асимптота, темиња) со познатата математика на функцијата. Потврдете барем една точка рачно или со SymPy. Променете го опсегот на оската и проверете дали ќе се појави некое скриено однесување.
листа за проверка
- [ ] Јасно кажав што сакам да нацртам со проред и етикети.
- [ ] Го истрчав кодот и всушност го видов графикот.
- [ ] Го споредив графикот со познати својства на функцијата.
- Потврдив дека опсегот на оската [ ] го покрива интересниот регион.
- [ ] Проверив дали асимптотите/недефинираните точки се правилно прикажани.
- [ ] Потврдив барем една точка нумерички.