មាតិកា[លាក់][បង្ហាញ]
មិនមានការស្វែងយល់អំពីគណិតវិទ្យាទេ មិនថាអ្នកជានិស្សិតសាកលវិទ្យាល័យ ឬធ្វើការផ្នែកវិទ្យាសាស្ត្រទិន្នន័យនោះទេ។
មនុស្សម្នាក់អាចប្រកែកបានថា វិទ្យាសាស្ត្រទិន្នន័យគឺជាប្រភេទនៃគណិតវិទ្យា/ស្ថិតិអនុវត្ត។ NumPy, SciPy, Scikit- រៀននិង TensorFlow គ្រាន់តែជាបណ្ណាល័យ Python មួយចំនួនប៉ុណ្ណោះដែលដោះស្រាយគណិតវិទ្យាតាមបរិមាណ។
ទោះយ៉ាងណាក៏ដោយ មានដៃគូប្រកួតប្រជែងតែមួយគត់សម្រាប់ការដោះស្រាយយ៉ាងច្បាស់ជាមួយនឹងនិមិត្តសញ្ញាគណិតវិទ្យាគឺ SymPy ។
តោះស្វែងយល់ទាំងអស់គ្នាអំពី SymPy ។
តើអ្វីជា ស៊ីមភី?
SymPy គឺជាបណ្ណាល័យគណិតវិទ្យានិមិត្តសញ្ញា Python ។ វាប្រាថ្នាចង់ក្លាយជាប្រព័ន្ធពិជគណិតកុំព្យូទ័រដែលមានលក្ខណៈពេញលេញ (CAS) ខណៈពេលដែលរក្សាកូដជាមូលដ្ឋានតាមដែលអាចធ្វើទៅបាន ដើម្បីអាចយល់បាន និងអាចពង្រីកបានយ៉ាងងាយស្រួល។
វាត្រូវបានសរសេរយ៉ាងពេញលេញនៅក្នុង Python ។ វាសាមញ្ញក្នុងការប្រើព្រោះវាពឹងផ្អែកតែលើ mpmath ដែលជាបណ្ណាល័យ Python សុទ្ធសម្រាប់នព្វន្ធចំណុចអណ្តែតតាមអំពើចិត្ត។
ក្នុងនាមជាបណ្ណាល័យ វាត្រូវបានបង្កើតឡើងដោយការសង្កត់ធ្ងន់យ៉ាងសំខាន់លើការប្រើប្រាស់ក្នុងចិត្ត។ ការពង្រីកគឺមានសារៈសំខាន់ក្នុងការរចនាចំណុចប្រទាក់កម្មវិធីកម្មវិធីរបស់វា (API)។
ជាលទ្ធផល វាគ្មានការព្យាយាមដើម្បីបង្កើនភាសា Python ទេ។ គោលបំណងគឺដើម្បីឱ្យអ្នកប្រើប្រាស់អាចប្រើប្រាស់វាជាមួយអ្នកដទៃ បណ្ណាល័យ Python នៅក្នុងដំណើរការការងាររបស់ពួកគេ មិនថានៅក្នុងបរិយាកាសអន្តរកម្ម ឬជាធាតុផ្សំនៃកម្មវិធីនៃប្រព័ន្ធធំនោះទេ។
SymPy ជាបណ្ណាល័យមួយ ខ្វះក្រាហ្វិកដែលភ្ជាប់មកជាមួយ ចំណុចប្រទាក់អ្នកប្រើ (GUI) ។ បណ្ណាល័យគឺ៖
- ឥតគិតថ្លៃ ទាំងការនិយាយ និងស្រាបៀរ ព្រោះវាទទួលបានអាជ្ញាប័ណ្ណក្រោមអាជ្ញាប័ណ្ណ BSD ។
- Python-based៖ វាត្រូវបានបង្កើតឡើងទាំងស្រុងនៅក្នុង Python ហើយប្រើប្រាស់ Python ជាភាសារបស់វា។
- ស្រាលព្រោះវាពឹងផ្អែកតែលើ mpmath ដែលជាសុទ្ធ បណ្ណាល័យ Python សម្រាប់នព្វន្ធចំណុចអណ្តែតតាមអំពើចិត្ត ដែលធ្វើឱ្យវាសាមញ្ញក្នុងការប្រើប្រាស់។
- អាចត្រូវបានដាក់បញ្ចូលទៅក្នុងកម្មវិធីផ្សេងទៀត និងបានកែប្រែជាមួយនឹងមុខងារផ្ទាល់ខ្លួន បន្ថែមពីលើការប្រើប្រាស់ជាឧបករណ៍អន្តរកម្ម។
ហេតុអ្វីត្រូវប្រើ SymPy?
Sage ដែលជាប្រព័ន្ធពិជគណិតកុំព្យូទ័រក៏ប្រើ Python ជាភាសាសរសេរកម្មវិធីរបស់វាផងដែរ។ ម៉្យាងវិញទៀត Sage គឺធំសម្បើមដែលទាមទារការទាញយកច្រើនជាងមួយជីហ្គាបៃ។ វាមានអត្ថប្រយោជន៍ដូចជាស្រាល។
បន្ថែមពីលើការបង្រួម វាគ្មានភាពអាស្រ័យអ្វីក្រៅពី Python ដែលអនុញ្ញាតឱ្យវាប្រើប្រាស់បានគ្រប់ទីកន្លែង។
លើសពីនេះ គោលបំណងរបស់ Sage និង SymPy មិនដូចគ្នាទេ។ Sage ប្រាថ្នាចង់ក្លាយជាប្រព័ន្ធគណិតវិទ្យាដែលមានលក្ខណៈពេញលេញ ហើយវាធ្វើដូច្នេះបានដោយការរួមបញ្ចូលប្រព័ន្ធគណិតវិទ្យាប្រភពបើកចំហសំខាន់ៗទាំងអស់ទៅជាមួយ។
នៅពេលអ្នកប្រើមុខងារ Sage ដូចជាការរួមបញ្ចូល វាហៅកញ្ចប់ប្រភពបើកចំហមួយដែលវាមាន។ តាមពិតវាត្រូវបានបង្កើតឡើងនៅក្នុង Sage ។ ម្យ៉ាងវិញទៀត SymPy ប្រាថ្នាចង់ក្លាយជាប្រព័ន្ធដែលមានដោយខ្លួនឯង ជាមួយនឹងមុខងារទាំងអស់ត្រូវបានអនុវត្តនៅក្នុងខ្លួនវាផ្ទាល់។
សមត្ថភាពរបស់វាក្នុងការដំណើរការជាបណ្ណាល័យគឺជាមុខងារសំខាន់មួយ។ ប្រព័ន្ធពិជគណិតកុំព្យូទ័រជាច្រើនត្រូវបានប្រើប្រាស់ក្នុងបរិយាកាសអន្តរកម្ម ប៉ុន្តែពួកគេពិបាកធ្វើស្វ័យប្រវត្តិកម្ម ឬពង្រីក។
វាអាចត្រូវបានប្រើអន្តរកម្មនៅក្នុង Python ឬនាំចូលទៅក្នុងកម្មវិធី Python ផ្ទាល់ខ្លួនរបស់អ្នក។ វាក៏មាន APIs សម្រាប់ងាយស្រួលក្នុងការពង្រីកវាជាមួយនឹងទម្លាប់ផ្ទាល់ខ្លួនរបស់អ្នក។
ការដំឡើង SymPy
គ្រាន់តែប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីដំឡើងនៅក្នុងបរិស្ថានរបស់អ្នក។
និមិត្តសញ្ញា SymPy
តោះចាប់ផ្តើមជាមួយវាឥឡូវនេះ! វត្ថុសំខាន់របស់វាគឺនិមិត្តសញ្ញា។ នៅក្នុង SymPy អ្នកអាចបង្កើតនិមិត្តសញ្ញា x ដោយសរសេរ៖
កូដខាងលើបង្កើតនិមិត្តសញ្ញា x ។ និមិត្តសញ្ញានៅក្នុងវាមានបំណងធ្វើត្រាប់តាមនិមិត្តសញ្ញាគណិតវិទ្យាដែលតំណាងឱ្យតម្លៃដែលមិនស្គាល់។
ជាលទ្ធផល ការគណនាខាងក្រោមត្រូវបានបង្ហាញ៖
ដូចដែលបានបង្ហាញខាងលើ និមិត្តសញ្ញា x មានមុខងារស្រដៀងគ្នាទៅនឹងចំនួនដែលមិនស្គាល់។ ប្រសិនបើអ្នកចង់បង្កើតនិមិត្តសញ្ញាច្រើន សូមសរសេរវាដូចខាងក្រោម៖
អ្នកបានបង្កើតនិមិត្តសញ្ញាពីរគឺ y និង z ក្នុងពេលតែមួយក្នុងករណីនេះ។ ឥឡូវនេះ និមិត្តសញ្ញាទាំងនេះអាចត្រូវបានបន្ថែម ដក គុណ និងបែងចែកតាមការចង់បាន៖
មុខងារ SymPy
1. អនុគមន៍ sympify()
វិធីសាស្ត្រ sympify() បំប្លែងកន្សោមបំពានទៅជាកន្សោម SymPy ។ វាបំប្លែងវត្ថុ Python ស្តង់ដារ ដូចជាចំនួនគត់។
ខ្សែអក្សរត្រូវបានបំលែងទៅជាកន្សោមរបស់ពួកគេ ក៏ដូចជាចំនួនគត់។ល។
2. មុខងារ evalf()
មុខងារនេះវាយតម្លៃកន្សោមលេខដែលបានបញ្ជាក់ជាមួយនឹងភាពជាក់លាក់នៃចំណុចអណ្តែតទឹករហូតដល់ 100 ខ្ទង់។
មុខងារនេះក៏ទទួលយកវត្ថុវចនានុក្រមដែលមានតម្លៃជាលេខសម្រាប់និមិត្តសញ្ញាជាអាគុយម៉ង់រង។ ពិចារណាឃ្លាខាងក្រោម៖
ភាពត្រឹមត្រូវនៃចំណុចអណ្តែតត្រូវបានកំណត់ទៅ 15 ខ្ទង់តាមលំនាំដើម។ ទោះយ៉ាងណាក៏ដោយ នេះអាចប្តូរទៅជាលេខណាមួយចន្លោះពី 1 ដល់ 100។
សមីការខាងក្រោមត្រូវបានវាយតម្លៃទៅភាពជាក់លាក់នៃ 20 ខ្ទង់។
3. មុខងារ Lambdify()
Lambdify គឺជាមុខងារដែលបំប្លែងកន្សោមរបស់វាទៅជាមុខងារ Python ។ វិធីសាស្ត្រ evalf() មិនមានប្រសិទ្ធភាពទេនៅពេលវាយតម្លៃកន្សោមនៅទូទាំងជួរដ៏ធំទូលាយនៃតម្លៃ។
Lambdify ដំណើរការស្រដៀងគ្នាទៅនឹងមុខងារ lambda លើកលែងតែវាបកប្រែឈ្មោះ SymPy ទៅជាឈ្មោះបណ្ណាល័យលេខដែលបានផ្តល់ ដែលជាទូទៅគឺ NumPy ។
តាមលំនាំដើម Lambdify ត្រូវបានអនុវត្តចំពោះការអនុវត្តបណ្ណាល័យស្តង់ដារគណិតវិទ្យា។
លក្ខណៈពិសេស
មុខងារសំខាន់ៗមួយចំនួនរបស់បណ្ណាល័យត្រូវបានរាយនៅទីនេះ។ មានច្រើនទៀតដែលមិនបានរួមបញ្ចូល ប៉ុន្តែអ្នកអាចពិនិត្យមើលវាចេញ នៅទីនេះ.
1. សមត្ថភាពស្នូល
- លេខនព្វន្ធមូលដ្ឋាន៖ +, -, *, /, និង ** ប្រតិបត្តិករត្រូវបានគាំទ្រ (ថាមពល)
- ការពង្រីកពហុនាម
- ចំនួនគត់ សនិទានភាព និងអណ្តែតដោយភាពជាក់លាក់តាមអំពើចិត្ត
- អនុគមន៍ត្រីកោណមាត្រ អ៊ីពែបូលិក និងអិចស្ប៉ូណង់ស្យែល ឫស លោការីត តម្លៃដាច់ខាត អាម៉ូនិកស្វ៊ែរ អនុគមន៍ហ្វាក់តូរីស និងហ្គាម៉ា អនុគមន៍ហ្សេតា ពហុនាម និងអនុគមន៍ពិសេស
- និមិត្តសញ្ញាដែលមិនផ្លាស់ប្តូរ
- លំនាំដែលត្រូវគ្នា។
2. ការគណនា
- សមាហរណកម្ម៖ វិធីសាស្រ្តនេះប្រើប្រាស់នូវ Risch-Norman heuristic ដែលបានពង្រីក
- ភាពខុសគ្នា។
- កំណត់មុខងារ
- ស៊េរីរបស់ Laurent Taylor
3. ពហុធា
- មូលដ្ឋានគ្រឹះ Gröbner
- ការរលួយនៃប្រភាគ
- ការបែងចែក, gcd លទ្ធផលគឺជាឧទាហរណ៍នៃនព្វន្ធមូលដ្ឋាន។
4. Combinatorics
- ការអនុញ្ញាត
- លេខកូដប្រផេះ និង Prufer
- បន្សំ, ភាគថាស, សំណុំរង
- Polyhedral, Rubik, ស៊ីមេទ្រី និងក្រុម Permutation ផ្សេងទៀត។
5. គណិតវិទ្យាដាច់
- សេចក្តីសង្ខេប
- កន្សោមឡូជីខល
- មេគុណគោលពីរ
- ទ្រឹស្តីលេខ
ការកម្មវិធី
1. ការគណនាអាគារ
2. ប្រព័ន្ធពិជគណិតកុំព្យូទ័រ
មិនដូចប្រព័ន្ធពិជគណិតកុំព្យូទ័រផ្សេងទៀតទេ អ្នកត្រូវតែប្រកាសអថេរនិមិត្តសញ្ញានៅក្នុងវាដោយដៃ ដោយប្រើមុខងារ Symbol()។
3. ការគណនា
សមត្ថភាពនៃប្រព័ន្ធគណនាជានិមិត្ដរូបក្នុងការធ្វើការគណនាគ្រប់ប្រភេទជានិមិត្តរូប គឺជាកម្លាំងដ៏សំខាន់របស់វា។
វាអាចសម្រួលសេចក្តីថ្លែងការណ៍ ជានិមិត្តសញ្ញា គណនានិស្សន្ទវត្ថុ អាំងតេក្រាល និងដែនកំណត់ ដោះស្រាយសមីការ អន្តរកម្មជាមួយម៉ាទ្រីស និងធ្វើអ្វីៗជាច្រើនទៀត។
ដើម្បីធ្វើអោយចំណង់អាហាររបស់អ្នកកាន់តែស្រទន់ ខាងក្រោមនេះជារសជាតិនៃថាមពលនិមិត្តសញ្ញា។
តើអ្នកអាចធ្វើអ្វីទៀតជាមួយ SymPy?
ជាជាងនិយាយអំពីបញ្ហាស៊ីជម្រៅបន្ថែមទៀត ខ្ញុំសូមផ្តល់ឱ្យអ្នកនូវបញ្ជីធនធានដើម្បីជួយអ្នកបង្កើនជំនាញរបស់អ្នក៖
- Matrices និង Linear Algebra៖ វាអាចធ្វើការជាមួយម៉ាទ្រីស និងអនុវត្តប្រតិបត្តិការពិជគណិតលីនេអ៊ែរជាមូលដ្ឋាន។ ភាសាគឺស្រដៀងនឹងវាក្យសម្ព័ន្ធរបស់ NumPy ។ ទោះយ៉ាងណាក៏ដោយមានភាពខុសគ្នាគួរឱ្យកត់សម្គាល់។ ដើម្បីចាប់ផ្តើម សូមធ្វើការស៊ើបអង្កេត matrices នៅក្នុងបណ្ណាល័យ។
- កន្សោម៖ វាប្រើមែកធាងកន្សោម ដែលជារចនាសម្ព័ន្ធផ្អែកលើដើមឈើ ដើម្បីតាមដានកន្សោម។ មើល ដើមឈើបញ្ចេញមតិ ប្រសិនបើអ្នកចង់ស្វែងយល់បន្ថែមអំពីការងារខាងក្នុងរបស់ពួកគេ។
- និស្សន្ទវត្ថុ និងអាំងតេក្រាល៖ វាអាចសម្រេចបាននូវអ្វីដែលអ្នកចង់រៀនភាគច្រើននៅក្នុងថ្នាក់គណនាដំបូង (ដកការគិត)។ អ្នកអាចចាប់ផ្តើមដោយមើលមុខងាររបស់យើង។ ភាពខុសគ្នា នៅក្នុង SymPy ។
- ទំនាក់ទំនងជាមួយ NumPy៖ NumPy និង SymPy គឺជាបណ្ណាល័យដែលទាក់ទងនឹងគណិតវិទ្យា។ យ៉ាងណាមិញ ពួកគេគឺខុសគ្នាយ៉ាងសំខាន់! NumPy ធ្វើការជាមួយលេខ ខណៈពេលដែលវាដំណើរការជាមួយកន្សោមនិមិត្តសញ្ញា។
- ភាពសាមញ្ញ៖ វាឆ្លាតវៃគ្រប់គ្រាន់ក្នុងការសម្រួលការបញ្ចេញមតិដោយស្វ័យប្រវត្តិ។ ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើអ្នកចង់ឱ្យការគ្រប់គ្រងល្អជាងនេះ សូមមើលវា ភាពសាមញ្ញ.
សន្និដ្ឋាន
SymPy គឺជាបណ្ណាល័យដ៏មានឥទ្ធិពលសម្រាប់គណិតវិទ្យានិមិត្តសញ្ញា។
អ្នកអាចប្រើវាដើម្បីបង្កើតអថេរ និងមុខងារ ព្រមទាំងពង្រីកជានិមិត្តសញ្ញា និងសម្រួលសេចក្តីថ្លែងការណ៍គណិតវិទ្យា និងដោះស្រាយសមីការ វិសមភាព និងប្រព័ន្ធសមីការ/វិសមភាព។
អ្នកអាចសរសេរមុខងារទាំងនៅក្នុងអត្ថបទរបស់ស្គ្រីប និងដោយផ្ទាល់នៅក្នុងស្ថានីយ (ឬ សៀវភៅកត់ត្រាជឺភីត) ដើម្បីទទួលបានការវាយតម្លៃរហ័សនិងការបង្ហាញក្រាហ្វិកល្អប្រសើរជាងមុននៃការគណនាដែលបានធ្វើរួច។
តើអ្នកត្រៀមខ្លួនដើម្បីស្វែងរក SymPy បន្ថែមទៀតហើយឬនៅ? អនុញ្ញាតឱ្យយើងដឹងនៅក្នុងមតិយោបល់។
សូមផ្ដល់យោបល់