متمتیکا (Mathematica) چیست؟ — راهنمای شروع به کار
محاسبات نمادین، اساس کار در ریاضیات محسوب میشود و بسیاری از قضیهها و مسئلههای این حوزه توسط نمادها و انجام عملیاتی نظیر مشتق و انتگرال روی آنها اثبات یا حل میشوند. روشهای حل عددی نیز بخصوص در زمانی که حلهای صریح یا نمادین وجود ندارند به کار میآیند ولی کمتر از آنها برای اثبات قضیهها استفاده میشود. یکی از ابزارهای بسیار مهم در حوزه محاسبات نمادین در ریاضیات، نرم افزار متمتیکا (Mathematica) است که قادر به انجام بسیاری از عملیات و محاسبات به صورت نمادهای ریاضیاتی است. به همین منظور این نوشتار از مجله فرادرس را به معرفی و آشنایی با این نرمافزار اختصاص دادهایم.
متمتیکا چیست؟
شاید نرمافزارهای متمتیکا و میپل (Maple) را سردمدار همه نرمافزارهای محاسباتی ریاضی به صورت نمادین دانست. متمتیکا با تکیه بر زبان Wolfram برای انجام محاسبههای ریاضی و مهندسی، چه به صورت عددی یا تحلیلی، بهترین گزینه محسوب میشود.
Wolfram Mathematica که به اختصار و به طور معمول، Mathematica نامیده میشود، یک سیستم محاسبات فنی مدرن است که شامل بیشتر حوزههای محاسبات از جمله شبکههای عصبی (Neural Network)، یادگیری ماشین (Machine Learning)، پردازش تصویر (Image Processing)، هندسه (Geometry)، علم داده (Data Science)، مصورسازی داده (Data Visualization) و ... میشود. این سیستم و نرمافزار رایانهای در بسیاری از زمینههای فنی، علمی، مهندسی، ریاضی و محاسبات قابل استفاده است.
ایده اصلی ایجاد چنین نرمافزاری ابتدا توسط «استفان ولفرام» (Stephan Wolfram) اجرایی شده و سپس توسط موسسه Wolfram Research of Champaign، ساخته شده است. به این ترتیب زبان Wolfram تبدیل به یک زبان برنامه نویسی استاندارد در حوزه ریاضیات و محاسبات مهندسی شد.
ساختار نرم افزار متمتیکا
دو بخش اصلی با خصوصیات ساختاری متفاوت در نرم افزار متمتیکا وجود دارد. ۱- «هسته محاسباتی» (Kernel) و ۲- «رابط نرمافزار» (Front-End). هسته، فرمانها و دستوراتی که به کد یا زبان ولفرم نوشته میشوند را تفسیر کرده و نتایج را برای نمایش به بخش رابط نرمافزار میفرستد. بخش رابط این نرمافزار، ابتدا در سال ۱۹۸۸، توسط «تئودور گری» (Theodore Gray) به صورت یک رابط تصویری (GUI) معرفی شد که به واسطه آن «اسناد یادداشت» (Notebook Documents) تولید میشدند. این پروندهها در حقیقت همان کدهای مربوط به معرفی محاسبات کاربر بودند که در قالب متنی نوشته شده ولی توسط این رابطه به شکل نمادهای ریاضیاتی ظاهر میگشتند تا کاربر صحت عملکرد یا تشخیص نرمافزار را برای فرمول یا مدل ریاضی تایید کند.
ساختار برای معرفی فرمولها در اسناد یادداشت، به صورت سلسله مراتبی است به نحوی که میتوان آنها را بخشبندی و فصلبندی کرد. حتی ابزاری نیز برای به کارگیری قالب نمایش اسلایدی برای فرمولهای نوشته شده در متمتیکا در رابط کاربری وجود دارد. از طرفی انتقال اطلاعات، فرمولها، نتیجههای تولید شده در نرمافزارهای دیگر نیز در این نرمافزار مورد توجه قرار گرفته است.
علاوه بر رابطه کاربری Front-End، در نرمافزار متمتیکا یک Wolfram Workbench نیز وجود دارد که میتوان آن را یک «محیط توسعه یکپارچه» (IDE) نامید. Workbench در سال 2006 معرفی شده است و شامل ابزارهایی برای توسعه کد مبتنی بر پروژه برای Mathematica است. این ابزارها به طور کلی از روشهایی برای مدیریت نسخهها، اشکال زدایی، پروفایل و آزمایش تشکیل شدهاند.
افزونهای برای زبان برنامهنویسی JAVA برای کار با کد زبان Wolfram نیز وجود دارد که علاوه بر برجستهسازی دستورات، میتواند متغیرها و توابع به کار رفته را به طور خودکار تصحیح و تجزیه و تحلیل کند. از طرفی هسته نیز شامل یک خط فرمان است که میتواند کد دستورات را مستقیما دریافت و اجرا نماید.
رابطهای دیگری نیز برای متمتیکا وجود دارد که در این بین میتوان به Jmath یا GNU readline و WolfraScript اشاره کرد که با استفاده از کدهای متمتیکا در خط فرمان یونیکس، فرمانها را دریافت و به هسته منتقل میکنند.
ویژگیهای نرم افزار متمتیکا
قابلیتهای مختلف و متعددی در نسخههای متفاوت نرم افزار متمتیکا به آن اضافه شده است. برای مثال محاسبات برمبنای «بردارهای فشرده» (Packed Array) در نسخه ۴ و در سال ۱۹۹۹، همچنین انجام عملیات ماتریسی براساس «ماتریسهای خلوت» (Sparse Matrix) در نسخه ۵ (سال ۲۰۰۳) به نرم افزار متمتیکا اضافه شد.
به کارگیری از قدرت چند رشتهای پردازشگرهای چند هستهای در نسخه ۵.۲ در سال ۲۰۰۵ اضافه شد و در سال ۲۰۰۸ نیز محاسبات موازی (Parallel Programming) در سطح برنامهنویسی در متمتیکا گنجانده و حتی به کارگیری از GPU در محاسبات سنگین در سال ۲۰۱۰ اضافه شده است. در نسخه مربوط به سال ۲۰۱۹ استفاده از کامپایل کردن روی چندین دستگاه که به اصطلاح LLVM یا (Low Level Virtual Machine) گفته میشود، در این نسخه به کار رفت.
از ویژگیهای خاص نرم افزار متمتیکا (Wolfram Mathematica) میتوان به موارد زیر اشاره کرد:
- کتابخانههای توابع ابتدایی ریاضی و توابع خاص از جمله تابعهای مطرح شده در تئوری اعداد و توابع ترکیبی
- پشتیبانی از عدد مختلط، محاسبات با دقت دلخواه، محاسبات روی فواصل اعداد، اعدادی با داده سانسور شده تصادفی، دادههای مرتبط با سری زمانی بوسیله نمادهای ریاضی
- ماتریس و ابزار تغییر دادهها از جمله پشتیبانی از آرایههای خلوت و آرایههای جمعی
- دادههای دو بعدی و سه بعدی، عملکردها و تجسم جغرافیایی و ابزارهای انیمیشنسازی برای نمایش دادهها
- حل سیستم معادلات، معادلات دیوفانتین (Diophantine equation)، معادلات دیفرانسیل معمولی (ODE)، معادلات دیفرانسیل جزئی غیر خطی (PDE) ، معادلات جبری دیفرانسیل (DAE) ، معادلات دیفرانسیل تاخیر (DDE)، معادلات دیفرانسیل تصادفی (SDE).
- تجزیه و تحلیل عناصر محدود از جمله تولید شبکههای سازگار دو و سه بُعدی
- ابزارهای عددی و نمادی برای حساب روی متغیرهای گسسته و پیوسته از جمله تبدیلهای انتگرال پیوسته و گسسته
- انجام عملیات و محاسبات مربوط به بهینهسازی محلی و کلی مقید و غیر مقید
- کتابخانههای آماری چند متغیره شامل برازش، آزمایش فرض آماری و محاسبات احتمال و امید ریاضی در بیش از 160 توزیع احتمال مختلف
- محاسبات و شبیهسازیها در بررسی روندها و تجزیه و تحلیل در نظریه صف تصادفی
- ابزارهای حوزه «یادگیری ماشین» (Machine Learning)، «تحت نظارت» (Supervised) و «بدون نظارت» (Unsupervised) برای دادههای مرتبط با تصاویر و صداها
- تحلیل شبکههای عصبی مصنوعی (Artificial Neural Networks)
- ابزارهایی برای «متن کاوی» (Text Mining) شامل عبارات منظم، تحلیل معنایی، تحلیل احساسات و استخراج حقایق.
- ابزارهای دادهکاوی (Data Mining) مانند «تحلیل خوشهای» (Cluster Analysis)، «تراز بندی توالی» (Sequence Alignment) و «تطبیق الگو» (Pattern Matching)
- هندسه محاسباتی در دو سه بُعد و ابعاد بالاتر به شیوه هندسه دو بُعدی اقلیدسی
- کتابخانههایی برای پردازش سیگنال از جمله تجزیه و «تحلیل موجک» (Wavelet Analysis) روی صدا، تصاویر و دادهها
- فیلترها و تبدیل به همراه پردازش صدا از جمله تشخیص صوت
- ابزارهایی برای پردازش تصویر دو بعدی و سه بعدی و «پردازش تصویرهای همریخت» (morphological image processing) از جمله تشخیص چهره
- ابزاری برای تجسم و تجزیه و تحلیل گرافهای جهت دار و بدون جهت
- ابزارهایی برای رمزنگاری شامل کلیدهای متقارن و نامتقارن، رمزنگاری منحنی بیضوی و هش کردن
- ابزاری برای محاسبات مالی از جمله اوراق قرضه، سنوات، مشتقات، اختیارات و غیره
- توابع مرتبط با نظریه گروه و توابع نمادین تنسور
- ابزارهایی برای اثبات خودکار قضیهها
- کتابخانههای سیستم کنترل خطی و غیر خطی
- کیت میکروکنترلر برای دادن مشخصات نمادین که به طور خودکار کد را تولید و مستقر میکند تا به صورت خودکار در میکروکنترلرها اجرا شود
- ابزاری برای شیمی محاسباتی، شامل محاسبات طول پیوند و زاویه و پایگاههای داده از ویژگیهای شیمیایی مواد و عناصر
- بهرهمندی از زبان برنامه نویسی که از ساختارهای رویهای، تابعکها، شیگرایی و برنامه نویسی موازی پشتیبانی میکند
- جعبه ابزار برای افزودن رابطهای کاربری به محاسبات و برنامهها
- وجود ابزارهایی برای ایجاد و استقرار برنامهها و خدمات محاسباتی مبتنی بر ابر (Cloud)
- ابزارهای اتصال به سیستم های مبتنی بر کتابخانههای پیوند دینامیکی (DLL)، جاوا، دات نت، C ++ ،Fortran ،CUD ،OpenCL و پروتکل انتقال متن (HTTP)
- استفاده از هر دو نوع «ورودی زبانی به صورت آزاد» (یک رابط کاربری زبان طبیعی) و Wolfram Language در نوت بوک هنگام اتصال به اینترنت
ارتباط متمتیکا با نرمافزارها و زبانهای برنامه نویسی دیگر
در نرم افزار متمتیکا ارتباط با برنامههای دیگر از طریق پروتکلی به نام Wolfram Symbolic Transfer Protocol اتفاق میافتد که به اختصار (WSTP) گفته میشود. این پروتکل اجازه میدهد تا ارتباط بین هسته نرم افزار متمتیکا و رابط کاربر و همچنین برنامههای کاربردی دیگر فراهم شود. شرکت تحقیقاتی ولفرام (Wolfram Research) بصورت کاملا رایگان، یک کیت توسعه برای ارتباط برنامههای نوشته شده در زبان برنامه نویسی C با هسته متمتیکا از طریق WSTP ارائه داده است.
J/Link نیز یک رابط در اختیار برنامههای جاوا قرار میدهد تا به این ترتیب انجام محاسبات به عهده متمتیکا بوده و نمایش یا ورودیها توسط Java کنترل شوند. به همین ترتیب، یک برنامه نوشت شده برای متمتیکا میتواند کلاسهای جاوا را بارگیری کند، اشیا Java جاوا را دستکاری کرده و متدهای دلخواه را انجام دهد. عملکرد مشابهای نبر توسط NET/Link برای برنامههای NET. توسط متمتیکا در اختیار کاربران یا توسعه دهندگان قرار گرفته ا ست. زبانهای دیگری که به متمتیکا متصل میشوند عبارتند از: Haskell ،AppleScript ،Racket ،Visual Basic ،Python و Clojure.
پیوندها برای بسیاری از بستههای نرم افزاری شخص ثالث از جمله OpenOffice.org Calc ،Microsoft Excel ،MATLAB ،R ،SageMath و Origin برقرار است. همچنین امکان اتصال نرم افزار متمتیکا به موتور بازی Unity و سالن ورزشی OpenAI وجود دارد. همچنین معادلات ریاضی را میتوان با سایر نرم افزارهای محاسباتی یا حروفچینی از طریق MathML با این نرمافزار مبادله کرد.
متمتیکا شامل رابطهای پایگاه داده SQL است و میتواند از طریق SPARQL به پایگاه دادههای نمودار RDF دسترسی پیدا کند. متمتیکا همچنین میتواند سرویسهای وب را از طریق «زبان توصیف خدمات وب» (WSDL) نصب و راهاندازی کند. از طرفی این نرمافزار از طریق Hadoop امکان دسترسی به دادههای کلان با قالب HDFS یا (Hadoop Distributed File System) را هم فراهم میکند. متمتیکا برای بازیابی یا ارسال دادههای خدمات برخط اینترنت، از جمله ArXiv ، Bing ، ChemSpider ، CrossRef ، Dropbox ، Facebook ، Federal Reserve ، Fitbit ، Flickr ، Google که شامل خدمات تجزیه و تحلیل، تقویم، مخاطبین، جستجوی سفارشی، پلاس، جستجو، ترجمه است از سرویس فراخوانی ابری، بهره میبرد.
امکان اتصال و فرخوانی دادهها از LabView برای دادههای مالی یا دستگاههای سختافزاری تراکنش مالی در متمتیکا وجود دارد. این نرمافزار میتواند دادههای در جریان (Streamline Data) را خوانده و مورد تجزیه و تحلیل قرار دهد. این برنامه از ورود یا صدور بیش از 220 نوع داده یا قالب ثبت اطلاعات شامل تصویر، فیلم، صدا، طراحی به کمک رایانه (CAD)، سیستمهای اطلاعات جغرافیایی (GIS)، سند و قالبهای زیست-پزشکی پشتیبانی میکند.
محاسبات روی دادهها با متمتیکا
نرم افزار متمتیکا (Wolfram Mathematica) با مجموعهای از دادههای مختلف سازمانها و نهادها، در ارتباط است. به این منظور به صورت رایگان میتوانید از این مجموعههای داده استفاده کنید. نرم افزار متمتیکا همچنین با Wolfram Alpha قابل ادغام است. در حقیقت Wolfram Alpha یک موتور پاسخ محاسباتی آنلاین است که بیشتر محاسبات آن در زمان واقعی به روز میشوند. این مجموعه دادهها علاوه بر دادههای ریاضی، شامل دادههای نجومی، شیمیایی، ژئوپلتیکی، زبانی، زیست پزشکی و آب و هوا نیز هستند.
نسخههای نرم افزار متمتیکا
نرم افزار متمتیکا (Wolfram Mathematica) بر اساس ایدههای قبلی برنامههای نظیر Cole و Wolfram Symbolic Manipulation Program که به اختصار به SMP شهرت دارد، بنا شده است. نام برنامه «Mathematica» توسط استیو جابز ، بنیانگذار اپل، به «استفان ولفرام» پیشنهاد شد هرچند که ولفرام قبلا آن را نادیده گرفته بود.
شرکت تحقیقاتی ولفرام (Wolfram Research) نسخههای زیر از نرم افزار متمتیکا را منتشر کرده است:
نسخه | سال | نسخه | سال |
1.0 | June 23, 1988 | 1.1 | October 31, 1988 |
1.2 | August 1, 1989 | 2.0 | January 15, 1991 |
2.1 | June 15, 1992 | 2.2 | June 1, 1993 |
3.0 | September 3 | 4.0 | May 19, 1999 |
4.1 | November 2, 2000 | 4.2 | November 1, 2002 |
5.0 | June 12, 2003 | 5.1 | October 25, 2004 |
5.2 | June 20, 2005 | 6.0 | May 1, 2007 |
7.0 | November 18, 2008 | 8.0 | November 15, 2010 |
9.0 | November 28, 2012 | 10.0 | July 9, 2014 |
10.1 | March 30, 2015 | 10.2 | July 14, 2015 |
10.3 | October 15, 2015 | 10.4 | March 2, 2016 |
11.0.0 | August 8, 2016 | 11.0.1 | September 28, 2016 |
11.1 | March 16, 2017 | 11.1.1 | April 25, 2017 |
11.2 | September 14, 2017 | 11.3 | March 8, 2018 |
12.0 | April 16, 2019 | 12.1 | March 18, 2020 |
12.1.1 | June 17, 2020 |
همانطور که دیده شد، آخرین نسخه این نرمافزار در سال ۲۰۲۰ عرضه شده و به نام نسخه یا ورژن ۱۲٫۱٫۱ شناخته میشود.
خلاصه و جمعبندی
در این متن با اجزا و ساختارهای مختلف نرم افزار متمتیکا آشنا شدیم و بعضی از امکانات آن را مورد بررسی قرار دادیم. همچنین تاریخچه و نسخههای مختلف آن نیز بازگو شده و نحوه ارتباط آن با نرمافزارهای دیگر محاسباتی نظیر Matlab و زبانهای برنامهنویسی مانند C نیز مورد اشاره قرار گرفت. البته به بعضی از ویژگیهای منحصر به فرد این نرم افزار نیز اشاراتی داشتیم. از آنجایی که هنگام کار با متمتیکا در بعضی از مواقع احتیاج به کد نویسی داریم، باید با نحوه صدور فرمانها و کدگذاریها نیز آشنا شده و نحوه ورود دستورات را در دفترچه یادداشت متمتیکا بیاموزید.
سلام .وقت بخیر .من می تونم از این نرم افزار برای محاسبات حجم تانکر در مقایس فاصله های 1 سانت اسانت استفاده کنم یا خیر ؟ممنون میشم راهنمایم کنید