آموزش Maple

مدیر انجمن: parse

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

آموزش Maple

پست توسط user8604 »

در این تایپیک یکم میپل یاد میگیریم و پرسشهامون رو میزاریم شاید یکی بیکار بود جواب داد!
اول برید maple 15 رو از لینک زیر یا لینک دیگر دانلود کنید.
http://www.freedownload.ir/img24/Maples ... fdl.ir.txt

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

خوب . جلسه ی اول:
ابتدا با دستور خیلی مهم و کلیدی "restart" آشنا میشیم.
این دستور رو ابتدای هر برنامتون بنویسید تا داده های برنامه ی قبلی رستارت بشود. فرم این دستور به شکل زیر است:
restart;
ادامه ی آموزش در هفته ی آینده!
-------------------------------
مشق شب :
برنامه ای بنویسید که داده های برنامه ی قبلی رو رستارت کند.
smile021

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

خوب چون تشکر شد . من بیشتر ذکات علمم رو میپردازم.
در این برنامه بعد از زدن کلمه ی اینتر برنامه اجرا میشود . برای اینکه خط جدیدی در برنامه داشته باشید بدون اینکه برنامه اجرا شود باید دکمه ی shift رو بگیرید و بعد اینتر بزنید .
بعد از هر دستوری که استفاده میکنید باید " ; " بزارید. بعضی اوقات نمیخواید خروجی برنامتون کثیف باشه! در این صورت به جای " ; " از " : " استفاده میکنید. اینطوری دستور اجرا میشه ولی نتیجش نمایش داده نمیشه . خروجی هاتون تمیز میشن.
برای کامنت گزاشتن توی برنامه از کاراکتر # استفاده میکنید.
دستورات رو داخل صفحاتی از نوع worksheet بنویسید عزیزان من ! آفرین.
بعد از دستور restart , باید package های مورد نیاز خودتون رو فراخوانی کنید . اون هم با دستور زیر:
with(PackageName)
مثلا من پکیج فیزیک رو فراخوانی میکنم:
with(Physics)
اگر بعد از فراخوانی " ; " بزارم و بخوام نتیجه رو ببینم اینا رو نشون میده:
[`*`, `.`, Annihilation, AntiCommutator, Bra, Bracket, Check, Commutator, Coordinates, Creation, Dagger, Define, Dgamma, FeynmanDiagrams, Fundiff, Intc, Inverse, Ket, delta, LeviCivita, Parameters, Projector, Psigma, Setup, Simplify, SpaceTimeVector, Trace, Vectors, `^`, dAlembertian, d_, diff, g_]
یعنی من با این پکیج کارهای فوق رو میتونم انجام بدم. ولی خوب چون من نمیخوام خروجیم کثیف بشه به جای " ; " از " : " استفاده میکنم.
.مشق شب نداریم این دفعه . خوش باشید .

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

جلسه 3 : معرفی package ها . ساختن package های شخصی.(personalize):
-----------------------------------------------
برای پیدا کردن پکیج هایی که توی میپل وجود داره باید توی help برنامه این عبارت رو سرچ میکنید : "index,package"
میتونید پکیج های شخصی بسازید.که توضیحش از حوصله ی تایپیک خارج است!
اول با پکیج مهم student شروع میکنیم.
restart; with(student);
فراموش نشه دستور ها بعد از "<" نوشته بشه.
نتیجه :
[D, Diff, Doubleint, Int, Limit, Lineint, Product, Sum, Tripleint, changevar, completesquare, distance, equate, integrand, intercept, intparts, leftbox, leftsum, makeproc, middlebox, middlesum, midpoint, powsubs, rightbox, rightsum, showtangent, simpson, slope, summand, trapezoid]
یعنی با این پکیج اون کارها رو میشه انجام داد. که کم کم تا توضیح میدیم و مثال میزنیم:

1. D
به 3 تا درد میخوره .
اول تابع رو به صورت مقابل تعریف میکنیم.
f := unapply(x^4+sin(x), x)
الف=مشتق گیری معمولی:
مشتق مرتبه ی سوم رو به اینطوری مینویسیم:
(D@@3)(f)
و اینطوری جواب میگیریم:
24*x-cos(x)
ب -مشتق در نقطه:
مثلا در نقطه ی 1/10 واسه مشتق همون تابع میشه:
((D@@3)(f))(1/10)
و جواب میده:
12/5-cos(1/10)
ج. مشتق جزیی:روش های بهتری هست . برای همین این موردش از حوصله خارج است.

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

جلسه 3.1
2.بررسی Diff:
هشدار:حروف کوچک و بزرگ در این زبان خیلی باهم فرق دارن!

-اگر بنویسم :
Diff(sin(x)*exp(x), x)
در صفحه ی نمایش فقط شکل اون دیفرانسیل رو نشون میده ولی هیچ مشتقی نمیگیره.

-اگر بنویسم
diff(sin(x)*exp(x), x)
مشتق رو حساب میکنه و جواب رو در خروجی نشون میده:
cos(x)*exp(x)+sin(x)*exp(x)
میتونستم تابع رو اول تعریف کنم . و بعد بدم داخل دیفرانسیل. اینطوری:
f := sin(x)*exp(x); diff(f, x);
نکته:
unapply(f,x)
برای میپل مشخص میکنه که متغییر تابع من x است. ولی چون در دستور diff مستقیما باید پارامتر مشتق گیری رو وارد کنیم از دستور unapply برای تعریف تابعمون استفاده نکردیم.
-مشتق مرتبه های بعد:
میتونیم به این صورت مشتق مرتبه ی 2رو تعریف کنیم :
diff(diff(sin(x)*exp(x), x), x)
که جواب میده:
2*cos(x)*exp(x)
برای مشتق های بعدی هم میتونیم مثل احمق ها پشت سر هم diff بزاریم و یا از دستور زیر استفاده کنیم:
این کد نشون میده که ما از تابع داریم 15 بار نسبت به متغییر x مشتق میگیریم .
diff(sin(x)*exp(x),x$15);
-مشتق جزیی:
در مثال زیر اول 2 بار نسبت x مشتق میگیرم . بعد 2بار نسبت به y و 1بار هم نسبت به z.
diff(sin(x*z)*exp(x+y),[x$2,y$2,z]);
که جواب میده:
-cos(x*z)*x*z^2*exp(x+y)-2*sin(x*z)*z*exp(x+y)-2*sin(x*z)*x*z*exp(x+y)+2*cos(x*z)*exp(x+y)+cos(x*z)*x*exp(x+y)
-مقدار دهی در تابع مشتق:
برای تابع مشتق اسم f1 انتخاب میکنم.که بعدا بتونم راحت باهاش کار کنم.
f := sin(x*z)*exp(x+y)
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
دستور subs برای مقدار دهیست.
f2 := subs({x = 1/2, y = 1, z = 2}, f1)
تابلویه که در یک نقطه ی خاص مشتق رو به دست آوردم. جواب میشه:
f2 := (1/2)*cos(1)*exp(3/2)-6*sin(1)*exp(3/2)
برای اینکه یک مقدار به من بده دستور evalf رو میچسبونم پشتش.
f3 := evalf(f2)
جواب نهایی: -21.41653442
----------------
خوب دیگه . خسته نباشم.

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

خیلی عجیبه ! چرا نمیشه edit کرد؟
مثل اینکه فقط Vanda طرفدار این زبانه. پس فعلا چیزی نمینویسم.

نمایه کاربر
Vanda

عضویت : پنج‌شنبه ۱۳۸۷/۴/۱۳ - ۱۸:۴۷


پست: 321

سپاس: 71

Re: آموزش Maple

پست توسط Vanda »

باسلام smile072

بفرما !يه بارم(تاجاييكه يادمه! smile039 ) edwardfurlongخواست يه پست آموزنده بذاره زديدو .....!
edwardfurlong نوشته شده:پس فعلا چیزی نمینویسم.
يه بارم ك ما خاستيم مث يه بچه خوب ميپل ياد بگيريم زديد و....! smile049
شما ادامه بده جناب .... smile072

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

Vanda نوشته شده:باسلام smile072

بفرما !يه بارم(تاجاييكه يادمه! smile039 ) edwardfurlongخواست يه پست آموزنده بذاره زديدو .....!
edwardfurlong نوشته شده:پس فعلا چیزی نمینویسم.
يه بارم ك ما خاستيم مث يه بچه خوب ميپل ياد بگيريم زديد و....! smile049
شما ادامه بده جناب .... smile072
به شرطی که مشقاتو انجام بدی.
------------------------------
جلسه 3.2 (انتگرال گیری)
Doubleint یک دستوری به درد نخوره. واسه گرفتن انتگرال دوگانه در یک سطح بسته. نمونه ی تکامل یافتش میشه MultiInt .ولی ما فقط با استفاده از دستور int انتگرال میگیریم و ینازی به یادگیری دستور های مزخرف فوق نداریم.
-----------------
فرم کلیش میشه به شکل زیر:
int(function,variable)
دقت کنید که Int اگر بزاریم انتگرال حساب نمیشه فقط به صورتی که خودمون انتگرال رو میکشیم نشون داده میشه!
اگرم بخوام انتگرال معین بگیرم باید حدود رو روبه روی متغییر مشخص کنم. میتونم تابع رو مستقیم تو انتگرال بنویسم . میتونم اول تعریف کنم تابع رو بعد بزارمش توی انتگرال. مثل زیر:
f := cos(x)*exp(x)
برای برابر قرار دادن و یا مقدار دهی به یک متغییر از =: استفاده کردم. اگر = خالی بزارید error میگیرید.
حالا اول انتگرال نامعین میگیرم:
g := int(f, x)
که جواب میده:
g := (1/2)*cos(x)*exp(x)+(1/2)*sin(x)*exp(x)
بعد انتگرال معین میگیرم :
g := evalf(int(f, x = -20 .. 13))
evalf رو هم که میدونید واسه چی انداختم پشتش!
اگر نمیدونید پست قبلی رو بخونید پس.
جواب :
g := 2.936770664*10^5

-انتگرال چند گانه.
تنها کاری که کافیه بکنیم اینه که چند تا انتگرال پشت هم بیاریم!
مثل زیر:
اول تعریف تابع:
f := cos(x)*exp(x)*sin(y)
اول از x میخوام انتگرال بگیرم بعد از y:
انتگرال معینش:
g := int(int(f, x), y)
جواب:
g := -cos(y)*((1/2)*cos(x)*exp(x)+(1/2)*exp(x)*sin(x))
شکل نامعینش:
g := evalf(int(int(f, x = -2 .. 3), y = -3 .. 2))
جواب:
g := 4.840583346

انتگرال های چند گانه: چند تا انتگرال میزاریم پشت سر هم.

مشق شب.
با استفاده از این دستور حجم یک کره به شعاع 1 رو پیدا کنید!
راهنمایی: حدود انتگرال لازم نیست حتما عدد ثابت باشن! میتونید متغییر استفاده کنید.
راهنمایی بیشتر: از اطلاعاتتون در ریاضی عمومی 1 یا 2 استفاده کنید!
راهنمایی بازم بیشتر: باید رابطه ی ای که متغییر ها در کره دارن رو به طور صحیح در حدود انتگرال سه گانتون استفاده کنید.

-----------
هشدار: باید در همین مختصات دکارتی حل کنید . حق ندارید به مختصات کروی ببرید!

نمایه کاربر
کاوه

نام: (radical) سابق

محل اقامت: تهران

عضویت : چهارشنبه ۱۳۸۶/۳/۲ - ۱۵:۳۱


پست: 2379

سپاس: 102

جنسیت:

تماس:

Re: آموزش Maple

پست توسط کاوه »

edwardfurlong نوشته شده:خیلی عجیبه ! چرا نمیشه edit کرد؟
مثل اینکه فقط Vanda طرفدار این زبانه. پس فعلا چیزی نمینویسم.
درود

ویرایش یک روز فعال هست

چیزی بود بگو مدیران ویرایش کنند
[center]کاربر گرامی در صورت مشاهده پستهای ناقض قوانین آن را توسط کلید ! به مدیریت اطلاع دهید

نمایه کاربر
Vanda

عضویت : پنج‌شنبه ۱۳۸۷/۴/۱۳ - ۱۸:۴۷


پست: 321

سپاس: 71

Re: آموزش Maple

پست توسط Vanda »

اولا: ممنون ادامه داديد smile072
دويما:
edwardfurlong نوشته شده:به شرطی که مشقاتو انجام بدی.
smile034 باشه سعي ميكنم! smile001
edwardfurlong نوشته شده:مشق شب.
با استفاده از این دستور حجم یک کره به شعاع 1 رو پیدا کنید!
بايد مشقمو تحويل بدم؟؟ smile042 يعني بذارمش اينجا؟يا هويجوري واسه خودم بنويسم بذارم لاي دفتر خاطراتم؟! smile039

نمایه کاربر
Vanda

عضویت : پنج‌شنبه ۱۳۸۷/۴/۱۳ - ۱۸:۴۷


پست: 321

سپاس: 71

Re: آموزش Maple

پست توسط Vanda »

سلام استاد! smile015
همه رو خوندم و انجام دادم... smile015
3 تا سوال....
1)من كاربرد دستور restart رو نفهميدم. يني اگه ننويسيم چي ميشه؟واسه من ك هيچي نشد!.كدوم داده ها رو رستارت ميكنه؟ smile023
2)در رابطه با مشتق جزيي يه بار نوشتيد
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
يه بارم نوشتيد
diff(sin(x*z)*exp(x+y),[x$2,y$2,z]);
جوابش يكي ميشه ولي خواستم ببينم دليل خاصي داشت؟ smile042
ودر آخر
3)من ميپل 12 دارم فرق زيادي ميكنه با ور‍ژن 15ش؟
منتظر درس ها وپندهاي بعدي شما هستيم! smile039
خداقوت! smile034
smile072

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

Vanda نوشته شده:1)من كاربرد دستور restart رو نفهميدم. يني اگه ننويسيم چي ميشه؟واسه من ك هيچي نشد!.كدوم داده ها رو رستارت ميكنه؟ smile023
کاربرد:
1.فرض کن توی یک worksheetبخوای 2 تا برنامه بنویسی. اونوقت لازم داشته باشی که کل متغییر هایی که قبلا تعریف کردی رستارت بشن .
2.فرض کن میخوای worksheet رو به طور کامل پاک کن .و توش یک برنامه جدید بنویسی. ولی اگر رستارت نکنی . تمام داده هایی که مقدار گرفتن مقداراشون رو دارن . مثلا اگر بنویسی x و اینتر بزنی .آخرین مقداری که x گرفته برات نشون داده میشه. و این خیلی افتضاحه!
پس اون کلمه ی کلیدی رو یادت نره.
Vanda نوشته شده:)در رابطه با مشتق جزيي يه بار نوشتيد
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])

يه بارم نوشتيد
diff(sin(x*z)*exp(x+y),[x$2,y$2,z]);
اون دومیه درسته. اولیه وقتی کپیش کردم تو هوپا تغییر شکل داد! یادم رفت edit کنم. اون چیزی بود که میخواست تغییر بدم. درست به فرم اینه:
,[x$2,y$2,z]
یعنی به جای
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
باید نوشته بشه:
f1 := diff(f, [x$2, y$2, z])
Vanda نوشته شده:)من ميپل 12 دارم فرق زيادي ميكنه با ور‍ژن 15ش؟
چرا . میپل هر ورژن جدیدش با قبلی خیلی فرق داره.گمان کنم قسمت مربوط به "فراکتال ها " فقط تو ورژن 15 باشه.
Vanda نوشته شده:ايد مشقمو تحويل بدم؟؟ smile042 يعني بذارمش اينجا؟
آره. چون به درخواست تو دارم ادامه میدم باید همشو انجام بدی . و سورساتو بزاری تا ببینم.

نمایه کاربر
Vanda

عضویت : پنج‌شنبه ۱۳۸۷/۴/۱۳ - ۱۸:۴۷


پست: 321

سپاس: 71

Re: آموزش Maple

پست توسط Vanda »

> f := 1;
1
> g := int(int(int(f, x), y), z);
x y z
> g := int(int(int(f, z = -sqrt(1-x^2-y^2) .. sqrt(1-x^2-y^2)), y = -sqrt(1-x^2) .. sqrt(1-x^2)), x = -1 .. 1);
4/3Pi
> NULL;
تمرين اضافه هم نوشتم:!مساحت دايره:

> s := 1;
1
> int(int(s, x = -sqrt(1-y^2) .. sqrt(1-y^2)), y = -1 .. 1);
Pi
منم ك كپي پيست ميكنم يكم تو هوپا قاطي ميشه smile024 خودم يجوري يكمي درستش كردم ...
نميدونم درست شديا نه!؟ smile042
راستي بعضي وقتا كه تو ميپل اينتر رو ميزنم بجا4/3pi مي نويسه 4/3fpi??!!چرااا؟ smile039
حالا اصن درسته يا نه؟ smile031
درباره restart هم ممنون smile072 مشتق جزيييه!هم بااون اوليه هم جواب ميداد!

user8604

عضویت : چهارشنبه ۱۳۸۵/۱۲/۹ - ۱۷:۳۱


پست: 3288

سپاس: 875

Re: آموزش Maple

پست توسط user8604 »

Vanda نوشته شده:راستي بعضي وقتا كه تو ميپل اينتر رو ميزنم بجا4/3pi مي نويسه 4/3fpi??!!چرااا؟
وقتی یک چیزی رو توی برنامه عوض میکنی . باید از ابتدا کل دستورها رو دوباره اجرا کنی. ویا دکمه ی " !!! " که بالای منوست رو فشار بدی. تا خود به خود تمام خط ها رو اجرا کنه.
فرم کلیش رو به دست بیار. برحسب r.

نمایه کاربر
Vanda

عضویت : پنج‌شنبه ۱۳۸۷/۴/۱۳ - ۱۸:۴۷


پست: 321

سپاس: 71

Re: آموزش Maple

پست توسط Vanda »

edwardfurlong نوشته شده:فرم کلیش رو به دست بیار. برحسب r.
> f := 1;
1
> g := int(int(int(f, x), y), z);
x y z
> g := int(int(int(f, z = -sqrt(R^2-x^2-y^2) .. sqrt(R^2-x^2-y^2)), y = -sqrt(R^2-x^2) .. sqrt(R^2-x^2)), x = -R .. R);
4/3PiR^3
smile042

ارسال پست