Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

كيف قمت ببناء محرك مشابه لمحرك Wolfram Mathematica باستخدام Python

هل تبحث عن إنشاء بيئة برمجية قادرة على معالجة المعادلات الرمزية، تحليل البيانات، وبناء الرسوم البيانية كما تفعل Wolfram Mathematica؟ باستخدام Python وعدد من المكتبات المفتوحة، يمكنك تطوير “محرك حسابي” يجمع بين مرونة الكود وقوة الحوسبة الرمزية. سنتدرّج خطوة بخطوة — بدءاً من اختيار البُنى المناسبة، مرّاً بتصميم واجهة التفاعل، وانتهاءً بتنفيذ الخوارزميات الرياضية والنماذج الرمزية — حتى تصل إلى إصدار أولي قابل للإطلاق. في هذا المقال ستتعرف على الأدوات الأساسية، التحديات التي قد تواجهها، وطرق التغلب عليها لضمان أنّ محركك ليس مجرد مشروع تجريبي، بل منصة حقيقية يمكن استخدامها وتوسيعها لاحقاً.

python-logo-charts بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

لطالما أحببتُ فكرة الرياضيات، لكن حلها يدويًا كان أمرًا مختلفًا. يبدو أن وحدة المعالجة المركزية العقلية لديّ تصل إلى 100% أثناء الحساب اليدوي. الآلات الحاسبة اليدوية جيدة، لكن مكتبات بايثون أفضل لاستكشافاتي الكمية.

بفضل بايثون، تمكنتُ من بناء حل محلي ذاتي الاستضافة، قادر على منافسة ولفرام ألفا أو غيره من الحزم الاحتكارية باهظة الثمن. لنبدأ بشرحه.

Table of Contents

SymPy: الرياضيات الرمزية

 

 

sympy-pascal-s-triangle بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

ما ميّز ولفرام ألفا عن الآلات الحاسبة التقليدية عند ظهوره هو إمكانية إجراء حسابات رمزية عليه، كما هو الحال في كتب الجبر أو التفاضل والتكامل، ثم يقوم ولفرام ألفا بحلها نيابةً عنك. بدا الأمر أشبه بالسحر. فكرتُ في امتلاك نسخة خاصة بي لتشغيلها على جهاز الكمبيوتر الخاص بي، لكن الحصول على نسخة من برنامج ماثيماتيكا من ولفرام كان باهظ الثمن، حتى مع النسخة الشخصية.

لهذا السبب لفت سيمبي انتباهي. فبينما قد تكلف برامج مثل ماثيماتيكا أو مابل مئات الدولارات، فإن سيمبي مجاني. كما أنه مبني على بايثون. ولأن لديّ خبرة سابقة في بايثون، استطعتُ تعلم سيمبي بسهولة.

يتألق سيمبي حقًا في الوضع التفاعلي، مثل آي بايثون أو جوبيتر. إن إمكانية تلقي ملاحظات فورية أمرٌ مثير.

حتى لو كنتَ تعمل بشكل أساسي مع البيانات مثلي، فستواجه صعوبةً إذا لم تكن تعرف حساب التفاضل والتكامل أو الجبر الخطي إذا كنتَ ترغب في قراءة نصوص أو مقالات علمية أكثر تقدمًا في الإحصاء. لقد ساعدني التعامل مع الرياضيات الرمزية بسهولة على فهمي. حتى لو كانت الغالبية العظمى من العمليات مخفية وراء برامج رقمية، فمن المفيد معرفة الأسس النظرية للإحصاء التي تستند إليها هذه الحسابات.

اقرأ أيضا:  كيفية الحصول على إشعارات عندما ينشر شخص ما على Facebook

NumPy، pandas، SciPy: إحصاءات

pandas-tips-head بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

إلى جانب الحسابات الجبرية، تُعدّ الغالبية العظمى من الحسابات الإحصائية رقمية. تستخدم هذه الحسابات عمليات الأعداد العشرية العائمة لتقريب القيم بدلاً من القيم الدقيقة، كما تفعل SymPy.

NumPy هي مكتبة للعمل مع المصفوفات الرقمية. وهي مفيدة لإنشاء مصفوفات متعددة الأبعاد. تُشكّل قائمة الأرقام البسيطة خطًا. أما المصفوفة ثنائية الأبعاد، فتُشبه جدولًا يحتوي على صفوف وأعمدة. في NumPy، تُعرف المصفوفات بالمحاور. وهذا يُعرّف المصفوفة. ونظرًا لاستخدام عمليات المصفوفات بكثرة في الجبر الخطي، واستخدامه على نطاق واسع في العلوم، بما في ذلك الإحصاء، فإن هذا يفتح المجال أمام NumPy لمجموعة واسعة من التطبيقات.

يتضمن NumPy بعض عمليات الإحصاء الوصفي الأساسية، بما في ذلك المتوسط ​​الحسابي والوسيط والانحراف المعياري. يمكنك إجراء حسابات باستخدام هذه المصفوفات، والتي عادةً ما تتطلب تكرارًا في برنامج بايثون قياسي. سيكون تنفيذ هذه العمليات مملًا ومكلفًا من حيث الأداء.

على الرغم من فائدة NumPy، كنتُ لا أزال بحاجة إلى مكتبات أخرى للعمل الإحصائي الفعال في بايثون. pandas هي مكتبة للعمل على البيانات الجدولية المُرتبة في “أطر بيانات”. تُشبه هذه الأطر طريقة ترتيب البيانات في جداول البيانات وقواعد البيانات العلائقية، ويمكن لـ Pandas استيراد هذه البيانات من برامج جداول البيانات الشائعة مثل Excel.

يمكنك عرض البيانات وتلخيصها من Pandas، وحتى إنشاء جداول متقاطعة أو جداول محورية للبيانات الفئوية. يُعد هذا مفيدًا لإجراء بعض الاختبارات الإحصائية مثل مربع كاي. من السهل إضافة الأعمدة وحذفها، بالإضافة إلى إعادة تشكيل الجداول عند الحاجة.

اقرأ أيضا:  Git Hooks بسيطة لإدارة مستودعك

SciPy هي مجموعة شاملة من العمليات المُصممة للحوسبة العلمية، ولكنها تتضمن بعض العمليات الإحصائية المفيدة. تحتوي على العديد من توزيعات الاحتمالات الشائعة، بما في ذلك التوزيع ثنائي الحد، والتوزيع الطبيعي، وتوزيع الطلاب الذي ستتعلمه في دروس الإحصاء التمهيدية.

نماذج الإحصاء وPingouin: الانحدار

statsmodels-tips-regression بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

خلال مختبر الفيزياء، كنا نجري تجربة. لا أتذكر ما فعلناه بالضبط. أعتقد أننا كنا نقيس الوقت الذي استغرقه جسم للسقوط من ارتفاع باستخدام ساعة توقيت. أتذكر أنه عُرض علينا بعد ذلك كيفية إدخال البيانات في جدول بيانات وإنشاء انحدار. أذهلني هذا. معادلة خطية مُولّدة من البيانات! كانت هذه مقدمتي إلى الانحدار الخطي.

هذه أداة أساسية لفهم العلاقات في بياناتك. من السهل أيضًا استخدامها باستخدام بايثون. لديك خيارات متعددة من المكتبات. statsmodels مُصمم للتحليل الإحصائي والاقتصاد القياسي. يتطلب تعلمه بعض الجهد، ولكنه سهل الاستخدام بمجرد إتقانه. يمكنك تحديد الانحدارات بناءً على صيغ R، وهي لغة برمجة شائعة في الإحصاء.

واجهة Pingouin أبسط بكثير، ولكنها ربما تكون أكثر محدودية. إنه رائع عند استكشاف البيانات دون الاهتمام بأمور مثل معاملات الارتباط أو صعوبة الحصول على النتائج التي تقدمها statsmodels. على الرغم من إمكانية الوصول إلى هذه المعلومات في pingouin، إلا أن عرضها أبسط بكثير من statsmodels. تُنظّم النتائج في إطار بيانات pandas يشبه الجداول التي تراها في العديد من مقالات مجلات العلوم الاجتماعية.

أحب pingouin لبساطته، لكن statsmodels تتميز أيضًا ببعض المزايا. فإلى جانب الانحدار الخطي، تحتوي أيضًا على نماذج أكثر تقدمًا مثل تحليل السلاسل الزمنية. كما تتم مقارنتها ببرامج إحصائية أخرى مثل R للتأكد من دقتها. لو اضطررتُ يومًا للتأكد من موثوقية النتائج تمامًا، لاخترتُ statsmodels، على الرغم من صعوبة استخدامها لهذا السبب.

Matplotlib وSeaborn: التصور

tips_vs_bill_regression بناء محرك حسابي بقدرات Wolfram Mathematica باستخدام Python

ميزة رئيسية أخرى أردتُ إعادة إنشائها من آلتي الحاسبة الرسومية القديمة، وهي التصورات القوية. لحسن الحظ، الشاشات الحديثة أكثر كفاءة من شاشات LCD القديمة في الآلات الحاسبة، وهو أمرٌ لاحظته xkcd أيضًا على الرغم من تكلفتها (ربما يعود الفضل في ذلك إلى TI والاختبارات المعيارية). لقد وجدتُ أن بايثون بديلٌ أكثر من كفؤ للآلة الحاسبة الرسومية.

اقرأ أيضا:  كيفية إيقاف الردود على قصص Instagram الخاصة بك

بالنسبة للتصورات الإحصائية في بايثون، يُعد Seaborn أفضل ما وجدتُه حتى الآن. المدرجات التكرارية، ومخططات التشتت، ومخططات الانحدار ممتعة للنظر.

باستخدام السمة الافتراضية، تُنافس رسومات Seaborn ggplot2، المشهور في “tidyverse” الخاص بمجتمع R، بقوة.

التصورات الإحصائية للكائنات ليست مجرد زينة، بل هي ضرورية لفهم البيانات. يُظهر لك المدرج التكراري كيفية توزيع البيانات. يمكنك تحديد ما إذا كان التوزيع منحرفًا بنظرة واحدة قبل إجراء أي اختبارات معيارية.

Matplotlib مكتبة أخرى شائعة للتصورات. Seaborn هي واجهة أمامية لـ Matplotlib. تغيير سمة Seaborn يُغير أيضًا عرض مخططات Matplotlib القياسية. يمكن استخدام Matplotlib للمخططات الخطية البسيطة والتصورات المعقدة.

يمكنك استخدام Matplotlib لتحرير مخططات Seaborn. قد ترغب في تغيير التسميات لإزالة الشرطة السفلية إذا كنت ترغب في إنشاء مخطط لعرضه على الآخرين. يمكنك القيام بذلك لعرض تقديمي أو مقال.

كما هو الحال مع نماذج الإحصائيات، يتطلب Matplotlib تعلمًا. هناك واجهتان رئيسيتان: طريقة “المحاور” منخفضة المستوى وواجهة كائنية التوجه عالية المستوى. تشبه الأخيرة كيفية استخدام الآلة الحاسبة الرسومية للمخططات السريعة. تشجع الوثائق الرسمية على استخدام طريقة المحاور.

يمكنني أيضًا استخدام SymPy كآلة حاسبة رسومية لرسم الدوال. يتميز هذا بميزة عدم الحاجة إلى إنشاء مصفوفات NumPy. أستطيع ببساطة كتابة معادلة بصيغة ص = م س + ب المألوفة، ثم توليد الرسم البياني. أستطيع ببساطة اعتبارها معادلة.

كان استخدام بايثون كآلة حاسبة فائقة فائدة كبيرة. فقد وفر لي الكثير من المهام، وساعدني على إدراك قوة استخدام بايثون ولغات البرمجة عمومًا كوسيلة لاستكشاف الرياضيات والإحصاء. لقد جعلها أسهل وأقل إرهاقًا.

باختصار، من خلال الجمع بين قوة Python ومكتبات الحوسبة الرمزية، يمكنك بناء محرك حسابي يعكس الكثير من قدرات Wolfram Mathematica — مع قابلية التخصيص والتحكّم الكامل. بالطبع، ستكون هناك تحدّيات مثل إدارة الأداء، تنظيم الذاكرة، وتأمين بيئة مستخدم مناسبة، لكن بدءك بخطوات مدروسة يجعل المشروع قابلاً للتوسّع. إذا انطلقت اليوم، فابدأ بوحدة بسيطة (مثل تحليل المعادلات أو تمثيل الرسوم البيانية)، ثم أضف المُكوّنات تدريجياً. وما زالت هناك فرص لتحسين الواجهة، دمج الذكاء الاصطناعي، أو نشر الخدمة على الويب — لذا يبقى الأمر قابلاً للتطوير والابتكار.

زر الذهاب إلى الأعلى