سؤال

أنا مهتم للغاية بالرياضيات والبرمجة وأخطط للبدء الرياضيات الرمزية مشروع من الصفر.

  1. هل هذه فكرة مشروع جيدة؟

  2. من أين أبدا؟

  3. كيف ينبغي أن يتعامل مع هذا المشروع؟

  4. أي موارد جيدة؟

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

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

  2. من أين أبدا: قم بإلقاء نظرة على الحلول الموجودة بالفعل وفكر في ما تريد القيام به بشكل مختلف.كيف سيختلف مشروعك عن الآخرين؟

  3. الموارد: SymPy هي مكتبة بايثون للرياضيات الرمزية

نصائح أخرى

1. هل هذه فكرة مشروع جيدة؟

نعم؛أتوقع أن يوفر مصدرًا لا نهاية له من العمل المثير للاهتمام والذي سيختبر ويوسع قدراتك البرمجية بسرعة كبيرة.

2. من أين تبدأ؟

أؤيد الاقتراحات الأخرى التي يجب عليك النظر فيها إلى العمل الحالي.إن SAGE مثير للإعجاب للغاية، وإذا كنت قد طلبت نصيحتي، فسأقترح عليك أولاً أن تكتب نظامًا أساسيًا لإجراء العمليات الحسابية باستخدام الأرقام والرموز؛ثم قم بإلقاء نظرة على SAGE واكتب وحدة لتوسيع النظام، وبعبارة أخرى، كن مساهمًا في شيء أكبر بدلاً من محاولة القيام بكل ذلك بنفسك.انظر أيضًا إلى Mathematica وMaple وMacsyma وAxiom.الأخيران مجانيان (على ما أعتقد) لكنهما جميعًا موثقان جيدًا عبر الإنترنت ويعدان مصدرًا رائعًا للأفكار والتحديات.

3. كيف ينبغي التعامل مع هذا المشروع؟

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

4. هل هناك أي موارد جيدة؟

الكثير والكثير.جوجل لـ "جبر الكمبيوتر"، "إعادة كتابة المصطلح".ألق نظرة على ما هو متاح على أمازون.وإذا كان لديك إمكانية الوصول، فاطلع على مكتبة ACM الرقمية

حظ سعيد.

الرياضيات الرمزية هي مشروع ممتع.يبدو أن ما إذا كان أي شخص يستخدمها أم لا لا يهم في سؤالك، لذا تعمق في الأمر.

لقد كتبت اثنين من هؤلاء على مر السنين.كان أروعها هو ما يتعلق بـ SQL حيث الجمل - فقد قامت ببعض التلاعبات الرمزية التافهة على SQL لإضافتها في بعض شروط AND الإضافية.ليس "حلاً" أو "مُحسِّنًا" كاملاً أو أي شيء آخر، فقط عدد قليل من المعالجات الرمزية لأي SQL حيثما يكون ذلك ممكنًا.الأقل روعة كان بالنسبة لمصحح الأخطاء؛لقد قامت بإجراء عمليات حسابية معقدة لحساب إزاحات المكدس (رمزيًا) للمتغيرات.

عليك أن تبدأ بتحديد فئات لعناصر التعبير الرياضي - المعاملات، والعوامل، والوظائف، وما إلى ذلك.

عليك أن تقرر ما هي عمليات التلاعب التي يجب أن تشارك فيها هذه الكائنات.إن الحصول على قيمة محددة للتعبير هو أمر سهل وواضح.ابدأ بالحالة التي يكون فيها كافة المتغيرات مرتبطة.

ثم تعامل مع الحالة التي تظل فيها بعض المتغيرات غير مرتبطة، ويمكنك فقط تقييم أجزاء من التعبير.

ثم تعامل مع إعادة ترتيب التعبير إلى شكل أساسي.أي أنك قمت بإجراء تقييم جزئي وقمت بذلك Add( Variable(x), Add( Variable(x), Lit(3) ) ).تحتاج إلى كتابة قواعد لتحويل هذا إلى Add( Multiply( Lit(2), Variable(x) ), Lit(3) ).

أحد التمارين الرائعة جدًا هو تحسين الأقواس بحيث تحتوي المخرجات المطبوعة على أقل عدد من الأقواس اللازمة لالتقاط المعنى.

هناك العديد والعديد من قواعد "تحويل التعبير" الأخرى التي نتعلمها جميعًا في المدرسة للقيام بالتلاعبات الجبرية.الكثير منهم.

على وجه الخصوص، إعادة ترتيب المعادلة لعزل متغير يمكن أن يكون صعبًا للغاية في بعض الحالات.

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

الأساسيات ممتعة.اعتمادًا على المدى الذي تريد الوصول إليه، يصبح الأمر أكثر صعوبة تدريجيًا.

@موارد:هل يمكن أن نلقي نظرة على بيثونيكا - كانت هذه محاولة لتنفيذ برنامج من نوع Mathematica بلغة Python (الكود المصدري متاح للتنزيل).

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

المزيد في طريق الموارد: SympyCore:

الهدف من مشروع SympyCore هو البحث عن حلول جديدة عالية الأداء لتمثيل ومعالجة التعبيرات الرمزية في لغة برمجة بايثون، وتجربة نماذج رمزية جديدة لتحقيق نموذج رمزي متسق بشكل أساسي وعام بما فيه الكفاية والذي سيكون من السهل توسيعه إلى نطاق أوسع. نظام الجبر الحاسوبي (CAS).

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

هناك العديد من الموارد الرائعة.أوصي بكتاب "الجبر الحاسوبي الحديث" من تأليف زور جاثين وجيرهارد، على الرغم من أنه يهتم أكثر بالحساب في الأشكال الخاصة (متعددة الحدود، والأعداد الصحيحة، والمصفوفات) من التلاعب الرمزي العام.عندما تبدأ، قد تحصل على مساعدة أفضل من خلال الاطلاع على بعض البرامج التعليمية لـ Lisp أو Scheme، نظرًا لأن الرياضيات الرمزية سهلة جدًا من الناحية النظرية في Lisp، ولإنشاء محرك رمزي في Python، سيتعين عليك أكثر أو أقل تنفيذ mini-Lisp كأساس.

كما أشار آخرون، يمكنك إلقاء نظرة على SymPy وsympycore للحصول على الإلهام أو الخوارزميات الملموسة.الكود المصدري لأي من المشروعين معقد بعض الشيء (ولكن بالتأكيد ليس من الصعب التعلم منه).

(إذا جاز لي أن أقوم بالتوصيل قليلاً، فأنا كتب محرك رمزي صغير منذ فترة (كمشروع في عطلة نهاية الأسبوع - إنه صغير جدًا ولم أعمل عليه منذ ذلك الحين).يقوم بتنفيذ محرك رمزي عام في حوالي 200 سطر من التعليمات البرمجية، ثم هناك 300 سطر من التعليمات البرمجية تنفذ الحساب الرمزي والجبر البولي الرمزي، مع بعض التبسيط البدائي للغاية.ربما يكون التعمق فيه أسهل من SymPy.لكن كل شيء فيه يتضمن أشياء يمكنك اكتشافها بنفسك بسهولة، وربما تستمتع أكثر بفعل ذلك.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top