نحوه استفاده از برنامه maximal pro توابع و دستورات سیستم ماکسیما

صفحه اصلی / خرابی ها

از آنجایی که این سری از مقالات بر یک برنامه ریاضی برای محاسبات نمادین تمرکز خواهند کرد، ابتدا چند کلمه در مورد اینکه این محاسبات نمادین یا، همانطور که آنها نیز نامیده می شوند، محاسبات تحلیلی، در مقابل محاسبات عددی چیستند. کامپیوترها با اعداد (اعداد صحیح و ممیز شناور) کار می کنند. به عنوان مثال، راه حل های معادله x 2 = 2 x + 1 را می توان به صورت -0.41421356 و 2.41421356، و 3 x = 1 به عنوان 0.33333333 به دست آورد. اما من می خواهم نه یک ضبط دیجیتال تقریبی، بلکه یک مقدار دقیق را ببینم، یعنی 1±√2 در مورد اول و 1/3 در مورد دوم. تفاوت بین محاسبات عددی و نمادین با این مثال ساده شروع می شود. اما در کنار این، مشکلاتی نیز وجود دارد که به هیچ وجه نمی توان آنها را به صورت عددی حل کرد. به عنوان مثال، معادلات پارامتری، که در قالب یک راه حل باید مجهول را از طریق یک پارامتر بیان کنید. یا یافتن مشتق یک تابع. بله، تقریباً هر مشکل نسبتاً کلی فقط به شکل نمادین قابل حل است. بنابراین، جای تعجب نیست که برای این دسته از مشکلات ظاهر شد برنامه های کامپیوتری، نه تنها با اعداد، بلکه تقریباً با هر جسم ریاضی، از بردارها تا تانسورها، از توابع تا معادلات انتگرو دیفرانسیل و غیره عمل می کند.

ماکسیما در علم و آموزش

در بین نرم افزارهای ریاضی برای محاسبات تحلیلی (نمادین)، معروف ترین نرم افزار تجاری ( افرا, ریاضیات) این یک ابزار بسیار قدرتمند برای یک دانشمند یا معلم، دانشجوی فارغ التحصیل یا دانشجو است که به شما این امکان را می دهد تا معمولی ترین بخش کار را که نیاز به توجه بیشتری دارد، خودکار کنید، در حالی که با ضبط تحلیلی داده ها، یعنی در واقع، فرمول های ریاضی کار می کنید. چنین برنامه ای را می توان محیط برنامه نویسی نامید، با این تفاوت که عناصر زبان برنامه نویسی نمادهای ریاضی آشنا برای انسان هستند.

این برنامه که موضوع مقاله شد، بر اساس همان اصول کار می کند و عملکردهای مشابهی را ارائه می دهد. اساسی ترین تفاوت آن این است که نه تجاری است و نه بسته. به عبارت دیگر، ما در مورد آن صحبت می کنیم برنامه رایگان. در واقع، استفاده از نرم‌افزار رایگان برای علوم بنیادی طبیعی‌تر از علوم تجاری است، زیرا مدلی که در نرم‌افزار آزاد استفاده می‌شود، مدلی از باز بودن و در دسترس بودن همه پیشرفت‌ها است. بدیهی است که همین ویژگی ها در نتایج فعالیت های علمی ذاتی هستند. با استفاده از این شباهت رویکردها، در واقع می توان توسعه های عملکرد نرم افزارهای آزاد یا کتابخانه های اضافی را که می توان برای نیازهای آنها در فرآیند تحقیقات علمی ایجاد کرد، به عنوان بخشی جدایی ناپذیر از نتایج چنین تحقیقاتی در نظر گرفت. و این نتایج به صلاحدید کاربر بدون توجه به محدودیت های اعمال شده توسط مجوزهای نرم افزار منبع قابل استفاده و توزیع است. در مورد نرم افزارهای تجاری، که متعلق به سازنده آن است، این نوع آزادی به طور قابل توجهی محدود است، از عدم توانایی در انتقال آزادانه (و قانونی) خود چنین نرم افزاری همراه با پیشرفت ها و تا ادعاهای احتمالی حق اختراع از توسعه دهنده نرم افزار. شرکت در مورد توزیع کتابخانه های اضافی خانگی به آن.

از سوی دیگر، جهت اصلی، علاوه بر توسعه علمی، که در آن چنین برنامه هایی مورد تقاضا است، آموزش عالی است.

و استفاده از نرم‌افزار رایگان برای نیازهای آموزشی فرصتی واقعی برای دانشگاه و دانشجویان و معلمان است تا نسخه‌های قانونی این نرم‌افزارها را بدون هزینه‌های کلان و یا حتی هزینه‌های قابل توجه در اختیار داشته باشند. این مقاله مجموعه ای را آغاز می کند که به برنامه محاسبات تحلیلی رایگان اختصاص داردماکسیما

. در این مجموعه سعی می کنم کامل ترین برداشت را از برنامه به شما ارائه دهم: هم به اصول و مبانی کار با ماکسیما و هم به شرح قابلیت های گسترده تر و نمونه های عملی آن اختصاص داده می شود.

تاریخچه این پروژه که اکنون با نام ماکسیما شناخته می شود، در اواخر دهه 60 در MIT افسانه ای (موسسه فناوری ماساچوست) آغاز شد، زمانی که در چارچوب پروژه بزرگ MAC که در آن سال ها وجود داشت، کار بر روی یک محاسبات نمادین آغاز شد. برنامه ای که نام Macsyma را دریافت کرد (از MAC Symbolic Manipulation). معماری سیستم تا جولای 1968 توسعه یافت، خود برنامه نویسی در جولای 1969 آغاز شد. Lisp به عنوان زبان توسعه سیستم انتخاب شد و تاریخ نشان داده است که چگونه انتخاب درستی بوده است: از بین زبان های برنامه نویسی موجود در آن زمان. ، این تنها موردی است که امروز - تقریباً نیم قرن پس از شروع پروژه - به توسعه خود ادامه می دهد. اصول زیربنای این پروژه بعداً توسط فعال ترین برنامه های تجاری در حال توسعه امروز - Mathematica و Maple - قرض گرفته شد. بنابراین، Macsyma در واقع بنیانگذار کل جهت برنامه های ریاضیات نمادین شد. به طور طبیعی، Macsyma یک پروژه تجاری بسته بود. بودجه آن توسط سازمان‌های دولتی و خصوصی، از جمله ARPA تاریخی (آژانس پروژه‌های تحقیقاتی پیشرفته؛ ARPAnet - جد اینترنت؟)، وزارت‌های انرژی و دفاع ایالات متحده، DOE و DOD، تامین شد. این پروژه به طور فعال در حال توسعه بود، و سازمان هایی که آن را کنترل می کردند، بیش از یک بار تغییر کردند، همانطور که همیشه در مورد پروژه های طولانی مدت بسته شده است. در سال 1982، پروفسور ویلیام شلتر شروع به توسعه نسخه خود بر اساس همان کد به نام ماکسیما کرد. در سال 1998، Shelter توانست حقوق انتشار کد تحت GPL را از DOE دریافت کند. پروژه اصلی Macsyma در سال 1999 وجود نداشت. ویلیام شلتر تا زمان مرگش در سال 2001 به توسعه ماکسیما ادامه داد. اما، همانطور که برای نرم افزار منبع باز معمول است، این پروژه همراه با نویسنده و متصدی آن از بین نرفت. اکنون این پروژه به طور فعال به توسعه خود ادامه می دهد و شرکت در آن بهترین کارت تلفن برای ریاضیدانان و برنامه نویسان در سراسر جهان است.

چند کلمه در مورد برنامه

روشن در حال حاضر Maxima برای دو پلتفرم منتشر شده است: سیستم‌های سازگار با یونیکس، یعنی لینوکس و *BSD و MS Windows. البته در مورد نسخه لینوکس صحبت خواهم کرد.

Maxima خود یک برنامه کنسول است و تمام فرمول های ریاضی را با استفاده از کاراکترهای متن معمولی ترسیم می کند. این حداقل دو مزیت دارد. از یک طرف، خود ماکسیما می تواند به عنوان یک هسته با رابط های گرافیکی ساخته شده در بالای آن برای هر سلیقه ای استفاده شود. امروزه تعداد کمی از آنها وجود دارد. این بار روی دو مورد از محبوب ترین (نوار کناری) - و بصری ترین و آسان ترین آنها تمرکز خواهم کرد و در مورد بقیه در شماره های بعدی صحبت خواهیم کرد. آنها نیز در نوع خود جالب هستند، هر چند خاص تر.

از سوی دیگر، ماکسیما به خودی خود، بدون هیچ گونه افزودنی رابط، از نظر سخت افزاری بی نیاز است و می تواند بر روی رایانه هایی کار کند که اکنون هیچ کس آن را رایانه نمی داند (ممکن است برای یک دانشگاه یا آزمایشگاه علمی که مربوط به آنها باشد، به احتمال زیاد پول لازم برای به روز رسانی ناوگان ماشین های خود را ندارند، اما ممکن است نیاز به نرم افزار برای محاسبات نمادین ایجاد شود).

نام توابع و متغیرها در Maxim به حروف بزرگ و کوچک حساس هستند، یعنی در حروف بزرگ و کوچک تفاوت دارند. این برای کسانی که با سیستم‌های سازگار با POSIX یا زبان‌های برنامه‌نویسی مانند C یا Perl کار کرده‌اند، تازگی نخواهد داشت. این نیز از دیدگاه یک ریاضیدان راحت است، که برای او نیز رایج است که حروف بزرگ و کوچک می توانند اشیاء مختلف را نشان دهند (به عنوان مثال، مجموعه ها و عناصر آنها به ترتیب).

برای شروع کار با برنامه، به بسته Maxima نیاز دارید. اگر در مخازن استاندارد توزیع شما نیست، می توانید آن را در وب سایت پروژه که آدرس آن در نوار کناری داده شده است، دریافت کنید.

اصول کار با برنامه بستگی به این ندارد که کدام رابط را برای آن انتخاب می کنید، بنابراین سعی می کنم تا حد امکان از یک رابط خاص انتزاعی کنم و در مواردی که رفتار متفاوتی دارند، خود را به نظرات کوچک محدود کنم.

در حال حاضر آخرین نسخهبرنامه ها - 5.9.3، این چیزی است که در مورد آن صحبت خواهم کرد. اگر توزیع شما در حال حاضر بیش از نسخه قدیمی، اصولاً می توانید از آن استفاده کنید: هم 5.9.2 که چند ماه پیش مربوط بود و هم 5.9.1 که در پایان سال گذشته منتشر شد هیچ تفاوت اساسی با نسخه فعلی ندارند.

رابط های گرافیکی برای ماکسیما

از نقطه نظر آشنایی با خود ماکسیما، دو رابط بیشترین توجه را دارند.

اولی یک برنامه گرافیکی مستقل مجزا به نام است . مانند خود ماکسیما، علاوه بر Linux/*BSD، در نسخه ای برای MS Windows نیز وجود دارد. در wxMaxima فرمول ها را به صورت متن وارد می کنید و خروجی ماکسیما به صورت گرافیکی و به روشی آشنا نمایش داده می شود. نمادهای ریاضی. علاوه بر این، تاکید زیادی بر راحتی ورودی است: خط فرمان از پنجره I/O جدا می شود و دکمه های اضافیو سیستم منو به شما امکان می دهد دستورات را نه تنها در متن، بلکه در حالت گفتگو نیز وارد کنید. به اصطلاح "تکمیل خودکار" در خط فرماندر واقع تنها شباهت با آن این است که با کلید Tab فراخوانی می شود. متأسفانه، فقط مانند یک تاریخچه دستورات هوشمند عمل می کند، یعنی دستورهایی را که قبلاً در این جلسه وارد شده اند، فراخوانی می کند که با کاراکترهای مشخص شده در خط فرمان شروع می شود، اما نام دستورات و پارامترهای آنها را تکمیل نمی کند. بنابراین، این رابط زمانی راحت‌تر است که نیاز به محاسبات زیادی داشته باشید و نتایج را روی صفحه ببینید. و همچنین، شاید، اگر واقعاً دوست ندارید همه دستورات را از صفحه کلید وارد کنید. علاوه بر این، wxMaxima یک رابط مناسب برای اسناد سیستم فراهم می کند. اگرچه، از آنجایی که اسناد وارد می شود فرمت html، می توانید به جای آن از یک مرورگر معمولی استفاده کنید.


دومین رابط نسبتا جالب ماکسیما یک حالت اضافی در ویرایشگر است . اگرچه این ویرایشگر پیشینه تاریخی مشترکی با Emacs معروف دارد، همانطور که از نام آن پیداست، شباهت های عملی کمی بین آنها وجود دارد. TeXmacs برای ویرایش بصری متون علمی در حال توسعه است که در آن متن ویرایش شده را تقریباً به همان شکلی که چاپ می شود روی صفحه می بینید. به طور خاص، یک حالت ورودی به اصطلاح ریاضی دارد که برای کار با فرمول‌های مختلف بسیار راحت است و می‌تواند متن را به LaTeX و XML/HTML وارد یا صادر کند. Maxima که از TeXmacs نامیده می شود، از توانایی کار با فرمول ها استفاده می کند. در واقع، فرمول ها با نماد ریاضی معمول نمایش داده می شوند، اما در عین حال می توان آنها را ویرایش کرد و در اسناد دیگر مانند متن معمولی کپی کرد. جلسه Maxima از منو فراخوانی می شود: درج کنیدجلسهاین مقاله مجموعه ای را آغاز می کند که به برنامه محاسبات تحلیلی رایگان اختصاص دارد"، و یک منوی اضافی با دستورات Maxima ظاهر می شود. پس از شروع جلسه، می توانید از قبل به حالت ورودی ریاضی داخل آن بروید (منوی حالت ورودی با اولین دکمه در پانل ورودی فراخوانی می شود) و همچنین هنگام ورود از عناصر نماد ریاضی استفاده کنید. این رابط برای کسانی که می خواهند از نتایج محاسباتی در متون خود استفاده کنند و دوست دارند آنها را به صورت بصری ویرایش کنند راحت تر خواهد بود.



بیایید شروع کنیم

پس از شروع جلسه ماکسیما، خطوط زیر را مشاهده می کنیم:

ماکسیما دوباره راه اندازی شد. (%i1)

اولین پیامی است که هسته Maxima به تازگی راه اندازی شده است (در عوض، بسته به نسخه و ساخت خاص، ممکن است اطلاعات مختصری در مورد برنامه نمایش داده شود).


دومی دعوتی برای وارد کردن فرمان اول است. دستور در Maxim هر ترکیبی از عبارات ریاضی و توابع داخلی است که در ساده ترین حالت با یک نقطه ویرگول خاتمه می یابد. پس از وارد کردن دستور و فشردن "Enter"، ماکسیما نتیجه را چاپ می کند و منتظر دستور بعدی می ماند:

برای عملیات حسابی، از نمادهای سنتی استفاده می شود: -، +، *، /; ** یا ^ برای توان، sqrt() برای ریشه مربع.

اگر برای برخی از نمادها نحوه نوشتن آنها در یک خط مشخص نیست، در ادامه توضیح خواهم داد. همانطور که می بینید، هر سلول برچسب مخصوص به خود را دارد. این برچسب نام سلولی است که در داخل پرانتز قرار گرفته است. سلول های ورودی به عنوان %i با شماره (i ازورودی - ورودی)، سلول های خروجی - به صورت %o با عدد مربوطه (o ازخروجی

- نتیجه گیری). همه نام‌های سرویس‌های داخلی با علامت % شروع می‌شوند: از یک سو، به‌منظور کوتاه کردن و استفاده آسان از آنها، و از سوی دیگر، جلوگیری از همپوشانی‌های احتمالی با نام‌های سفارشی، که نگه‌داشتن آن‌ها نیز اغلب راحت است. کوتاه به لطف این یکنواختی، شما مجبور نخواهید بود، همانطور که اغلب در سیستم های دیگر اتفاق می افتد، به خاطر بسپارید که کدام یک از این نام های کوتاه و راحت توسط برنامه رزرو شده است و می توانید برای نیازهای خود از آنها استفاده کنید. به عنوان مثال، نام های داخلی %e و %pi نشان دهنده ثابت های ریاضی شناخته شده هستند. و %c با یک عدد نشان دهنده ثابت های مورد استفاده در یکپارچه سازی است، که برای آنها استفاده از حرف "c" در ریاضیات سنتی است.

در اینجا %+47/59 همان %o1+47/59 است.

نتیجه محاسبه همیشه روی صفحه مورد نیاز نیست. می توان آن را با پایان دادن به دستور با یک $ به جای; . نتیجه خاموش هنوز ارزیابی می شود. همانطور که می بینید، در این مثال، سلول های %o1 و %o2 در دسترس هستند، اگرچه نشان داده نشده اند (سلول %o2 از طریق نماد % قابل دسترسی است که معنای آن در بالا رمزگشایی شده است):

لازم نیست هر دستور بعدی در یک خط جدید نوشته شود. اگر چندین دستور را در یک خط وارد کنید، هر کدام از آنها همچنان نام سلول خود را خواهند داشت. برای مثال، در اینجا در خط بعد از برچسب %i1، سلول‌های %i1 تا %i4 وارد می‌شوند. سلول %i3 از %i1 و %i2 استفاده می کند (نشان داده شده با _ - ورودی قبلی):


در wxMaxima و TeXmacs، آخرین یا تنها فرمان در یک خط نیازی به دنبال کردن یک کاراکتر انتهایی ندارد - این کار به همان صورت عمل می کند که اگر پایان یافته باشد. ، یعنی خروجی قطع نمی شود. در مثال‌های بعدی اغلب از قلم می‌اندازم. . اگر رابط کاربری متفاوتی را انتخاب کردید، فراموش نکنید که آن را اضافه کنید.

علاوه بر استفاده از نام سلول ها، البته ما می توانیم هر عبارتی را خودمان نام گذاری کنیم. به روشی دیگر می توان گفت که به متغیرها مقادیر اختصاص می دهیم، با این تفاوت که هر عبارت ریاضی می تواند به عنوان مقدار چنین متغیری عمل کند. این کار با استفاده از یک دونقطه انجام می شود - علامت مساوی به معادلات واگذار می شود که با توجه به بافت ریاضی کلی نماد، خواندن آنها به این روش آسان تر و آشناتر است. و علاوه بر این، از آنجایی که سرگرمی اصلی ماکسیما نمادگذاری نمادین و محاسبات تحلیلی است، از معادلات اغلب استفاده می شود. به عنوان مثال:

به یک معنا، کولون در این زمینه حتی واضح‌تر از علامت مساوی است: این را می‌توان به این معنا درک کرد که ما یک نام مشخص را تعریف می‌کنیم، و سپس از دو نقطه برای رمزگشایی دقیقاً معنای آن استفاده می‌کنیم. هنگامی که عبارت نامگذاری شد، می توانیم آن را در هر زمان با نام صدا کنیم:

هر نامی را می توان با استفاده از تابع kill() از عبارت اختصاص داده شده پاک کرد و حافظه اشغال شده توسط این عبارت را می توان آزاد کرد. برای انجام این کار، فقط باید kill(name) را تایپ کنید، جایی که name نام عبارتی است که باید از بین برود.

علاوه بر این، این می تواند یک نام اختصاص داده شده توسط شما یا هر سلول ورودی یا خروجی باشد. به طور مشابه، می توانید تمام حافظه را به طور همزمان پاک کنید و با تایپ kill(all) همه نام ها را آزاد کنید. در این صورت تمام سلول های ورودی/خروجی نیز پاک می شوند و شماره گذاری آنها دوباره از یک شروع می شود. در آینده، اگر متن به معنای ادامه منطقی خطوط ورودی/خروجی قبلی باشد، شماره گذاری را ادامه خواهم داد (من قبلاً از این تکنیک در بالا استفاده کرده ام). هنگامی که "جلسه" جدید به هیچ وجه با جلسه قبلی مرتبط نیست، شماره گذاری را دوباره شروع می کنم. اگر نمونه‌هایی را در Maxima تایپ کنید، این دستور غیرمستقیم برای انجام "kill(all)" خواهد بود، زیرا نام متغیرها و سلول‌ها ممکن است در چنین "جلسه‌هایی" تکرار شوند.

دسترسی به اسناد ماکسیما


در مثال های بالا از دو تابع داخلی استفاده کردیم. همانطور که از متن به راحتی می توانید حدس بزنید، حل یک تابع برای حل یک معادله است و diff یک تابع تمایز است. تقریباً تمام عملکردهای Maxima از طریق چنین توابع داخلی پیاده سازی می شوند. یک تابع در ماکسیما می تواند دارای تعداد متغیری از آرگومان ها باشد. به عنوان مثال، تابع حل، که ما با یک آرگومان استفاده کردیم، بیشتر با دو آرگومان فراخوانی می شود. اولی معادله یا تابعی را مشخص می کند که ریشه های آن باید پیدا شود. دوم متغیری است که معادله آن باید حل شود:

اگر فرمول تعیین کننده معادله ای که باید حل شود شامل فقط یک نماد باشد، مانند مثال قبلی، آرگومان دوم را می توان حذف کرد، زیرا انتخاب این که معادله را برای چه چیزی حل کنیم هنوز مبهم است.

تابع دوم دوستان جدید ما - diff - همچنین می تواند یک آرگومان را بگیرد. در این مورد، تفاوت عبارت داده شده را پیدا می کند:

در اینجا del(x) و del(y) دیفرانسیل نمادهای مربوطه را نشان می دهند. هر تابع داخلی دارای توضیحاتی در مستندات Maxima است. این شامل اطلاعاتی در مورد اینکه تابع چه آرگومان هایی را می پذیرد و در چه انواعی می پذیرد و همچنین شرحی از اقدامات آن در موارد مختلف ونمونه های خاص برنامه های کاربردی اما، البته، به دنبال شرح هر یک باشیددر اسناد html یا صفحات اطلاعات همیشه راحت نیست، به خصوص که این اطلاعات معمولاً درست در فرآیند کار مورد نیاز است. بنابراین، ماکسیما یک تابع ویژه دارد - describe()، که اطلاعاتی را از مستندات برای کلمات خاص ارائه می دهد. علاوه بر این، به ویژه برای راحتی به دست آوردن اطلاعات مرجع، یک نسخه کوتاه شده از فراخوانی این تابع وجود دارد: ? نام به جای توصیف (نام). اینجا؟ نام عملگر است و آرگومان باید با فاصله از آن جدا شود (از عبارت ?name برای فراخوانی یک تابع Lisp به نام name استفاده می شود). عملکرد و عملگر را توضیح دهید؟ فهرستی از بخش‌های راهنما و نام‌های تابع را که حاوی متن مشخص شده است نمایش می‌دهد و سپس از شما می‌خواهد که شماره بخش یا شرح عملکردی را که می‌خواهید مشاهده کنید وارد کنید:

هنگامی که یک بخش را انتخاب می کنید، محتوای آن نمایش داده می شود:


اگر برای کلمه ای که بعد از آن وارد کردید؟ یا توصیف کنید، یک تطابق پیدا شد، توضیحات آن بلافاصله نشان داده خواهد شد.

علاوه بر کمک، بسیاری از توابع ماکسیما نمونه هایی از کاربرد خود را دارند. یک مثال را می توان با تابع example() بارگذاری کرد. با فراخوانی این تابع بدون آرگومان، لیستی از تمام نام‌های نمونه موجود نمایش داده می‌شود. فراخوانی مانند example(name) در جلسه جاری بارگیری و اجرا می شود فایل مشخص شدهمثال:


حل مشکل راه اندازی از TeXmacs

اگر در راه اندازی جلسه Maxima از TeXmacs مشکل دارید، توجه کنید که چه کسی تحت نام /bin/sh در سیستم شما اجرا می شود. واقعیت این است که مقداردهی اولیه تمام جلسات مختلف در TeXmacs از طریق اسکریپت های پوسته ای به نام با استفاده از /bin/sh پیاده سازی می شود. و اسکریپت مسئول جلسه Maxima از ویژگی‌ای استفاده می‌کند که برای /bin/sh استاندارد نشده است، اما در شبیه‌سازی bash آن وجود دارد. به عبارت دیگر، اگر /bin/sh شما پیوندی به /bin/bash نیست، بلکه چیز دیگری است، ممکن است دلیل این امر ناتوانی در باز کردن یک جلسه Maxima باشد (مثلاً در دبیان و توزیع های دیگر بر اساس آن از پیوند bash /bin/sh نیز ممکن است بخواهد خط تیره سبک تری نصب کند، در این مورد می توانید وضعیت موجود را با استفاده از dpkg-reconfigure dash بازیابی کنید. اگر ایجاد پیوند /bin/sh به /bin/bash امکان پذیر نیست، می توانید #!/bin/sh را به #!/bin/bash در /usr/lib/texmacs/TeXmacs/bin/maxima_detect تغییر دهید. من برای توسعه دهندگان TeXmacs در مورد این مشکل نامه نوشتم، اما هنوز هیچ پاسخی از آنها دریافت نکرده ام، بنابراین هنوز نمی توانم بگویم که آیا این نقص در نسخه های بعدی اصلاح می شود یا خیر.

اصول اولیه

این واقعیت که Maxima در Lisp نوشته شده است برای شخصی که با این زبان آشنا است در ابتدای کار با برنامه مشخص می شود. در واقع، ماکسیم به وضوح اصل "Lisp" کار با داده ها را نشان می دهد که در زمینه ریاضیات نمادین و محاسبات تحلیلی بسیار مفید است. واقعیت این است که در Lisp، به طور کلی، هیچ جدایی بین اشیا و داده ها وجود ندارد: نام و عبارات متغیرها را می توان تقریباً در یک زمینه استفاده کرد. در ماکسیما، این ویژگی حتی بیشتر توسعه می‌یابد: در واقع، ما می‌توانیم از هر نمادی استفاده کنیم، صرف نظر از اینکه آیا عبارتی به آن اختصاص داده شده است یا خیر. به طور پیش فرض، یک نماد مرتبط با هر عبارت، آن عبارت را نشان می دهد. نمادی که به هیچ چیز متصل نیست خود را نشان می دهد و دوباره به عنوان یک عبارت تفسیر می شود. بیایید با یک مثال توضیح دهیم:

به ویژه از این نتیجه می شود که ارزش نماد موجود در آن به طور خودکار در عبارت جایگزین می شود که این مقدار قبل از تعریف عبارت به نماد اختصاص داده شده باشد:

اگر نمادی قبلاً معنایی داشته باشد، آیا می‌توانیم از خود نماد به جای معنای آن در یک عبارت استفاده کنیم؟

قطعا. این را می توان با استفاده از علامت آپاستروف انجام داد - که قبل از هر کاراکتر یا عبارتی وارد می شود، از محاسبه آن جلوگیری می کند:

اگر b و y در آن لحظه هیچ مقداری نداشته باشند، نتیجه عبارت %i12 مشابه خواهد بود. بنابراین، ما می‌توانیم با خیال راحت ارزیابی نماد را بدون به خاطر سپردن (یا دانستن) مسدود کنیم که آیا اصلاً عباراتی به آنها اختصاص داده شده است یا خیر.

اگر بخواهیم آن را اجرا نکنیم، اما در زمینه ریاضی خود از آن استفاده کنیم، می توانیم همین کار را با هر تابع داخلی انجام دهیم. به عنوان مثال، تابع تمایز ذکر شده می تواند برای نشان دادن مشتق در یک معادله دیفرانسیل برای ما مفید باشد. در این مورد، البته، نیازی به محاسبه آن نیست: به لطف ویژگی های توصیف شده، کار در Maxim از یک سو، از بسیاری جهات شبیه کار سنتی "دستی" با فرمول های ریاضی می شود که عملاً مانع روانی هنگام شروع کار با برنامه را از بین می برد. از سوی دیگر، حتی در این مرحله اولیه شما در واقع از معمول ترین کارها در امان هستید، مانند ردیابی مقادیر نماد فعلی، بنابراین می توانید کاملاً روی خود کار تمرکز کنید. البته، مسدود کردن ارزیابی‌ها تنها راه تأثیرگذاری بر نحوه ارزیابی ماکسیما یک عبارت معین نیست. این فرآیند را می توان کاملاً انعطاف پذیر کنترل کرد.

موضوع: سیستم فرمان، محاسبات در ماکسیما.

هدف:ادامه آشنایی با برنامه ماکسیما، معرفی سیستم فرمان ماکسیما؛ توسعه حافظه، توجه؛ فرهنگ اطلاعاتی را پرورش دهید

پیشرفت درس:

    شروع سازمانی:

    با سلام.

    کار با افسران وظیفه

    شروع تمرینات تکراری

    کار انفرادی با استفاده از کارت.

کارت شماره 1.

    1. مفهوم یک سیستم محاسباتی ریاضی.

      ویژگی های سیستم محاسبات ریاضی.

کارت شماره 2.

    1. مفهوم جبر کامپیوتری.

      ویژگی های جبر کامپیوتری

    نظرسنجی فردی شفاهی

مفهوم ماکسیما. ویژگی های خاص برنامه را شروع کنید.

رابط برنامه های ماکسیما.

    روی درک و تسلط بر مطالب جدید کار کنید.

    اعلام موضوع و هدف درس.

    یادگیری مطالب جدید.

وارد کردن دستورات اولیه در wxMaxima

پس از راه اندازی wxMaxima، پنجره برنامه ظاهر می شود.

قسمت گرافیکی بالای پنجره واسط Maxima به شما می گوید که نسخه 5.14.0 دانلود شده است، که تحت مجوز گنو توزیع شده است، از کدام سایت در دسترس است و والد آن کیست. در پنجره پایین در فیلد ENTER: Maxima آماده پذیرش دستورات است. جداکننده دستور یک کاراکتر است. (نقطه ویرگول). پس از وارد کردن دستور باید فشار دهید کلید را وارد کنیدبرای پردازش و خروجی نتیجه.

در نسخه های قبلی Maxima و برخی از پوسته های آن (به عنوان مثال، xMaxima)، و در نسخه کنسولوجود نقطه ویرگول بعد از هر دستور به شدت الزامی است. بنابراین، ما به شدت هنگام استفاده از Maxima توصیه می کنیم

فراموش نکنید که یک نقطه ویرگول اضافه کنید. بعد از هر دستور در صورتی که یک عبارت باید نمایش داده شود و محاسبه نشود، باید قبل از آن علامت (") باشد ( نقل قول تک). اما این روش زمانی کار نمی کند که عبارت دارای مقدار صریح باشد،

برای مثال، Maxim عبارت sin(π) را حتی در حضور آپوستروف صفر می‌کند. تصور تنوع دشوار است گزینه های ممکناز Maxims برای محاسبه یا تبدیل عبارات استفاده کنید. در موارد دشوار، می توانید برای دریافت گواهی اقدام کنید انگلیسی. برای فراخوانی کمک، فقط در قسمت ENTER بنویسید؟ و Enter را فشار دهید.

تعیین دستورات و نتایج محاسبات

پس از وارد کردن، به هر دستور یک شماره سریال اختصاص داده می شود. در شکل زیر، دستورات وارد شده با شماره 1 تا 3 و به ترتیب (%i1)، (%i2)، (%i3) مشخص شده‌اند. نتایج محاسبات دارای شماره سریال مربوطه (%o1)، (%o2) و غیره است. جایی که "i" مخفف انگلیسی است. ورودی (ورودی) و "o" انگلیسی است. خروجی

این مکانیسم اجازه می‌دهد، هنگام نوشتن بیشتر دستورات، به دستوراتی که قبلاً نوشته شده‌اند اشاره شود، به عنوان مثال (%i1)+(%i2) به معنای افزودن عبارت دوم به عبارت فرمان اول و به دنبال آن محاسبه نتیجه است. همچنین می توانید از اعداد نتایج محاسباتی استفاده کنید، به عنوان مثال، مانند این (%o1)*(%o2).

برای آخرین فرمان اجرا شده در ماکسیما یک نماد ویژه وجود دارد - ٪.

مثال: مشتق یک تابع را محاسبه کنید

در نقطه x=1.

دستور (%i9) اجرا شد و نتیجه (%o9) بدست آمد. بنابراین دستور بعدی (%i10) به نتیجه ای که قبلاً به دست آمده اشاره می کند، اما مقدار متغیر x را مشخص می کند، بنابراین دستور فرم (%i10) (%o9)، x=1 را دریافت می کند.

وارد کنید اطلاعات عددی

قوانین وارد کردن اعداد در ماکسیما دقیقاً مانند بسیاری از برنامه های مشابه است. کل و کسری کسرهای اعشاری با علامت نقطه از هم جدا می شوند. قبل از اعداد منفی علامت منفی قرار می گیرد.

صورت و مخرج کسرهای معمولی با استفاده از علامت / (اسلش جلو) از هم جدا می شوند.

لطفاً توجه داشته باشید که اگر نتیجه عملیات بیان نمادین باشد، اما باید یک عبارت خاص دریافت کنید مقدار عددیدر قالب یک کسر اعشاری، سپس با استفاده از عملگر عدد این مشکل را حل می کند. به طور خاص، به شما امکان می دهد از کسری معمولی به اعشار حرکت کنید

در اینجا Maxima در درجه اول به طور پیش فرض عمل می کند. او کسرهای 3/7 و 5/3 را دقیقاً طبق قوانین حساب اضافه کرد: یک مخرج مشترک پیدا کرد، کسرها را به یک مخرج مشترک کاهش داد و اعداد را اضافه کرد. در پایان او دریافت کرد

44/21. فقط بعد از اینکه از او خواستیم پاسخ عددی بگیرد، او به یک پاسخ عددی تقریبی با دقت 16 رقمی 2.095238095238095 رسید.

ثابت ها

Maxima دارای تعدادی ثابت داخلی برای سهولت در محاسبه است که رایج ترین آنها در جدول زیر نشان داده شده است (جدول 1):

عملیات حسابی

علامت گذاری عملیات حسابی در ماکسیما هیچ تفاوتی با نمایش کلاسیک ندارد: + – * /.

توان را می توان به سه صورت نشان داد: ^، ^^، **. استخراج ریشه درجه n به صورت درجه ^^(1/n) نوشته می شود. اجازه دهید عملیات مفید دیگری را که در ماکسیما تعبیه شده است را به یاد بیاوریم - یافتن فاکتوریل یک عدد. این عملیات با علامت تعجب نشان داده می شود

مثلاً 6!=1⋅ 2⋅ 3⋅ 4⋅ 5⋅ 6=120.

برای افزایش اولویت یک عملیات، مانند ریاضیات، هنگام نوشتن دستورات برای Maxima از پرانتز () استفاده می شود.

متغیرها

از متغیرها برای ذخیره نتایج محاسبات میانی استفاده می شود. توجه داشته باشید که هنگام وارد کردن نام متغیرها، توابع و ثابت ها، حروف مهم هستند، بنابراین متغیرهای x و X دو متغیر متفاوت هستند.

تخصیص یک مقدار به یک متغیر با استفاده از نماد: (دونقطه)، به عنوان مثال x : 5; انجام می شود.

اگر لازم باشد مقدار یک متغیر را حذف کنید (پاک کنید)، از روش kill استفاده می شود:

kill (x) – مقدار متغیر x را حذف کنید.

kill (all) - مقادیر همه متغیرهای قبلاً استفاده شده را حذف کنید.

و علاوه بر این، متد kill شماره گذاری جدیدی را برای دستورات اجرایی آغاز می کند (توجه داشته باشید که پاسخ به دستور (%i 3) بالا عدد پاسخ صفر (%o 0) انجام شده بود و سپس شماره گذاری دستورات از یک ادامه یافت) .

توابع ریاضی

Maxima دارای مجموعه نسبتاً بزرگی از توابع ریاضی داخلی است. در اینجا برخی از آنها آورده شده است (جدول 2). باید در نظر داشت که برخی از نام های توابع با نام هایی که در ادبیات داخلی استفاده می شود متفاوت است: به جای tg - tan، به جای ctg - cot، به جای arcsin - asin، به جای arcos - acos، به جای arctg - atan. ، به جای arcctg - acot ، به جای ln - log ، به جای cosec – csc .

قانون نوشتن توابع

برای نوشتن یک تابع باید نام آن را مشخص کنید و سپس مقادیر آرگومان را در پرانتز بنویسید و با کاما از هم جدا کنید. اگر مقدار آرگومان یک لیست باشد، در داخل کروشه قرار می گیرد و عناصر لیست نیز با کاما از هم جدا می شوند.

integrate(sin(x),x,-5,5); plot2d(,,);

توابع سفارشی

کاربر می تواند توابع خود را تعریف کند. برای انجام این کار، ابتدا نام تابع را مشخص کنید، نام آرگومان ها در داخل پرانتز ذکر شده است، پس از علائم: = (دونقطه و مساوی) توضیحات تابع وجود دارد. پس از مشخص شدن، تابع تعریف شده توسط کاربر دقیقاً به همان روشی که توابع داخلی Maxima فراخوانی می شود.

ترجمه عبارات پیچیده به نماد خطی

یکی از دشوارترین کارها برای کاربران مبتدی ماکسیما نوشتن عبارات پیچیده حاوی قدرت ها، کسرها و ساختارهای دیگر به صورت خطی (به صورت متنی، با استفاده از کاراکترهای ASCII، در یک خط) است.

برای تسکین این فرآیندارزش ارائه چند توصیه را دارد:

1. گذاشتن علامت ضرب را فراموش نکنید! در پنجره گرافیکی ماکسیما، طبق قوانین ریاضی، مقدار دو برابر متغیر x به صورت 2x نوشته می شود، اما در پنجره ENTER: دستور ماکسیما باید مانند 2*x باشد.

2. در صورت شک، همیشه بهتر است پرانتزهای اضافی (اضافی) اضافه کنید (). صورت و مخرج یک عبارت باید همیشه داخل پرانتز باشد.

و همچنین هنگام بالا بردن پاور، بهتر است همیشه پایه و پاور را در براکت قرار دهید.

3. یک تابع جدا از آرگومان هایش (در صورت وجود) وجود ندارد. بنابراین، برای مثال، هنگام افزایش به توان، می‌توانید کل تابع را با آرگومان‌هایی در پرانتز بگیرید و سپس ساختار حاصل را به توان مورد نظر برسانید: (sin (x))**2.

همچنین به یاد داشته باشید که چندین آرگومان تابع در پرانتز نوشته شده اند که با کاما از هم جدا شده اند، برای مثال min(x1,x2,x3,xN);

5. نوشتن تابع sin(2*x) به صورت sin*2*x یا sin2x مجاز نیست.

6. اگر در حال نوشتن یک عبارت پیچیده هستید، آن را به چندین جزء ساده تقسیم کنید، آنها را جداگانه وارد کنید و سپس با استفاده از نمادی که قبلاً در مورد دستورات وارد شده صحبت شد، آنها را ترکیب کنید.

مثال: باید عبارت زیر را وارد کنید:

بیایید این عبارت را به سه جزء تقسیم کنیم: عدد، عبارت داخل پرانتز و توان. بیایید هر جزء را بنویسیم و آنها را در یک عبارت ترکیب کنیم.

ماکسیما بیان را ساده می کند

موش (بیان). یک عبارت عقلانی را به شکل متعارف آن تبدیل می کند. که

همه پرانتزها را باز می کند، سپس همه چیز را به یک مخرج مشترک می آورد، خلاصه می کند و آن را کاهش می دهد. علاوه بر این، تمام اعداد در نماد اعشاری محدود را به اعداد گویا کاهش می دهد.

    تکالیف:

Stakhin N.A.، از 10-18، یادداشت های پشتیبانی.

    خلاصه درس.

برنامه ماکسیما برای چیست؟

عناصر اصلی رابط برنامه ماکسیما را فهرست کنید.

دستورات اصلی ماکسیما را فهرست کنید.

می توانید آن را به صورت رایگان از ما دانلود کنید نسخه جدیدبرنامه ریاضی Maxima به زبان روسی برای Windows XP / Vista / 7 / 8 / 10 از سرور یا وب سایت رسمی.

توضیحات برنامه ماکسیما:

این مقاله مجموعه ای را آغاز می کند که به برنامه محاسبات تحلیلی رایگان اختصاص دارد- یک سیستم جبر کامپیوتری طراحی شده برای کار با عبارات نمادین و عددی، از جمله یکپارچه سازی، تمایز، بسط سری، تبدیل لاپلاس، سیستم های معادلات خطی، معادلات دیفرانسیل معمولی، مجموعه ها، چند جمله ای ها، لیست ها، بردارها، ماتریس ها و تانسورها.

از آنجایی که این برنامه محاسبات کاملاً جدی را از رشته مهندسی و ریاضیات عالی انجام می دهد، پس به کاربر معمولیبعید است مورد نیاز باشد اما متخصصانی که محاسبات علمی و مهندسی را انجام می دهند، و همچنین بسیاری از دانش آموزان، از قابلیت های عظیم آن، لیست وظایف پشتیبانی شده و سرعت عالی کار قدردانی خواهند کرد.

Maxima یکی از قدرتمندترین نرم افزارهای ریاضی موجود امروزی است که قابلیت های زیادی برای محاسبه تعداد بسیار زیادی از توابع مختلف دارد. علاوه بر توابع فوق، برنامه محاسبات عددی با دقت بالا را با استفاده از کسرهای دقیق، اعداد صحیح و اعداد ممیز شناور با دقت دلخواه انجام می دهد. این سیستم به شما امکان رسم توابع و آمار را در دو و سه بعدی می دهد.

احتمالاً امروزه هیچ منطقه ای از محاسبات ریاضی وجود ندارد که این سیستم آن را تشخیص ندهد.

رابط برنامه. با وجود پیچیدگی آن، بسیار ساده است. کنترل پنل اصلی دارای چندین بخش منو است که در آن تمام روش های محاسبات ریاضی ارائه شده است. برای شروع کار با هر بخش، کاربر باید وظیفه اولیه را وارد کند و برنامه نمایش داده می شود راه حل بهینهدر حالت اتوماتیک

ضمناً در برخی موارد می توان نتیجه را در قالب شواهد تفصیلی و با تمامی مراحل شرح داده شده و توجیهات پذیرش نتیجه نهایی به دست آورد.

ماکسیما از نوادگان سیستم جبری رایانه ای افسانه ای Macsyma است که در اوایل دهه 60 در MIT توسعه یافت. این تنها سیستم مبتنی بر Macsyma است که هنوز به صورت عمومی در دسترس است و به دلیل باز بودن آن، یک جامعه کاربر فعال دارد. زمانی، Macsyma انقلابی در جبر کامپیوتری ایجاد کرد و بر بسیاری از سیستم‌های دیگر از جمله Maple و Mathematica تأثیر گذاشت.

نام این مقاله مجموعه ای را آغاز می کند که به برنامه محاسبات تحلیلی رایگان اختصاص دارد
نسخه 5.40.0
زبان روسی بله
سیستم ویندوز XP / Vista / 7 / 8 / 10
توسعه دهنده

بسته ریاضی ماکسیما یکی از بهترین جایگزین های رایگان برای MathCAD است.

این آموزش (در فرمت pdf) را می توان در رشته های آنالیز ریاضی، معادلات دیفرانسیل، بسته ها استفاده کرد برنامه های کاربردیو غیره در تخصص های مختلف در مؤسسات آموزش عالی آموزش حرفه ای، در صورتی که استاندارد آموزشی دولتی مطالعه بخش "معادلات دیفرانسیل" و همچنین بخشی از دروس انتخابی را پیش بینی کرده باشد. همچنین می تواند برای معرفی سیستم های ریاضی کامپیوتری در کلاس های تخصصی مفید باشد موسسات آموزشیبا مطالعه عمیق ریاضیات و علوم کامپیوتر.

  • پیشگفتار
  • فصل 1. مبانی کار در سیستم ریاضی کامپیوتر ماکسیما
    • 1.1. درباره سیستم ماکسیما
    • 1.2. نصب ماکسیما بر روی کامپیوتر شخصی
    • 1.3. رابط پنجره اصلی ماکسیما
    • 1.4. کار با سلول ها در ماکسیما
    • 1.5. کار با سیستم کمکیماکسیما
    • 1.6. توابع و دستورات سیستم ماکسیما
    • 1.7. مدیریت فرآیند محاسبه در ماکسیما
    • 1.8. تبدیل های ساده بیان
    • 1.9. حل معادلات جبری و سیستم های آنها
    • 1.10. قابلیت های گرافیکی
  • فصل 2. روش های عددی برای حل معادلات دیفرانسیل
    • 2.1. اطلاعات کلی در مورد معادلات دیفرانسیل
    • 2.2. روش های عددی برای حل مسئله کوشی برای یک معادله دیفرانسیل معمولی مرتبه اول
      • 2.2.1. روش اویلر
      • 2.2.2. روش اویلر کوشی
      • 2.2.3. روش Runge-Kutta 4 مرتبه دقت
    • 2.3. حل مسائل مقدار مرزی برای معادلات دیفرانسیل معمولی با استفاده از روش تفاضل محدود
    • 2.4. روش شبکه ای برای حل معادلات دیفرانسیل جزئی
  • فصل 3. یافتن راه حل برای معادلات دیفرانسیل در سیستم ماکسیما
    • 3.1. توابع داخلی برای یافتن راه حل برای معادلات دیفرانسیل
    • 3.2. حل معادلات دیفرانسیل و سیستم های آنها به صورت نمادین
    • 3.3. ساخت مسیرها و میدان های جهت معادلات دیفرانسیل.
    • 3.4. اجرای روش های عددی برای حل مسئله کوشی برای معادلات دیفرانسیل معمولی
      • 3.4.1. روش اویلر
      • 3.4.2. روش اویلر کوشی
      • 3.4.3. روش Runge-Kutta
    • 3.5. اجرای یک روش تفاضل محدود برای حل مسئله مقدار مرزی برای معادلات دیفرانسیل معمولی
    • 3.6. اجرای روش شبکه برای معادلات دیفرانسیل جزئی
  • وظایف برای راه حل مستقل
  • ادبیات

پیشگفتار

نظریه معادلات دیفرانسیل یکی از بزرگترین شاخه های ریاضیات مدرن است. یکی از ویژگی های اصلی معادلات دیفرانسیل، ارتباط مستقیم بین نظریه معادلات دیفرانسیل و کاربردها است. هنگام مطالعه هر پدیده فیزیکی، محقق، اول از همه، ایده آل سازی ریاضی یا مدل ریاضی خود را ایجاد می کند، قوانین اساسی حاکم بر این پدیده را به شکل ریاضی می نویسد. اغلب این قوانین را می توان در قالب معادلات دیفرانسیل بیان کرد. اینها مدلهایی از پدیده های مختلف مکانیک پیوسته، واکنش های شیمیایی، پدیده های الکتریکی و مغناطیسی و غیره هستند. با مطالعه معادلات دیفرانسیل حاصل همراه با شرایط اضافی، که معمولاً در قالب شرایط اولیه و مرزی مشخص می شوند. ، ریاضیدان اطلاعاتی در مورد پدیده رخ داده به دست می آورد، گاهی اوقات می تواند گذشته و آینده آن را دریابد.

برای تدوین یک مدل ریاضی در قالب معادلات دیفرانسیل، به عنوان یک قاعده، شما باید فقط ارتباطات محلی را بدانید و نیازی به اطلاعات در مورد کل پدیده فیزیکی به عنوان یک کل ندارید. یک مدل ریاضی امکان مطالعه یک پدیده را به عنوان یک کل، پیش بینی توسعه و ساخت آن فراهم می کند ارزیابی های کیفیاندازه گیری هایی که در طول زمان در آن انجام می شود. امواج الکترومغناطیسی بر اساس تجزیه و تحلیل معادلات دیفرانسیل کشف شد.

می توان گفت که نیاز به حل معادلات دیفرانسیل برای نیازهای مکانیک، یعنی یافتن مسیر حرکت، به نوبه خود، انگیزه ای برای نیوتن برای ایجاد یک حساب جدید بود. کاربرد حساب جدید در مسائل هندسه و مکانیک از طریق معادلات دیفرانسیل معمولی انجام شد.

با توجه به توسعه مدرن تجهیزات کامپیوتریو توسعه فشرده یک جهت جدید - ریاضیات کامپیوتری - مجتمع های نرم افزاری به نام سیستم های ریاضی کامپیوتری گسترده و مورد تقاضا شد.

ریاضیات کامپیوتری جهت جدیدی در علم و آموزش است که در تقاطع ریاضیات اساسی، اطلاعات و فناوری های کامپیوتری پدید آمد. یک سیستم ریاضی کامپیوتری (SCM) مجموعه‌ای از برنامه‌ها است که پردازش خودکار، تکنولوژیکی یکپارچه و حلقه بسته مسائل ریاضی را هنگام تعیین شرایط در یک زبان طراحی شده خاص ارائه می‌کند.

سیستم های ریاضی کامپیوتری مدرن برنامه هایی با چند پنجره هستند رابط گرافیکی، یک سیستم کمک توسعه یافته است که توسعه و استفاده از آنها را تسهیل می کند. روند اصلی در توسعه SCM رشد قابلیت های ریاضی به ویژه در زمینه محاسبات تحلیلی و نمادین، گسترش قابل توجه ابزارهای تجسم برای تمام مراحل محاسبات، استفاده گسترده از گرافیک های دو بعدی و سه بعدی، ادغام انواع مختلف است. سیستم ها با یکدیگر و دیگران. نرم افزاردسترسی گسترده به اینترنت، سازماندهی همکاری در پروژه های آموزشی و علمی در اینترنت، استفاده از ابزارهای انیمیشن و پردازش تصویر، ابزارهای چند رسانه ای و غیره.

یکی از شرایط مهمی که تا همین اواخر از استفاده گسترده از SCM در آموزش جلوگیری می کرد، هزینه بالای نرم افزارهای علمی ریاضی حرفه ای است. با این حال، در اخیرابسیاری از شرکت هایی که چنین برنامه هایی را توسعه و توزیع می کنند (از طریق اینترنت - http://www.softline.ru) برای استفاده رایگان ارائه می کنند نسخه های قبلیاز برنامه های خود، به طور گسترده از یک سیستم تخفیف برای موسسات آموزشی استفاده می کنند، نسخه ی نمایشی را توزیع می کنند یا نسخه های آزمایشیبرنامه ها

علاوه بر این، ظاهر می شود آنالوگ های رایگانسیستم های ریاضیات کامپیوتری، به عنوان مثال، ماکسیما، اسکیلب، اکتاو و غیره.

این آموزش به بررسی قابلیت های سیستم ریاضی کامپیوتر ماکسیما برای یافتن جواب معادلات دیفرانسیل می پردازد.

چرا ماکسیما؟

اولاً، سیستم ماکسیما یک پروژه غیرانتفاعی منبع باز است. ماکسیما متعلق به کلاس است محصولات نرم افزاری، که تحت GNU GPL (مجوز عمومی عمومی) توزیع می شوند.

دوم اینکه ماکسیما برنامه ای برای حل مسائل ریاضی به دو صورت عددی و نمادین است. دامنه توانایی های آن بسیار گسترده است: اقدامات برای تبدیل عبارات، کار با بخش هایی از عبارات، حل مسائل جبر خطی، تجزیه و تحلیل ریاضی، ترکیبات، نظریه اعداد، تجزیه و تحلیل تانسور، مسائل آماری، ساخت نمودار توابع در صفحه و در فضا. در سیستم های مختلفمختصات و غیره

سوم، ماکسیما اکنون دارای یک رابط گرافیکی قدرتمند، کارآمد و کاربرپسند چند پلتفرمی به نام WxMaxima (http://wxmaxima.sourceforge.net) است.

نویسندگان کتاب ده سال است که به مطالعه سیستم های ریاضی کامپیوتری مانند Mathematica، Maple، MathCad می پردازند. بنابراین، با دانستن قابلیت‌های این محصولات نرم‌افزاری، به‌ویژه برای یافتن راه‌حل برای معادلات دیفرانسیل، می‌خواستم موضوع مربوط به سازماندهی محاسبات را به صورت نمادین در سیستم‌های ریاضی کامپیوتری که به صورت آزادانه توزیع شده‌اند، مطالعه کنم.

این راهنما در مورد امکانات سازماندهی فرآیند جستجوی راه حل برای معادلات دیفرانسیل بر اساس سیستم ماکسیما صحبت می کند. اطلاعات عمومیدر سازماندهی کار در سیستم

دفترچه راهنما از 3 فصل تشکیل شده است. فصل اول خوانندگان را با رابط گرافیکی wxMaxima سیستم ماکسیما، ویژگی های کار در آن و نحو زبان سیستم آشنا می کند. بررسی سیستم با جایی شروع می شود که می توانید توزیع سیستم و نحوه نصب آن را پیدا کنید. فصل دوم بحث می کند سوالات عمومینظریه های معادلات دیفرانسیل، روش های عددی برای حل آنها.

فصل سوم به توابع داخلی سیستم ریاضی کامپیوتر ماکسیما برای یافتن جواب معادلات دیفرانسیل معمولی مرتبه 1 و 2 به شکل نمادین اختصاص دارد. همچنین در فصل سوم اجرای روش های عددی برای حل معادلات دیفرانسیل در سیستم ماکسیما نشان داده شده است. در پایان راهنما وظایفی برای حل مستقل وجود دارد.

امیدواریم طیف وسیعی از کاربران به این کتابچه راهنمای کاربر علاقه مند شوند و در تسلط بر ابزار جدیدی برای حل مسائل ریاضی دستیار آنها شود.

T.N. گوبینا، ای.وی. آندروپوا
Yelets، جولای 2009

P.S. شروع سریع: برای اجرای دستوراتو توابع در mwMaxima، ابتدا باید خود دستور را وارد کنید و سپس crtl+Enter را فشار دهید.


عملیات تجزیه و تحلیل ریاضی

مبالغ

تابع sum برای یافتن مجموع استفاده می شود. نحو توابع:

جمع (بیان، متغیر، حد پایین تغییر متغیر، حد بالایی تغییر متغیر)

به عنوان مثال:

اگر مقدار متغیر سیستمی مثبت بی نهایت "inf" را به آخرین آرگومان اختصاص دهید، این نشان دهنده عدم وجود کران بالایی است و مجموع بی نهایت محاسبه می شود. همچنین اگر مقدار متغیر سیستم بی نهایت منفی «minf» را به آرگومان «حد پایین تغییر متغیر» نسبت دهید، مجموع نامحدود محاسبه می شود. از همین مقادیر در سایر توابع تحلیل ریاضی استفاده می شود.

به عنوان مثال:


کار می کند

برای یافتن محصولات متناهی و نامتناهی از تابع محصول استفاده کنید. همان آرگومان های تابع sum را دارد.

به عنوان مثال:


محدودیت ها

برای یافتن محدودیت ها از تابع limit استفاده کنید.

نحو توابع:

حد (بیان، متغیر، نقطه شکست)

اگر آرگومان "نقطه شکست" روی "inf" تنظیم شود، این نشان دهنده عدم وجود مرز است.

به عنوان مثال:

برای محاسبه حدود یک طرفه از یک آرگومان اضافی استفاده می شود که برای محاسبه حدود در سمت راست مقدار مثبت و برای سمت چپ منهای دارد.

برای مثال، اجازه دهید پیوستگی تابع arctan(1/(x - 4)) را مطالعه کنیم. این تابع در نقطه x = 4 تعریف نشده است. اجازه دهید حدهای سمت راست و چپ را محاسبه کنیم:

همانطور که می بینیم، نقطه x = 4 یک نقطه ناپیوستگی از نوع اول برای این تابع است، زیرا در سمت چپ و در سمت راست مرزهایی وجود دارد که به ترتیب برابر با -PI/2 و PI/2 هستند.


دیفرانسیل ها

تابع diff برای یافتن دیفرانسیل ها استفاده می شود. نحو توابع:

diff(بیان، متغیر 1، ترتیب مشتق برای متغیر 1 [، متغیر 2، ترتیب مشتق برای متغیر 2،...]

در جایی که عبارت تابعی است که متمایز می شود، آرگومان دوم متغیری است که مشتق باید با توجه به آن گرفته شود، آرگومان سوم (اختیاری) ترتیب مشتق است (پیش فرض مرتبه اول است).

به عنوان مثال:

به طور کلی، تنها آرگومان اول برای تابع diff مورد نیاز است. در این حالت تابع دیفرانسیل عبارت را برمی گرداند. دیفرانسیل متغیر مربوطه با del (نام متغیر) نشان داده می شود:

همانطور که از نحو تابع می بینیم، کاربر این فرصت را دارد که به طور همزمان چندین متغیر تمایز را تعریف کرده و ترتیب هر یک از آنها را تنظیم کند:

اگر از یک تابع پارامتری استفاده می کنید، شکل نوشتن تابع تغییر می کند: بعد از نام تابع، علامت های ":=" نوشته می شود و تابع از طریق نام آن با یک پارامتر قابل دسترسی است:

مشتق را می توان در یک نقطه مشخص محاسبه کرد. این کار به این صورت انجام می شود:

تابع diff همچنین برای نشان دادن مشتقات در معادلات دیفرانسیل استفاده می شود، همانطور که در زیر مورد بحث قرار می گیرد.


انتگرال ها

برای یافتن انتگرال ها در سیستم، از تابع integrate استفاده کنید. برای پیدا کردن انتگرال نامعیناین تابع از دو آرگومان استفاده می کند: نام تابع و متغیری که ادغام روی آن انجام می شود. به عنوان مثال:

اگر پاسخ مبهم باشد، ماکسیما ممکن است یک سوال اضافی بپرسد:

پاسخ باید حاوی متن سوال باشد. در در این مورد، اگر مقدار متغیر y بزرگتر از "0" باشد، "مثبت" (مثبت) و در غیر این صورت - "منفی" منفی خواهد بود). در این حالت فقط حرف اول کلمه را می توان وارد کرد.

برای یافتن یک انتگرال معین در یک تابع، باید آرگومان های اضافی را مشخص کنید: limits of the integral:

Maxima همچنین محدودیت های یکپارچه سازی بی نهایت را امکان پذیر می کند. برای انجام این کار، از مقادیر "-inf" و "inf" برای آرگومان های سوم و چهارم تابع استفاده می شود:

برای یافتن مقدار تقریبی انتگرال به شکل عددی، همانطور که قبلا ذکر شد، باید نتیجه را در سلول خروجی انتخاب کنید و آن را فراخوانی کنید. منوی زمینهو آیتم "To Float" را از آن انتخاب کنید (تبدیل به یک عدد ممیز شناور).

این سیستم همچنین قادر به محاسبه انتگرال های متعدد است. برای انجام این کار، توابع ادغام یکی در دیگری تودرتو هستند. در زیر نمونه هایی از محاسبه انتگرال مضاعف نامعین و انتگرال مضاعف معین آورده شده است:


حل معادلات دیفرانسیل

ماکسیما از نظر توانایی هایش در حل معادلات دیفرانسیل به طور محسوسی از مثلاً Maple پایین تر است. اما ماکسیما هنوز به شما اجازه می دهد معادلات دیفرانسیل مرتبه اول و دوم معمولی و همچنین سیستم های آنها را حل کنید. برای این کار بسته به هدف از دو تابع استفاده می شود. برای حل کلی معادلات دیفرانسیل معمولی از تابع ode2 و برای یافتن جواب معادلات یا سیستم معادلات بر اساس شرایط اولیه از تابع desolve استفاده می شود.

تابع ode2 دارای نحو زیر است:

ode2 (معادله، متغیر وابسته، متغیر مستقل)؛

تابع diff برای نشان دادن مشتقات در معادلات دیفرانسیل استفاده می شود. اما در این حالت برای نمایش وابستگی یک تابع به آرگومان آن به صورت “diff(f(x), x) نوشته می شود و خود تابع f(x) است.

مثال. جواب کلی معادله دیفرانسیل مرتبه اول معمولی y" - ax = 0 را پیدا کنید.

اگر مقدار سمت راست معادله صفر باشد، می توان آن را به طور کلی حذف کرد. به طور طبیعی، سمت راست معادله ممکن است حاوی یک عبارت باشد.

همانطور که می بینید، هنگام حل معادلات دیفرانسیل، ماکسیما از ثابت یکپارچه سازی %c استفاده می کند که از نقطه نظر ریاضی، یک ثابت دلخواه است که از شرایط اضافی تعیین می شود.

راه دیگری برای حل یک معادله دیفرانسیل معمولی وجود دارد که برای کاربر راحت تر است. برای این کار دستور Equations > Solve ODE را اجرا کنید و آرگومان های تابع ode2 را در پنجره Solve ODE وارد کنید.

ماکسیما به شما اجازه می دهد معادلات دیفرانسیل مرتبه دوم را حل کنید. برای این کار از تابع ode2 نیز استفاده می شود. برای نشان دادن مشتقات در معادلات دیفرانسیل، از تابع diff استفاده می شود که در آن یک آرگومان دیگر اضافه می شود - ترتیب معادله: "diff(f(x)، x، 2). برای مثال، راه حل یک ثانیه معمولی- معادله دیفرانسیل ترتیبی a·y"" + b·y" = 0 به شکل زیر خواهد بود:

همراه با تابع ode2 می توانید از سه تابع استفاده کنید که استفاده از آنها به شما امکان می دهد تا یک راه حل را تحت محدودیت های خاصی بر اساس حل کلی معادلات دیفرانسیل به دست آمده توسط تابع ode2 بیابید:

  1. ic1 (نتیجه تابع ode2، مقدار اولیه متغیر مستقل به شکل x = x 0، مقدار تابع در نقطه x 0 به شکل y = y 0). طراحی شده برای حل یک معادله دیفرانسیل مرتبه اول با شرایط اولیه.
  2. ic2(نتیجه تابع ode2، مقدار اولیه متغیر مستقل به شکل x = x 0، مقدار تابع در نقطه x 0 به شکل y = y 0، مقدار اولیه برای اولین مشتق متغیر وابسته نسبت به متغیر مستقل به شکل (y,x) = dy 0). طراحی شده برای حل یک معادله دیفرانسیل مرتبه دوم با شرایط اولیه
  3. bc2(نتیجه تابع ode2، مقدار اولیه متغیر مستقل به شکل x = x 0، مقدار تابع در نقطه x 0 به شکل y = y 0، مقدار نهایی متغیر مستقل به شکل x = x n، مقدار تابع در نقطه x n به شکل y = y n). طراحی شده برای حل یک مسئله مقدار مرزی برای یک معادله دیفرانسیل مرتبه دوم.

نحو دقیق این توابع را می توان در اسناد سیستم یافت.

اجازه دهید مسئله کوشی را برای معادله مرتبه اول y حل کنیم - ax = 0 با شرط اولیه y(n) = 1.

اجازه دهید مثالی از حل مسئله مقدار مرزی برای یک معادله دیفرانسیل مرتبه دوم y""+y=x با شرایط اولیه y(o) = 0 ارائه دهیم. y(4)=1.

باید در نظر داشت که اغلب سیستم نمی تواند معادلات دیفرانسیل را حل کند. به عنوان مثال، هنگام تلاش برای یافتن یک راه حل کلی برای یک معادله دیفرانسیل مرتبه اول معمولی، به دست می آوریم:

در چنین مواردی، ماکسیما یا پیغام خطا صادر می کند (مانند این مثال) یا به سادگی "false" را برمی گرداند.

گزینه دیگری برای حل معادلات دیفرانسیل مرتبه اول و دوم معمولی برای یافتن راه حل هایی با شرایط اولیه طراحی شده است. با استفاده از تابع desolve پیاده سازی می شود.

نحو توابع:

حل کردن (معادله دیفرانسیل، متغیر)؛

اگر سیستمی از معادلات دیفرانسیل حل شود یا چندین متغیر وجود داشته باشد، معادله و/یا متغیرها در قالب یک لیست ارائه می‌شوند:

desolve([لیست معادلات]، [متغیر1، متغیر2،...]);

مانند نسخه قبلی، تابع diff برای نشان دادن مشتقات در معادلات دیفرانسیل استفاده می شود که به شکل "diff(f(x)، x) است.

مقادیر اولیه برای یک متغیر توسط تابع atvalue ارائه می شود. این تابع دارای نحو زیر است:

atvalue (تابع، متغیر = نقطه، مقدار در نقطه)؛

در این مورد، شرط می شود که مقادیر توابع و (یا) مشتقات آنها صفر باشد، بنابراین نحو تابع atvalue به صورت زیر است:

atvalue (تابع، متغیر = 0، مقدار در نقطه "0")؛

مثال. جواب معادله دیفرانسیل مرتبه اول y"=sin(x) را با شرط اولیه پیدا کنید.

توجه داشته باشید که حتی اگر شرایط اولیه وجود نداشته باشد، تابع نیز کار می کند و نتیجه را ایجاد می کند:

این اجازه می دهد تا محلول برای یک مقدار اولیه خاص آزمایش شود. در واقع، با جایگزینی مقدار y(0) = 4 به نتیجه حاصل، y(x) = 5 - cos(x) را دریافت می کنیم.

تابع desolve حل سیستم معادلات دیفرانسیل را با شرایط اولیه ممکن می سازد.

اجازه دهید مثالی از حل یک سیستم معادلات دیفرانسیل ارائه دهیم با شرایط اولیه y(0) = 0; z(0) = 1.


پردازش داده ها

تجزیه و تحلیل آماری

این سیستم امکان محاسبه آمار توصیفی آماری پایه را فراهم می کند که با کمک آن کلی ترین ویژگی های داده های تجربی توصیف می شود. آمار توصیفی پایه شامل میانگین، واریانس، انحراف معیار، میانه، حالت، مقادیر حداکثر و حداقل، دامنه تغییرات و چارک ها می باشد. توانایی های ماکسیما در این زمینه تا حدودی متوسط ​​است، اما محاسبه اکثر این آمارها با کمک آن کاملاً آسان است.

ساده ترین راه برای محاسبه آمار توصیفی آماری استفاده از پالت Statistics است.

پانل شامل تعدادی ابزار است که در چهار گروه گروه بندی شده اند.

  1. شاخص های آماری (آمار توصیفی):
    • میانگین (میانگین حسابی)؛
    • میانه (میانگین);
    • واریانس (واریانس)؛
    • انحراف (انحراف استاندارد).
  2. تست ها
  3. ساخت پنج نوع نمودار:
    • هیستوگرام در درجه اول در آمار برای به تصویر کشیدن سری های بازه ای توزیع ها استفاده می شود. در طول ساخت آن، قطعات یا فرکانس ها در امتداد محور ارتین رسم می شوند و مقادیر صفت بر روی محور آبسیسا رسم می شوند.
    • نمودار پراکندگی (نمودار همبستگی، میدان همبستگی، نمودار پراکندگی) - نموداری از نقاط زمانی که نقاط به هم متصل نمی شوند. برای نمایش داده ها برای دو متغیر استفاده می شود که یکی از آنها یک عامل و دیگری یک نتیجه است. با کمک آن، یک نمایش گرافیکی از جفت داده ها در قالب مجموعه ای از نقاط ("ابرها") در صفحه مختصات انجام می شود.
    • نمودار میله ای - یک نمودار به شکل ستون های عمودی.
    • نمودار بخش یا دایره (Pie Chart). چنین نموداری به چندین بخش - بخش تقسیم می شود که مساحت هر یک از آنها متناسب با قسمت آنها است.
    • طرح جعبه (جعبه با سبیل، جعبه با سبیل، نمودار جعبه، نمودار جعبه و سبیل). اغلب برای نمایش داده های آماری استفاده می شود. اطلاعات این نمودار بسیار آموزنده و مفید است. به طور همزمان چندین مقدار را نشان می دهد که مجموعه تغییرات را مشخص می کند: مقادیر حداقل و حداکثر، میانگین و میانه، چارک اول و سوم.
  4. ابزارهایی برای خواندن یا ایجاد یک ماتریس. برای استفاده از ابزار پالت، باید داده های اولیه را در قالب یک ماتریس داشته باشید - یک آرایه یک بعدی. می‌توانید آن را در سند با جلسه فعلی ایجاد کنید و متعاقباً نام آن را به عنوان ورودی در پنجره‌های ابزار پالت جایگزین کنید، مانند حل معادلات با استفاده از پنل عمومی ریاضی. همچنین می توانید مستقیماً داده ها را در پنجره های ورودی داده های ورودی وارد کنید. در این حالت به شکل پذیرفته شده در سیستم یعنی در کروشه وارد می شوند و با کاما از هم جدا می شوند. واضح است که گزینه اول بسیار بهتر است، زیرا فقط نیاز به یک بار ورود اطلاعات دارد.

علاوه بر پانل، تمام ابزارهای آماری نیز با استفاده از توابع مربوطه قابل استفاده هستند.

© 2024 ermake.ru -- درباره تعمیر رایانه شخصی - پورتال اطلاعاتی