مرجع
آخر الزيارات

ماثوماتيك

1٬130 كلمة•0 مشاهدة•🗒️ منذ 15 يوماً
باختصار: ماثوماتيك هو نظام جبر حاسوبي حر ومفتوح المصدر، محمول، وعام الأغراض. في هذه المقالة 10 أقسام: «أمثلة على الجلسات»، «الميزات» و«#1: b = ------- - 2» وغيرها.
المحتويات
  1. أمثلة على الجلسات
  2. الميزات
  3. #1: b = ------- - 2
  4. توثيقات إضافية باللغة الإيطالية على أوبونتو
  5. المنصات المتاحة
  6. b = ((x/(a + 1.0)) - 2.0);
  7. التاريخ
  8. المتطلبات
  9. 1-> solve for b
  10. 1-> set debug 1
ماثوماتيك

قبل الخوض في التفاصيل، ماثوماتيك هو نظام جبر حاسوبي حر ومفتوح المصدر، محمول، وعام الأغراض. يمكنه رمزياً تبسيط، ودمج، ومقارنة، وحل المعادلات الجبرية. كما يقوم بالحسابات الرياضية القياسية، إلى جانب حسابات الأعداد المركبة، والحساب المعياري، والحسابات متعددات الحدود. ويدعم التفاضل والتكامل الرمزي (مثل الاشتقاق، والنقاط الحدية، ومتسلسلة تايلور، وتكامل متعددات الحدود، وتحويل لابلاس)، والـتكامل العددي، ويمكنه التعامل مع كافة أشكال الجبر الابتدائي باستثناء اللوغاريتمات. يمكن إدخال ومعالجة الـ دوال المثلثية باستخدام الأسس المركبة، بالاستعانة بالمعالج المسبق جنو إم 4. لكن البرنامج لا يدعم في الوقت الحالي الدوال العامة مثل f(x)، ولا الحسابات مفتوحة الدقة أو فترات الحساب، ولا المصفوفات. وتعرض الأقسام التالية جوانب أخرى من الموضوع.

أمثلة على الجلسات

  • مثال لحل معادلة وتوليد شيفرة برمجية مع إظهار خطوات الحل:
  • 1-> x = (a+1)*(b+2)
  • #1: x = (a + 1)*(b + 2)

الميزات

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

علاوةً على ذلك، يمكن إظهار النتائج الوسيطة (خطوات الحل) من خلال كتابة الأمر "set debug 1" مسبقاً (انظر أمثلة الجلسات)؛ وهذا ينطبق على حل المعادلات وأغلب أوامر البرنامج. يعرض الأمر "set debug 2" تفاصيل أدق حول العمليات المنفذة.

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

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

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

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

ومن ناحية أخرى، لا يتضمن البرنامج واجهة رسومية، إلا في الإصدارات المرخصة باستخدام العلامة التجارية لماثوماتيك للهواتف الذكية والأجهزة اللوحية التي تعمل بنظامي آي أو إس أو أندرويد. يُسمح باستخدام برنامج ماثوماتيك، المتاح على الموقع الرسمي، في أي نوع آخر من البرمجيات نظراً لرخصته الحرة المتساهلة (رخصة جنو العمومية الصغرى). ويتوفر بصيغة مكتبة برمجية حرة، وتطبيق موجه للعمل عبر وحدة التحكم (Console) الملونة مع واجهة سطر الأوامر التي تدعم التنسيق المقروء للنتائج، وتعمل في محاكيات الطرفية على جميع أنظمة التشغيل. تُعد واجهة سطر الأوامر بسيطة وتتطلب معرفة قواعد الجبر الأساسية للبدء. تعتمد جميع عمليات الإدخال والإخراج على نصوص أسكي (ASCII) تُدخل سطراً بسطر. افتراضياً، يكون الإدخال والإخراج هما القياسيان. وعادة ما يتم تجميع البرنامج مع مكتبة (editline) أو جنو ريدلاين (GNU readline) لتسهيل إدخال الأوامر.

#1: b = ------- - 2

(a + 1)

1-> code C ; output C programming language code

توثيقات إضافية باللغة الإيطالية على أوبونتو

ماثوماتيك على موقع (MacUpdate)

"الرياضيات على محطة عمل يونكس"

المنصات المتاحة

إضافةً إلى ذلك، يتوفر البرنامج لأغلب المنصات، بما في ذلك نظام مايكروسوفت ويندوز باستخدام بيئة مين جي دبليو (MinGW). ومتاح كذلك ماك أو إس، وآي أو إس، وأندرويد، وجهاز نينتندو دي إس سواء ضمن نظام (DSLinux) أو بشكل مستقل. كما يُدرج البرنامج كحزمة قابلة للتثبيت التلقائي في كافة توزيعات لينكس الرئيسية مثل فيدورا، وسلاكوير، ودبيان، وأوبونتو، وجنتو لينكس، وجميع توزيعات بي إس دي (BSD Unix) الأساسية. وهناك نسخة مبرمجة بـ جافا سكريبت باستخدام مجمع إم سكريبتن (Emscripten)، مما يتيح تشغيل البرنامج في متصفحات الويب. ويقوم أفراد منفصلون بصيانة كل هذه النسخ.

b = ((x/(a + 1.0)) - 2.0);

  • 1-> variables C ; define the variables for the C compiler
  • double x;
  • double a;
  • double b;
  • 1->

التاريخ

كذلك، اسم "ماثوماتيك" (Mathomatic) هو نحت لكلمتي "رياضيات" (math) و"تلقائي" (automatic)، وكان مستوحى من اسم وتلقائية برنامج "روغ-أو-ماتيك" (Rog-O-Matic)، الذي كان تجربة مبكرة في الذكاء الاصطناعي.

من جانب آخر، بدأ جورج جيسلين الثاني تطوير ماثوماتيك في عام 1986، كتجربة في الرياضيات المحوسبة. وكُتب البرنامج في البداية باستخدام بيئة (Microsoft C) لنظام إم إس-دوس. نشرت شركة (Dynacomp) في نيويورك الإصدارين الأول والثاني في عامي 1987 و1988 باعتباره منتجاً علمياً لنظام دوس. لاحقًا صُدر بصيغة برمجيات تجريبية ثم برمجيات البريد الإلكتروني، مع برنامج مساعد للتمثيل البياني للمعادلات ثنائي الأبعاد. ومع بداية القرن الحادي والعشرين، نُقل البرنامج إلى مترجم جنو للغة سي على نظام لينكس وأصبح برمجيات حرة. أُوقف برنامج التمثيل البياني المدمج؛ وأصبحت مهمة الـ تمثيل البياني الثنائي/الثلاثي الأبعاد تُنجز باستخدام برنامج جنوبلوت.

توقف تطوير البرنامج إثر وفاة مؤلفه في 24 فبراير 2013.

المتطلبات

  • انظر كذلك
  • ماكسيما
  • روابط خارجية

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

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

من جهة ثانية، صُمم البرنامج لتنفيذ أغلب المعالجات الرمزية عن طريق نقل الذاكرة، بأسلوب مشابه لبرامج لغة التجميع. غير أن هذا يسبب انهيار البرنامج عند استخدامه مع واجهة إل إل في إم (LLVM) الخلفية الجديدة، التي يبدو أنها غير متوافقة مع دالة مكتبة "سي" القياسية memmove(3). ولتجنب ذلك مع المترجمات التي تستعمل هذه الواجهة، ينبغي تعطيل جميع خيارات التحسين بتمرير "-O0" في سطر أوامر المترجم، وإلا ستدخل اختبارات التحوف في حلقة لا نهائية. ويُعد هذا بالتأكيد خطأ في التحسين ضمن بيئة (LLVM). ولمساعدة من يحاول تصحيح هذا الخطأ، سيفشل البرنامج حين تُحسن بيئة (LLVM) تبسيط التعبير (32^0.5) إلى 4*(2^0.5)، وما شابه ذلك، ليدخل في حلقة لا نهائية في كل مرة.

1-> solve for b

  • level 1: x = (a + 1)*(b + 2)
  • Subtracting "(a + 1)*(b + 2)" from both sides of the equation:
  • level 1: x - ((a + 1)*(b + 2)) = 0
  • Subtracting "x" from both sides of the equation:
  • level 1: -1*(a + 1)*(b + 2) = -1*x
  • Dividing both sides of the equation by "-1":
  • level 1: (a + 1)*(b + 2) = x
  • Dividing both sides of the equation by "a + 1":
  • level 1: b + 2 = x/(a + 1)
  • Subtracting "2" from both sides of the equation:
  • level 1: b = (x/(a + 1)) - 2
  • Solve completed:
  • level 1: b = (x/(a + 1)) - 2
  • Solve successful:
  • x

1-> set debug 1

Success.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

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