Enhavtabelo[Kaŝi][Montri]
Ne eblas ĉirkaŭiri matematikon, ĉu vi estas universitata studento aŭ ĉu vi laboras en datuma scienco.
Oni eĉ povus argumenti, ke datuma scienco estas speco de aplikata matematiko/statistiko. NumPy, SciPy, Scikit-LernuKaj TensoroFluo estas nur kelkaj el la Python-bibliotekoj kiuj traktas matematikon kvante.
Tamen, ekzistas nur unu konkuranto por eksplicite trakti matematikajn simbolojn: SymPy.
Ni eksciu ĉion pri SymPy.
Kio estas SymPy?
SymPy estas Python simbola matematika biblioteko. Ĝi aspiras esti plenefika komputila algebra sistemo (CAS) konservante la kodon kiel eble plej bazan por esti komprenebla kaj facile ekspansiebla.
Ĝi estas plene skribita en Python. Ĝi estas simpla uzi ĉar ĝi nur dependas de mpmath, pura Python-biblioteko por arbitra glitkoma aritmetiko.
Kiel biblioteko, ĝi estis kreita kun signifa emfazo de uzebleco en menso. Etendeblo estas kritika en la dezajno de sia aplika programinterfaco (API).
Kiel rezulto, ĝi faras neniun provon plibonigi la Python-lingvon. La celo estas, ke uzantoj povu uzi ĝin kune kun aliaj Python-bibliotekoj en ilia laborfluo, ĉu en interaga medio aŭ kiel programita komponento de pli granda sistemo.
SymPy, kiel biblioteko, mankas enkonstruita grafikaĵo interfaco de uzanto (GUI). La biblioteko estas:
- Senpaga, kaj pri parolado kaj biero, ĉar ĝi estas licencita laŭ la permesilo BSD.
- Python-bazita: Ĝi estas plene evoluigita en Python kaj utiligas Python kiel sian lingvon.
- Malpeza ĉar ĝi nur dependas de mpmath, pura Biblioteko Python por arbitra glitkoma aritmetiko, igante ĝin simpla uzi.
- Povas esti korpigita en aliajn programojn kaj modifita kun kutimaj funkcioj krom esti uzata kiel interaga ilo.
Kial uzi SymPy?
Sage, komputila algebra sistemo, ankaŭ utiligas Python kiel sian programlingvon. Sage, aliflanke, estas enorma, postulante elŝuton de pli ol gigabajto. Ĝi havas la avantaĝon esti malpeza.
Krom esti kompakta, ĝi havas neniujn dependecojn krom Python, permesante ĝin esti uzata preskaŭ ĉie.
Krome, la celoj de Sage kaj SymPy ne estas la samaj. Sage aspiras esti plenefika matematika sistemo, kaj ĝi faras tion kombinante ĉiujn ĉefajn malfermfontajn matematikajn sistemojn en unu.
Kiam vi uzas Sage-funkcion, kiel integri, ĝi alvokas unu el la malfermfontaj pakoj kiujn ĝi enhavas. En realeco, ĝi estas konstruita en Sage. SymPy, aliflanke, aspiras esti memstara sistemo, kun ĉiu funkcieco efektivigita en ĝi mem.
Ĝia kapablo funkcii kiel biblioteko estas grava trajto. Multaj komputilaj algebrosistemoj estas intencitaj por esti uzitaj en interagaj medioj, sed ili malfacilas aŭtomatigi aŭ vastigi.
Ĝi povas esti uzata interage en Python aŭ importita en vian propran Python-programon. Ĝi ankaŭ havas APIojn por facile etendi ĝin per viaj propraj rutinoj.
Instalante SymPy
Simple uzu la suban komandon por instali en via medio.
SimPy-Simboloj
Ni komencu kun ĝi nun! Ĝia fundamenta objekto estas simbolo. En SymPy, vi povas generi simbolon x skribante:
La supra kodo generas la simbolon x. Simboloj en ĝi estas celitaj kopii matematikajn simbolojn kiuj reprezentas nekonatajn valorojn.
Kiel rezulto, la sekva komputado estas montrita malsupre:
Kiel montrite supre, la simbolo x funkcias simile al nekonata kvanto. Se vi volas fari multajn simbolojn, skribu ilin jene:
Vi kreis du simbolojn, y, kaj z, en la sama momento en ĉi tiu kazo. Ĉi tiuj simboloj nun povas esti aldonitaj, subtrahataj, multoblaj kaj dividitaj laŭvole:
SymPy-Funkcioj
1. simpify() funkcio
La sympify() metodo transformas arbitran esprimon en SymPy-esprimon. Ĝi konvertas normajn Python-objektojn, kiel entjeroj.
Ŝnuroj estas transformitaj al siaj esprimoj same kiel entjeroj, ktp.
2. evalf() funkcio
Ĉi tiu funkcio taksas specifitan nombran esprimon kun glitkoma precizeco de ĝis 100 ciferoj.
La funkcio aldone akceptas vortaran objekton kun nombraj valoroj por simboloj kiel subargumenton. Konsideru la sekvan frazon:
Floskoma precizeco estas agordita al 15 ciferoj defaŭlte. Tamen, ĉi tio povas esti ŝanĝita al iu ajn nombro inter 1 kaj 100.
La sekva ekvacio estas taksita al precizeco de 20 ciferoj.
3. Lambdify() funkcio
Lambdify estas funkcio kiu konvertas ĝiajn esprimojn en Python-funkciojn. La evalf() metodo estas malefika dum taksado de esprimo tra larĝa gamo de valoroj.
Lambdify funkcias simile al lambda funkcio, krom ke ĝi tradukas SymPy-nomojn al la nomoj de la provizita nombra biblioteko, kiu estas ĝenerale NumPy.
Defaŭlte, Lambdify estas aplikata al matematikaj normaj bibliotekaj efektivigoj.
Trajtoj
Manpleno da la plej signifaj trajtoj de la biblioteko estas listigitaj ĉi tie; estas multaj pli ne inkluzivitaj, sed vi povas kontroli ilin tie.
1. Kernaj Kapabloj
- Fundamenta aritmetiko: +, -, *, /, kaj ** operatoroj estas subtenataj (potenco)
- Polinoma ekspansio
- Entjeroj, raciaj, kaj flosiloj kun arbitra precizeco
- Trigonometriaj, hiperbolaj kaj eksponentaj funkcioj, radikoj, logaritmoj, absoluta valoro, sferaj harmonoj, faktorialoj kaj gama-funkcioj, zeta-funkcioj, polinomoj kaj specialaj funkcioj
- Simboloj kiuj estas ne-komutaj
- Kongruaj ŝablonoj
2. Kalkulo
- Integriĝo: Tiu metodo utiligas la vastigitan Risch-Norman heŭristiko
- Diferencigo.
- Limigaj funkcioj
- La serio de Laurent Taylor
3. Polinomoj
- Gröbner-fondaĵoj
- Malkomponaĵo de partaj frakcioj
- Divido, gcd Rezultoj estas ekzemploj de baza aritmetiko.
4. Kombinatoriko
- Permutoj
- Gray kaj Prufer Kodoj
- Kombinoj, Dispartigoj, Subaroj
- Pluredra, Rubik, Simetria, kaj Aliaj Permutaj Grupoj
5. Diskreta Matematiko
- Sumoj
- Logikaj esprimoj
- Binomaj koeficientoj
- Nombroteorio
aplikaĵoj
1. Konstrua Kalkulilo
2. Komputilaj Algebraj Sistemoj
Male al aliaj Komputilaj Algebraj Sistemoj, vi devas permane deklari simbolajn variablojn en ĝi uzante la funkcion Symbol().
3. Kalkulo
La kapablo de simbola komputadsistemo fari ĉiajn komputojn simbole estas ĝia plej grava forto.
Ĝi povas simpligi deklarojn, simbole, komputi derivaĵojn, integralojn kaj limojn, solvi ekvaciojn, interagi kun matricoj kaj fari multe pli.
Por veki vian apetiton, jen gusto de simbola potenco.
Kion Alian Vi Povas Fari Kun SymPy?
Prefere ol profundiĝi pri pliaj aferoj, lasu min provizi al vi liston de rimedoj por helpi vin plibonigi viajn kapablojn:
- Matricoj kaj Lineara Algebro: Ĝi povas labori kun matricoj kaj plenumi bazajn linearajn algebrajn operaciojn. La lingvo estas simila al la sintakso de NumPy. Tamen, estas rimarkindaj diferencoj. Por komenci, esploru matricoj en biblioteko.
- Esprimo: Ĝi utiligas esprim-arbon, kiu estas arb-bazita strukturo, por konservi trakon de esprimoj. Rigardi esprimo arboj se vi volas lerni pli pri ilia interna funkciado.
- Derivaĵoj kaj integraloj: Ĝi povas plenumi plejparton de tio, kion vi lernus en enkonduka kalkula klaso (minus la pensado). Vi povas komenci rigardante nian funkcion diferencigo en SymPy.
- Rilato kun NumPy: NumPy kaj SymPy estas ambaŭ matematik-rilataj bibliotekoj. Ili estas, tamen, esence malsamaj! NumPy funkcias kun nombroj, dum ĝi funkcias kun simbolaj esprimoj.
- Simpligoj: Ĝi estas sufiĉe inteligenta por aŭtomate simpligi esprimojn. Tamen, se vi volas pli bonan kontrolon pri ĉi tio, rigardu ĝin simpligoj.
konkludo
SymPy estas potenca biblioteko por simbola matematiko.
Vi povas uzi ĝin por krei variablojn kaj funkciojn, same kiel simbole etendi kaj simpligi matematikajn deklarojn kaj solvi ekvaciojn, neegalaĵojn kaj eĉ sistemojn de ekvacioj/neegalaĵoj.
Vi povas skribi la funkciojn kaj en la teksto de la skripto kaj rekte en la terminalo (aŭ Jupyter kajeroj) por ricevi rapidan takson kaj pli bonan grafikan bildigon de la komputadoj faritaj.
Ĉu vi pretas esplori pli da SymPy? Informu nin en la komentoj.
Lasi Respondon