INHOUDSOPGAWE[Versteek][Wys]
Daar is geen omseiling in wiskunde nie, of jy nou 'n universiteitstudent is of in datawetenskap werk.
Mens kan selfs redeneer dat datawetenskap 'n tipe toegepaste wiskunde/statistiek is. NumPy, SciPy, Scikit-leer, en TensorFlow is net 'n paar van die Python-biblioteke wat kwantitatief met wiskunde handel.
Daar is egter net een mededinger om eksplisiet met wiskundige simbole te handel: SymPy.
Kom ons vind alles uit oor SymPy.
Wat is SimPy?
SymPy is 'n Python simboliese wiskunde biblioteek. Dit streef daarna om 'n volledige rekenaaralgebra-stelsel (CAS) te wees, terwyl die kode so basies moontlik gehou word om verstaanbaar en maklik uit te brei.
Dit is volledig in Python geskryf. Dit is maklik om te gebruik aangesien dit net staatmaak op mpmath, 'n suiwer Python-biblioteek vir arbitrêre drywende-punt-rekenkunde.
As 'n biblioteek is dit geskep met 'n beduidende klem op bruikbaarheid in gedagte. Uitbreidbaarheid is van kritieke belang in die ontwerp van sy toepassingsprogram-koppelvlak (API).
Gevolglik maak dit geen poging om die Python-taal te verbeter nie. Die doel is dat gebruikers dit saam met ander kan gebruik Python biblioteke in hul werkvloei, hetsy in 'n interaktiewe omgewing of as 'n geprogrammeerde komponent van 'n groter stelsel.
SymPy, as 'n biblioteek, het nie 'n ingeboude grafika nie gebruikerskoppelvlak (GUI). Die biblioteek is:
- Gratis, beide met betrekking tot spraak en bier, want dit is onder die BSD-lisensie gelisensieer.
- Python-gebaseer: Dit is heeltemal ontwikkel in Python en gebruik Python as sy taal.
- Liggewig omdat dit net staatmaak op mpmath, 'n suiwer Python-biblioteek vir arbitrêre drywende-punt-rekenkunde, wat dit maklik maak om te gebruik.
- Kan by ander programme geïnkorporeer word en met pasgemaakte funksies verander word, benewens om as 'n interaktiewe hulpmiddel gebruik te word.
Waarom SymPy gebruik?
Sage, 'n rekenaaralgebrastelsel, gebruik ook Python as sy programmeertaal. Sage, aan die ander kant, is enorm en vereis 'n aflaai van meer as 'n gigagreep. Dit het die voordeel dat dit liggewig is.
Behalwe dat dit kompak is, het dit geen ander afhanklikhede as Python nie, wat dit moontlik maak om feitlik oral gebruik te word.
Verder is die doelwitte van Sage en SymPy nie dieselfde nie. Sage streef daarna om 'n wiskundige stelsel met volledige kenmerke te wees, en dit doen dit deur al die hoof oopbron wiskundige stelsels in een te kombineer.
Wanneer jy 'n Sage-funksie gebruik, soos integreer, roep dit een van die oopbronpakkette wat dit bevat aan. In werklikheid is dit in Sage ingebou. SymPy, aan die ander kant, streef daarna om 'n selfstandige stelsel te wees, met alle funksionaliteit daarin geïmplementeer.
Die vermoë daarvan om as 'n biblioteek te funksioneer is 'n belangrike kenmerk. Baie rekenaaralgebrastelsels is bedoel om in interaktiewe omgewings gebruik te word, maar dit is moeilik om te outomatiseer of uit te brei.
Dit kan interaktief in Python gebruik word of in jou eie Python-program ingevoer word. Dit het ook API's om dit maklik uit te brei met jou eie roetines.
Installeer SymPy
Gebruik eenvoudig die opdrag hieronder om in jou omgewing te installeer.
SimPy Simbole
Kom ons begin nou daarmee! Die fundamentele voorwerp daarvan is 'n simbool. In SymPy kan jy 'n simbool x genereer deur te skryf:
Die kode hierbo genereer die simbool x. Simbole daarin is bedoel om wiskundige simbole na te boots wat onbekende waardes verteenwoordig.
As gevolg hiervan word die volgende berekening hieronder getoon:
Soos hierbo getoon, funksioneer die simbool x soortgelyk aan 'n onbekende hoeveelheid. As jy baie simbole wil maak, skryf dit soos volg:
Jy het twee simbole, y en z, op dieselfde oomblik in hierdie geval geskep. Hierdie simbole kan nou opgetel, afgetrek, vermenigvuldig en gedeel word soos jy wil:
SymPy-funksies
1. sympify() funksie
Die sympify() metode transformeer 'n arbitrêre uitdrukking in 'n SymPy uitdrukking. Dit skakel standaard Python-voorwerpe om, soos heelgetalle.
Strings word getransformeer na hul uitdrukkings sowel as heelgetalle, ens.
2. evalf() funksie
Hierdie funksie evalueer 'n gespesifiseerde numeriese uitdrukking met 'n drywende punt akkuraatheid van tot 100 syfers.
Die funksie aanvaar ook 'n woordeboekobjek met numeriese waardes vir simbole as 'n subargument. Oorweeg die volgende frase:
Swaaipunt-akkuraatheid is by verstek op 15 syfers gestel. Dit kan egter verander word na enige getal tussen 1 en 100.
Die volgende vergelyking word geëvalueer tot 'n akkuraatheid van 20 syfers.
3. Lambdify() funksie
Lambdify is 'n funksie wat sy uitdrukkings in Python-funksies omskakel. Die evalf() metode is ondoeltreffend wanneer 'n uitdrukking oor 'n wye reeks waardes geëvalueer word.
Lambdify werk soortgelyk aan 'n lambda-funksie, behalwe dat dit SymPy-name vertaal na die name van die verskafde numeriese biblioteek, wat gewoonlik NumPy is.
By verstek word Lambdify toegepas op wiskunde standaard biblioteek implementerings.
Kenmerke
'n Handvol van die biblioteek se belangrikste kenmerke word hier gelys; daar is baie meer wat nie ingesluit is nie, maar jy kan dit nagaan na hierdie skakel.
1. Kernvermoëns
- Fundamentele rekenkunde: +, -, *, /, en ** operateurs word ondersteun (krag)
- 'n Polinoomuitbreiding
- Heelgetalle, rasionale en swewe met arbitrêre akkuraatheid
- Trigonometriese, hiperboliese en eksponensiële funksies, wortels, logaritmes, absolute waarde, sferiese harmonieke, faktoriale en gamma-funksies, zeta-funksies, polinome en spesiale funksies
- Simbole wat nie-kommutatief is
- Pas patrone
2. Berekening
- Integrasie: Hierdie metode gebruik die uitgebreide Risch-Norman heuristiek
- Differensiasie.
- Beperk funksies
- Laurent Taylor se reeks
3. Polinome
- Gröbner-stigtings
- Ontbinding van gedeeltelike breuke
- Afdeling, gcd Resultante is voorbeelde van basiese rekenkunde.
4. Kombinatorika
- permutasies
- Grey en Prufer-kodes
- Kombinasies, partisies, subsets
- Veelvlakkige, Rubik-, Simmetriese en Ander Permutasiegroepe
5. Diskrete Wiskunde
- Opsommings
- Logiese uitdrukkings
- Binomiale koëffisiënte
- Getalteorie
aansoeke
1. Gebou Sakrekenaar
2. Rekenaar Algebra Stelsels
Anders as ander rekenaaralgebra-stelsels, moet u simboliese veranderlikes handmatig daarin verklaar deur die Symbol()-funksie te gebruik.
3. Berekening
Die vermoë van 'n simboliese berekeningstelsel om allerhande berekeninge simbolies te doen, is die belangrikste krag daarvan.
Dit kan stellings simbolies vereenvoudig, afgeleides, integrale en limiete bereken, vergelykings oplos, met matrikse interaksie hê en nog baie meer doen.
Om jou aptyt aan te wakker, hier is 'n voorsmakie van simboliese krag.
Wat kan jy anders doen met SymPy?
Eerder as om oor bykomende kwessies in-diepte te dreun, laat ek jou 'n lys van hulpbronne gee om jou te help om jou vaardighede te verbeter:
- Matrikse en lineêre algebra: Dit kan met matrikse werk en basiese lineêre algebra-bewerkings uitvoer. Die taal is soortgelyk aan NumPy se sintaksis. Daar is egter noemenswaardige verskille. Om te begin, ondersoek matrikse in die biblioteek.
- uitdrukking: Dit maak gebruik van 'n uitdrukkingsboom, wat 'n boomgebaseerde struktuur is, om tred te hou met uitdrukkings. Kyk na uitdrukking bome as jy meer wil leer oor hul innerlike werking.
- Afgeleides en integrale: Dit kan die meeste bereik wat jy in 'n inleidende calculus-klas sal leer (minus die denke). Jy kan begin deur na ons funksie te kyk differensiasie in SymPy.
- Verhouding met NumPy: NumPy en SymPy is albei wiskunde-verwante biblioteke. Hulle is nietemin wesenlik verskillend! NumPy werk met getalle, terwyl dit met simboliese uitdrukkings werk.
- Vereenvoudigings: Dit is intelligent genoeg om uitdrukkings outomaties te vereenvoudig. As jy egter meer fyn beheer hieroor wil hê, kyk daarna vereenvoudigings.
Gevolgtrekking
SymPy is 'n kragtige biblioteek vir simboliese wiskunde.
Jy kan dit gebruik om veranderlikes en funksies te skep, asook wiskundige stellings simbolies uit te brei en te vereenvoudig en vergelykings, ongelykhede en selfs stelsels van vergelykings/ongelykhede op te los.
Jy kan die funksies beide in die teks se teks en direk in die terminaal skryf (of Jupyter notaboeke) om 'n vinnige assessering en 'n beter grafiese uitbeelding te kry van die berekeninge wat gedoen is.
Is jy gereed om meer van SymPy te verken? Laat weet ons in die kommentaar.
Lewer Kommentaar