Talaan ng nilalaman[Tago][Ipakita]
Walang pag-ikot sa matematika, mag-aaral ka man sa unibersidad o nagtatrabaho sa agham ng data.
Maaaring magtaltalan ang isa na ang data science ay isang uri ng inilapat na matematika/statistika. NumPy, SciPy, Scikit-Alamin, at TensorFlow ay ilan lamang sa mga aklatan ng Python na tumatalakay sa matematika sa dami.
Gayunpaman, mayroon lamang isang katunggali para sa tahasang pagharap sa mga simbolo ng matematika: SymPy.
Alamin natin ang lahat tungkol sa SymPy.
Ano ang SymPy?
Ang SymPy ay isang Python symbolic mathematics library. Ito ay naghahangad na maging isang ganap na tampok na computer algebra system (CAS) habang pinapanatili ang code bilang basic hangga't maaari upang maunawaan at madaling mapalawak.
Ito ay ganap na nakasulat sa Python. Ito ay simpleng gamitin dahil umaasa lamang ito sa mpmath, isang purong Python library para sa arbitrary na floating-point arithmetic.
Bilang isang silid-aklatan, ito ay nilikha na may malaking diin sa kakayahang magamit sa isip. Ang extension ay kritikal sa disenyo ng application program interface (API) nito.
Bilang resulta, hindi ito gumagawa ng pagtatangka na pahusayin ang wikang Python. Ang layunin ay para magamit ng mga user ito kasama ng iba Mga aklatan ng Python sa kanilang daloy ng trabaho, maging sa isang interactive na kapaligiran o bilang isang naka-program na bahagi ng isang mas malaking system.
Ang SymPy, bilang isang library, ay walang built-in na graphical user interface (GUI). Ang aklatan ay:
- Libre, kapwa tungkol sa pagsasalita at beer, dahil ito ay lisensyado sa ilalim ng lisensya ng BSD.
- Batay sa Python: Ito ay ganap na binuo sa Python at gumagamit ng Python bilang wika nito.
- Magaan dahil umaasa lamang ito sa mpmath, isang dalisay Python library para sa arbitrary na floating-point aritmetika, na ginagawa itong simple upang gamitin.
- Maaaring isama sa iba pang mga programa at mabago gamit ang mga custom na function bilang karagdagan sa paggamit bilang isang interactive na tool.
Bakit gagamitin ang SymPy?
Ang Sage, isang computer algebra system, ay gumagamit din ng Python bilang programming language nito. Ang Sage, sa kabilang banda, ay napakalaki, na nangangailangan ng pag-download ng higit sa isang gigabyte. Ito ay may pakinabang ng pagiging magaan.
Bilang karagdagan sa pagiging compact, wala itong mga dependencies maliban sa Python, na nagpapahintulot na magamit ito sa halos lahat ng dako.
Higit pa rito, ang mga layunin ng Sage at SymPy ay hindi pareho. Naghahangad si Sage na maging isang buong tampok na sistema ng matematika, at ginagawa nito ito sa pamamagitan ng pagsasama-sama ng lahat ng pangunahing open-source na mga sistema ng matematika sa isa.
Kapag gumamit ka ng Sage function, gaya ng integrate, hinihiling nito ang isa sa mga open-source na package na nilalaman nito. Sa katotohanan, ito ay binuo sa Sage. Ang SymPy, sa kabilang banda, ay naghahangad na maging isang self-contained system, na may lahat ng functionality na ipinatupad dito mismo.
Ang kakayahang gumana bilang isang aklatan ay isang mahalagang tampok. Maraming mga computer algebra system ang nilalayong gamitin sa mga interactive na kapaligiran, ngunit mahirap silang i-automate o palawakin.
Maaari itong magamit nang interactive sa Python o i-import sa iyong sariling Python program. Mayroon din itong mga API para sa madaling pagpapalawak nito sa sarili mong mga gawain.
Pag-install ng SymPy
Gamitin lang ang command sa ibaba para i-install sa iyong environment.
Mga Simbolo ng SymPy
Simulan na natin ito ngayon! Ang pangunahing bagay nito ay isang simbolo. Sa SymPy, maaari kang bumuo ng isang simbolo x sa pamamagitan ng pagsulat:
Ang code sa itaas ay bumubuo ng simbolo x. Ang mga simbolo sa loob nito ay nilayon upang tularan ang mga simbolo ng matematika na kumakatawan sa mga hindi kilalang halaga.
Bilang resulta, ang sumusunod na pagkalkula ay ipinapakita sa ibaba:
Tulad ng ipinakita sa itaas, ang simbolo na x ay gumagana nang katulad sa isang hindi kilalang halaga. Kung nais mong gumawa ng maraming simbolo, isulat ang mga ito tulad ng sumusunod:
Gumawa ka ng dalawang simbolo, y, at z, sa parehong sandali sa kasong ito. Ang mga simbolo na ito ay maaari na ngayong idagdag, ibawas, i-multiply, at hatiin ayon sa gusto:
Mga Function ng SymPy
1. sympify() function
Binabago ng paraan ng sympify() ang isang arbitrary na expression sa isang SymPy expression. Kino-convert nito ang mga karaniwang bagay na Python, tulad ng mga integer.
Ang mga string ay binago sa kanilang mga expression pati na rin ang mga integer, atbp.
2. evalf() function
Sinusuri ng function na ito ang isang tinukoy na numerical expression na may katumpakan ng floating-point na hanggang 100 digit.
Ang function ay tumatanggap din ng isang object ng diksyunaryo na may mga numerical na halaga para sa mga simbolo bilang isang subs argument. Isaalang-alang ang sumusunod na parirala:
Ang katumpakan ng floating-point ay nakatakda sa 15 digit bilang default. Gayunpaman, maaari itong baguhin sa anumang numero sa pagitan ng 1 at 100.
Ang sumusunod na equation ay sinusuri sa isang katumpakan ng 20 digit.
3. Lambdify() function
Ang Lambdify ay isang function na nagko-convert ng mga expression nito sa mga function ng Python. Ang evalf() na pamamaraan ay hindi epektibo kapag sinusuri ang isang expression sa isang malawak na hanay ng mga halaga.
Parehong gumagana ang Lambdify sa isang function ng lambda, maliban na isinasalin nito ang mga pangalan ng SymPy sa mga pangalan ng ibinigay na numerical library, na karaniwang NumPy.
Bilang default, ang Lambdify ay inilalapat sa math standard na mga pagpapatupad ng library.
Mga tampok
Ang isang dakot ng mga pinaka makabuluhang tampok ng library ay nakalista dito; marami pang hindi kasama, ngunit maaari mong tingnan ang mga ito dito.
1. Mga Pangunahing Kakayahan
- Pangunahing arithmetic: +, -, *, /, at ** operator ay suportado (power)
- Isang polynomial expansion
- Mga integer, rational, at float na may di-makatwirang katumpakan
- Trigonometric, hyperbolic, at exponential function, roots, logarithms, absolute value, spherical harmonics, factorial at gamma function, zeta function, polynomial, at espesyal na function
- Mga simbolo na hindi commutative
- Pagtutugma ng mga pattern
2. Calculus
- Pagsasama: Ginagamit ng paraang ito ang pinalawak na Risch-Norman heuristic
- Pagkita ng kaibahan.
- Limitahan ang mga function
- Ang serye ni Laurent Taylor
3. Mga Polynomial
- Mga pundasyon ng Gröbner
- Pagkabulok ng mga bahagyang fraction
- Division, gcd Resultant ay mga halimbawa ng basic arithmetic.
4. Kombinatorika
- Mga Permutasyon
- Gray at Prufer Code
- Mga Kumbinasyon, Mga Partisyon, Mga Subset
- Polyhedral, Rubik, Symmetric, at Iba Pang Mga Pangkat ng Permutation
5. Discrete Maths
- Mga pagbubuod
- Mga lohikal na pagpapahayag
- Binomial coefficients
- Numero ng teorya
aplikasyon
1. Building Calculator
2. Computer Algebra Systems
Hindi tulad ng iba pang Computer Algebra Systems, kailangan mong manu-manong magdeklara ng mga simbolikong variable dito gamit ang Symbol() function.
3. Calculus
Ang kapasidad ng isang symbolic computation system na gawin ang lahat ng uri ng computations sa simbolikong lakas nito.
Maaari nitong pasimplehin ang mga pahayag, simbolikong mag-compute ng mga derivative, integral, at limitasyon, lutasin ang mga equation, makipag-ugnayan sa mga matrice, at gumawa ng higit pa.
Upang pukawin ang iyong gana, narito ang lasa ng simbolikong kapangyarihan.
Ano Pa Ang Magagawa Mo Sa SymPy?
Sa halip na mag-isip tungkol sa mga karagdagang isyu nang malalim, hayaan akong magbigay sa iyo ng isang listahan ng mga mapagkukunan upang matulungan kang mapahusay ang iyong mga kasanayan:
- Matrices at Linear Algebra: Maaari itong gumana sa mga matrice at magsagawa ng mga pangunahing operasyong linear algebra. Ang wika ay katulad ng syntax ng NumPy. Gayunpaman, may mga kapansin-pansing pagkakaiba. Upang magsimula, siyasatin matris sa library.
- Pagpapahayag: Ginagamit nito ang isang expression tree, na isang istrakturang nakabatay sa puno, upang subaybayan ang mga expression. tignan mo mga puno ng ekspresyon kung gusto mong matuto nang higit pa tungkol sa kanilang mga panloob na gawain.
- Derivatives at Integrals: Magagawa nito ang karamihan sa iyong matututunan sa isang panimulang klase ng calculus (bawas sa pag-iisip). Maaari kang magsimula sa pamamagitan ng pagtingin sa aming function pagkita ng kaibhan sa SymPy.
- Relasyon sa NumPy: Ang NumPy at SymPy ay parehong mga aklatang nauugnay sa matematika. Gayunpaman, sila ay talagang naiiba! Gumagana ang NumPy sa mga numero, samantalang gumagana ito sa mga simbolikong expression.
- Mga pagpapasimple: Ito ay sapat na matalino upang awtomatikong pasimplehin ang mga expression. Gayunpaman, kung gusto mo ng mas pinong kontrol dito, tingnan ito pagpapasimple.
Konklusyon
Ang SymPy ay isang makapangyarihang aklatan para sa simbolikong matematika.
Magagamit mo ito upang lumikha ng mga variable at function, gayundin ang simbolikong pagpapalawak at pasimplehin ang mga mathematical na pahayag at lutasin ang mga equation, hindi pagkakapantay-pantay, at maging ang mga sistema ng mga equation/hindi pagkakapantay-pantay.
Maaari mong isulat ang mga function pareho sa teksto ng script at direkta sa terminal (o Mga notebook ng jupyter) para makakuha ng mabilis na pagtatasa at mas magandang graphical na paglalarawan ng mga computations na ginawa.
Handa ka na bang galugarin ang higit pa sa SymPy? Ipaalam sa amin sa mga komento.
Mag-iwan ng Sagot