תוכן העניינים[להתחבא][הופעה]
אין לעקוף מתמטיקה, בין אם אתה סטודנט באוניברסיטה או עובד במדעי הנתונים.
אפשר אפילו לטעון שמדעי הנתונים הם סוג של מתמטיקה/סטטיסטיקה יישומית. NumPy, SciPy, סקיקיט-למד, ו TensorFlow הן רק כמה מספריות Python העוסקות במתמטיקה מבחינה כמותית.
עם זאת, יש רק מתחרה אחד להתמודדות מפורשת עם סמלים מתמטיים: SymPy.
בואו לגלות הכל על SymPy.
מה סימפי?
SymPy היא ספריית מתמטיקה סימבולית של Python. היא שואפת להיות מערכת אלגברה ממוחשבת מלאה (CAS) תוך שמירה על הקוד בסיסי ככל האפשר כדי להיות מובן וניתן להרחבה בקלות.
זה כתוב במלואו בפייתון. זה פשוט לשימוש מכיוון שהוא מסתמך רק על mpmath, ספריית Python טהורה עבור אריתמטיקה שרירותית של נקודה צפה.
כספרייה, היא נוצרה מתוך מחשבה על דגש משמעותי על שימושיות. הרחבה היא קריטית בעיצוב ממשק תוכניות היישום (API).
כתוצאה מכך, הוא לא עושה ניסיון לשפר את שפת Python. המטרה היא שמשתמשים יוכלו להשתמש בו לצד אחרים ספריות פייתון בזרימת העבודה שלהם, בין אם בסביבה אינטראקטיבית ובין אם כרכיב מתוכנת של מערכת גדולה יותר.
ל-SymPy, כספרייה, חסר גרפיקה מובנית ממשק משתמש (GUI). הספרייה היא:
- חינם, גם לגבי דיבור וגם לגבי בירה, מכיוון שהוא מורשה ברישיון BSD.
- מבוסס Python: הוא פותח לחלוטין ב-Python ומשתמש ב-Python כשפתו.
- קל משקל כי הוא מסתמך רק על mpmath, טהור ספריית פייתון עבור אריתמטיקה שרירותית של נקודה צפה, מה שהופך אותו לפשוט לשימוש.
- ניתן לשלב בתוכנות אחרות ולשנות עם פונקציות מותאמות אישית בנוסף לשימוש ככלי אינטראקטיבי.
למה להשתמש ב-SymPy?
Sage, מערכת אלגברה ממוחשבת, משתמשת גם ב-Python כשפת התכנות שלה. מרווה, לעומת זאת, היא עצומה, הדורשת הורדה של יותר מגיגה-בייט. יש לו יתרון של קל משקל.
בנוסף להיותו קומפקטי, אין לו תלות מלבד Python, מה שמאפשר להשתמש בו כמעט בכל מקום.
יתר על כן, המטרות של Sage ו-SymPy אינן זהות. סייג שואפת להיות מערכת מתמטית עם תכונות מלאות, והיא עושה זאת על ידי שילוב כל המערכות המתמטיות העיקריות בקוד פתוח לאחת.
כאשר אתה משתמש בפונקציית Sage, כגון integrate, היא מפעילה את אחת מחבילות הקוד הפתוח שהיא מכילה. במציאות, זה מובנה בסייג. SymPy, לעומת זאת, שואפת להיות מערכת עצמאית, כאשר כל הפונקציונליות מיושמת בה עצמה.
היכולת שלה לתפקד כספרייה היא תכונה חשובה. מערכות אלגברה ממוחשבות רבות נועדו לשמש בסביבות אינטראקטיביות, אך קשה לבצע אוטומציה או להרחיב אותן.
ניתן להשתמש בו באופן אינטראקטיבי בפייתון או לייבא אותו לתוכנית Python משלך. יש לו גם ממשקי API כדי להרחיב אותו בקלות עם השגרות שלך.
התקנת 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. חשבון
- אינטגרציה: שיטה זו משתמשת בהיוריסטיקה המורחבת של ריש-נורמן
- בידול.
- הגבלת פונקציות
- הסדרה של לורן טיילור
3. פולינומים
- קרנות גרובנר
- פירוק של שברים חלקיים
- Division, gcd Resultants הם דוגמאות לאריתמטיקה בסיסית.
4. קומבינטוריקה
- תמורות
- קודי אפור ופרופר
- שילובים, מחיצות, קבוצות משנה
- קבוצות תמורות פוליהדרליות, רוביקיות, סימטריות ואחרות
5. מתמטיקה בדידה
- סיכומים
- ביטויים לוגיים
- מקדמים בינומיים
- תורת המספרים
יישומים
1. מחשבון בניין
2. מערכות אלגברה ממוחשבת
שלא כמו מערכות אלגברה ממוחשבות אחרות, עליך להצהיר בה ידנית משתנים סמליים באמצעות הפונקציה Symbol() .
3. חשבון
היכולת של מערכת חישוב סמלית לבצע כל מיני חישובים באופן סימבולי היא הכוח העיקרי שלה.
זה יכול לפשט הצהרות, באופן סמלי, לחשב נגזרות, אינטגרלים ומגבלות, לפתור משוואות, לקיים אינטראקציה עם מטריצות ולעשות הרבה יותר.
כדי לעורר את התיאבון, הנה טעימה של כוח סמלי.
מה עוד אתה יכול לעשות עם SymPy?
במקום להסתכל על נושאים נוספים לעומק, הרשו לי לספק לכם רשימה של משאבים שיעזרו לכם לשפר את הכישורים שלכם:
- מטריצות ואלגברה לינארית: הוא יכול לעבוד עם מטריצות ולבצע פעולות אלגברה לינארית בסיסיות. השפה דומה לתחביר של NumPy. עם זאת, ישנם הבדלים בולטים. כדי להתחיל, תחקור מטריצות בספרייה.
- ביטוי: הוא ממנף עץ ביטוי, שהוא מבנה מבוסס עץ, כדי לעקוב אחר ביטויים. להסתכל על עצי הבעה אם אתה רוצה ללמוד יותר על פעולתם הפנימית.
- נגזרות ואינטגרלים: זה יכול להשיג את רוב מה שתלמד בשיעור חישוב מבוא (בניכוי החשיבה). אתה יכול להתחיל בהסתכלות על הפונקציה שלנו בידול ב-SymPy.
- מערכת יחסים עם NumPy: NumPy ו-SymPy הן ספריות הקשורות למתמטיקה. הם, בכל זאת, שונים במהותם! NumPy עובד עם מספרים, בעוד שהוא עובד עם ביטויים סמליים.
- הפשטות: זה מספיק אינטליגנטי כדי לפשט ביטויים אוטומטית. עם זאת, אם אתה רוצה שליטה עדינה יותר על זה, תסתכל על זה הפשטות.
סיכום
SymPy היא ספרייה רבת עוצמה למתמטיקה סמלית.
אתה יכול להשתמש בו כדי ליצור משתנים ופונקציות, כמו גם להרחיב ולפשט באופן סמלי הצהרות מתמטיות ולפתור משוואות, אי-שוויון ואפילו מערכות של משוואות/אי-שוויון.
אתה יכול לכתוב את הפונקציות הן בטקסט של הסקריפט והן ישירות בטרמינל (או מחברות יופיטר) כדי לקבל הערכה מהירה ותיאור גרפי טוב יותר של החישובים שנעשו.
האם אתה מוכן לחקור יותר מ-SymPy? ספר לנו בתגובות.
השאירו תגובה