Змест[Схаваць][Паказаць]
Матэматыка не абыдзецца, незалежна ад таго, з'яўляецеся вы студэнтам універсітэта або працуеце ў галіне навукі аб дадзеных.
Можна нават сцвярджаць, што навука аб дадзеных - гэта тып прыкладной матэматыкі/статыстыкі. NumPy, SciPy, scikit-learn, і TensorFlow гэта толькі некаторыя з бібліятэк Python, якія займаюцца матэматыкай колькасна.
Тым не менш, ёсць толькі адзін канкурэнт для відавочнай працы з матэматычнымі сімваламі: SymPy.
Давайце даведаемся ўсё пра SymPy.
Што такое SymPy?
SymPy - гэта сімвалічная матэматычная бібліятэка Python. Ён імкнецца быць поўнафункцыянальнай сістэмай камп'ютэрнай алгебры (CAS), захоўваючы пры гэтым код як мага больш просты, каб быць зразумелым і лёгка пашырацца.
Ён цалкам напісаны на Python. Ён просты ў выкарыстанні, паколькі абапіраецца толькі на mpmath, чыстую бібліятэку Python для адвольнай арыфметыкі з плаваючай коскай.
Як бібліятэка, яна была створана з вялікім акцэнтам на зручнасць выкарыстання. Пашыральнасць мае вырашальнае значэнне пры распрацоўцы інтэрфейсу прыкладной праграмы (API).
У выніку ён не спрабуе палепшыць мову Python. Мэта складаецца ў тым, каб карыстальнікі маглі выкарыстоўваць яго разам з іншымі Бібліятэкі Python у іх працоўным працэсе, няхай гэта будзе ў інтэрактыўным асяроддзі або як запраграмаваны кампанент большай сістэмы.
SymPy, як бібліятэка, не мае ўбудаванай графікі інтэрфейс карыстальніка (графічны інтэрфейс). Бібліятэка - гэта:
- Бясплатна, як у дачыненні да мовы і піва, таму што гэта ліцэнзіі BSD.
- На аснове Python: ён цалкам распрацаваны на Python і выкарыстоўвае Python у якасці мовы.
- Лёгкі, таму што ён абапіраецца толькі на mpmath, чысты Бібліятэка Python для адвольнай арыфметыкі з плаваючай кропкай, што робіць яго простым у выкарыстанні.
- Можа быць уключаны ў іншыя праграмы і мадыфікаваны з дапамогай уласных функцый у дадатак да выкарыстання ў якасці інтэрактыўнага інструмента.
Навошта выкарыстоўваць SymPy?
Sage, сістэма камп'ютэрнай алгебры, таксама выкарыстоўвае Python у якасці мовы праграмавання. Sage, з другога боку, велізарны, патрабуе загрузкі больш за гігабайт. Перавагай яго з'яўляецца лёгкі вага.
У дадатак да таго, што ён кампактны, ён не мае залежнасцей, акрамя Python, што дазваляе выкарыстоўваць яго практычна ўсюды.
Больш за тое, мэты Sage і SymPy не аднолькавыя. Sage імкнецца стаць поўнафункцыянальнай матэматычнай сістэмай, і гэта робіцца шляхам аб'яднання ўсіх асноўных матэматычных сістэм з адкрытым зыходным кодам у адну.
Калі вы выкарыстоўваеце функцыю Sage, такую як integrate, яна выклікае адзін з пакетаў з адкрытым зыходным кодам, якія змяшчае. На самай справе ён убудаваны ў Sage. SymPy, з іншага боку, імкнецца быць аўтаномнай сістэмай, усе функцыянальныя магчымасці якой рэалізаваны ў ёй самой.
Яго здольнасць функцыянаваць як бібліятэка з'яўляецца важнай асаблівасцю. Многія сістэмы камп'ютэрнай алгебры прызначаны для выкарыстання ў інтэрактыўным асяроддзі, але іх цяжка аўтаматызаваць або пашырыць.
Яго можна выкарыстоўваць у інтэрактыўным рэжыме ў Python або імпартаваць у вашу ўласную праграму Python. Ён таксама мае API для лёгкага пашырэння з дапамогай вашых уласных працэдур.
Ўстаноўка SymPy
Проста выкарыстоўвайце каманду ніжэй, каб усталяваць у вашым асяроддзі.
Сімвалы SymPy
Давайце пачнем з гэтага зараз! Яго фундаментальны аб'ект - сімвал. У SymPy вы можаце стварыць сімвал x, напісаўшы:
Прыведзены вышэй код стварае сімвал x. Сімвалы ў ім прызначаны для эмуляцыі матэматычных сімвалаў, якія прадстаўляюць невядомыя значэнні.
У выніку ніжэй паказана наступнае вылічэнне:
Як паказана вышэй, сімвал x функцыянуе аналагічна невядомай колькасці. Калі вы хочаце зрабіць шмат сімвалаў, напішыце іх наступным чынам:
У гэтым выпадку вы стварылі два сімвалы, y і z. Гэтыя сімвалы цяпер можна складаць, адымаць, памнажаць і дзяліць, як заўгодна:
Функцыі SymPy
1. функцыя sympify().
Метад sympify() ператварае адвольны выраз у выраз SymPy. Ён пераўтворыць стандартныя аб'екты Python, такія як цэлыя лікі.
Радкі пераўтвараюцца ў іх выразы, а таксама цэлыя лікі і г.д.
2. Функцыя evalf().
Гэтая функцыя ацэньвае зададзены лікавы выраз з дакладнасцю да 100 лічбаў з плаваючай кропкай.
Функцыя дадаткова прымае аб'ект слоўніка з лікавымі значэннямі для сімвалаў у якасці аргумента subs. Разгледзім наступную фразу:
Дакладнасць з плаваючай кропкай па змаўчанні ўстаноўлена на 15 лічбаў. Аднак гэта можна змяніць на любую лічбу ад 1 да 100.
Наступнае ўраўненне вылічваецца з дакладнасцю да 20 лічбаў.
3. Функцыя Lambdify().
Lambdify - гэта функцыя, якая пераўтворыць свае выразы ў функцыі Python. Метад evalf() неэфектыўны пры ацэнцы выразу ў шырокім дыяпазоне значэнняў.
Lambdify працуе аналагічна лямбда-функцыі, за выключэннем таго, што яна перакладае імёны SymPy у імёны прадастаўленай лікавай бібліятэкі, якой звычайна з'яўляецца NumPy.
Па змаўчанні Lambdify прымяняецца да рэалізацый стандартнай матэматычнай бібліятэкі.
Асаблівасці
Тут пералічаны некалькі найбольш значных функцый бібліятэкі; ёсць шмат іншых, якія не ўключаны, але вы можаце праверыць іх тут.
1. Асноўныя магчымасці
- Фундаментальная арыфметыка: падтрымліваюцца аператары +, -, *, / і ** (магутнасць)
- Мнагачленнае раскладанне
- Цэлыя, рацыянальныя і плыўныя лікі з адвольнай дакладнасцю
- Трыганаметрычныя, гіпербалічныя і экспанентныя функцыі, карані, лагарыфмы, абсалютная велічыня, сферычныя гармонікі, фактарыялы і гама-функцыі, дзета-функцыі, мнагачлены і спецыяльныя функцыі
- Сімвалы, якія не з'яўляюцца камутатыўнымі
- Адпаведныя ўзоры
2. Вылічэнне
- Інтэграцыя: гэты метад выкарыстоўвае пашыраную эўрыстыку Рыша-Нармана
- Дыферэнцыяцыя.
- Лімітавыя функцыі
- Серыял Ларана Тэйлара
3. Мнагачлены
- Асновы Грёбнера
- Раскладанне няпоўных дробаў
- Дзяленне, НОД Вынікі з'яўляюцца прыкладамі базавай арыфметыкі.
4. Камбінаторыка
- Перастаноўкі
- Кодэксы Грэя і Пруфера
- Камбінацыі, раздзелы, падмноствы
- Мнагагранныя групы, групы Рубіка, сіметрычныя і іншыя групы перастановак
5. Дыскрэтная матэматыка
- Падсумоўванні
- Лагічныя выразы
- Бінамінальныя каэфіцыенты
- Тэорыя лікаў
прыкладанняў
1. Будаўнічы калькулятар
2. Сістэмы камп'ютэрнай алгебры
У адрозненне ад іншых сістэм камп'ютэрнай алгебры, вы павінны ўручную дэклараваць сімвалічныя зменныя ў ёй з дапамогай функцыі Symbol().
3. Вылічэнне
Здольнасць сістэмы сімвалічных вылічэнняў рабіць усе віды вылічэнняў сімвалічна - яе галоўная сіла.
Ён можа спрашчаць выказванні, сімвалічна, вылічваць вытворныя, інтэгралы і межы, вырашаць ураўненні, узаемадзейнічаць з матрыцамі і рабіць многае іншае.
Каб абудзіць ваш апетыт, вось смак сімвалічнай сілы.
Што яшчэ можна зрабіць з SymPy?
Замест таго, каб паглыблена разважаць пра дадатковыя праблемы, дазвольце мне даць вам спіс рэсурсаў, якія дапамогуць вам палепшыць свае навыкі:
- Матрыцы і лінейная алгебра: Ён можа працаваць з матрыцамі і выконваць асноўныя аперацыі лінейнай алгебры. Мова падобная на сінтаксіс NumPy. Аднак ёсць прыкметныя адрозненні. Для пачатку даследуйце матрыцы у бібліятэцы.
- Выраз: Ён выкарыстоўвае дрэва выразаў, якое з'яўляецца дрэвападобнай структурай, каб адсочваць выразы. Паглядзіце выразныя дрэвы калі вы хочаце даведацца больш пра іх унутраную працу.
- Вытворныя і інтэгралы: Ён можа выканаць большую частку таго, што вы даведаецеся на ўводным курсе вылічэння (за вылікам мыслення). Вы можаце пачаць з прагляду нашай функцыі дыферэнцыяцыя у SymPy.
- Адносіны з NumPy: NumPy і SymPy - гэта бібліятэкі, звязаныя з матэматыкай. Яны, тым не менш, істотна розныя! NumPy працуе з лічбамі, у той час як ён працуе з сімвалічнымі выразамі.
- Спрашчэнні: Ён досыць разумны, каб аўтаматычна спрашчаць выразы. Аднак, калі вы хочаце больш дэталёвы кантроль над гэтым, паглядзіце на яго спрашчэнні.
заключэнне
SymPy - гэта магутная бібліятэка для сімвалічнай матэматыкі.
Вы можаце выкарыстоўваць яго для стварэння зменных і функцый, а таксама для сімвалічнага пашырэння і спрашчэння матэматычных выкладаў і рашэння ўраўненняў, няроўнасцей і нават сістэм ураўненняў/няроўнасцей.
Вы можаце запісваць функцыі як у тэксце скрыпту, так і непасрэдна ў тэрмінале (або Сшыткі Jupyter), каб атрымаць хуткую ацэнку і лепшае графічнае адлюстраванне праведзеных вылічэнняў.
Ці гатовыя вы даследаваць больш SymPy? Дайце нам ведаць у каментарах.
Пакінуць каментар