آموزش Maple
آموزش Maple
در این تایپیک یکم میپل یاد میگیریم و پرسشهامون رو میزاریم شاید یکی بیکار بود جواب داد!
اول برید maple 15 رو از لینک زیر یا لینک دیگر دانلود کنید.
http://www.freedownload.ir/img24/Maples ... fdl.ir.txt
اول برید maple 15 رو از لینک زیر یا لینک دیگر دانلود کنید.
http://www.freedownload.ir/img24/Maples ... fdl.ir.txt
Re: آموزش Maple
خوب . جلسه ی اول:
ابتدا با دستور خیلی مهم و کلیدی "restart" آشنا میشیم.
این دستور رو ابتدای هر برنامتون بنویسید تا داده های برنامه ی قبلی رستارت بشود. فرم این دستور به شکل زیر است:
-------------------------------
مشق شب :
برنامه ای بنویسید که داده های برنامه ی قبلی رو رستارت کند.
ابتدا با دستور خیلی مهم و کلیدی "restart" آشنا میشیم.
این دستور رو ابتدای هر برنامتون بنویسید تا داده های برنامه ی قبلی رستارت بشود. فرم این دستور به شکل زیر است:
restart;
ادامه ی آموزش در هفته ی آینده!-------------------------------
مشق شب :
برنامه ای بنویسید که داده های برنامه ی قبلی رو رستارت کند.
Re: آموزش Maple
خوب چون تشکر شد . من بیشتر ذکات علمم رو میپردازم.
در این برنامه بعد از زدن کلمه ی اینتر برنامه اجرا میشود . برای اینکه خط جدیدی در برنامه داشته باشید بدون اینکه برنامه اجرا شود باید دکمه ی shift رو بگیرید و بعد اینتر بزنید .
بعد از هر دستوری که استفاده میکنید باید " ; " بزارید. بعضی اوقات نمیخواید خروجی برنامتون کثیف باشه! در این صورت به جای " ; " از " : " استفاده میکنید. اینطوری دستور اجرا میشه ولی نتیجش نمایش داده نمیشه . خروجی هاتون تمیز میشن.
برای کامنت گزاشتن توی برنامه از کاراکتر # استفاده میکنید.
دستورات رو داخل صفحاتی از نوع worksheet بنویسید عزیزان من ! آفرین.
بعد از دستور restart , باید package های مورد نیاز خودتون رو فراخوانی کنید . اون هم با دستور زیر:
.مشق شب نداریم این دفعه . خوش باشید .
در این برنامه بعد از زدن کلمه ی اینتر برنامه اجرا میشود . برای اینکه خط جدیدی در برنامه داشته باشید بدون اینکه برنامه اجرا شود باید دکمه ی 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_]
یعنی من با این پکیج کارهای فوق رو میتونم انجام بدم. ولی خوب چون من نمیخوام خروجیم کثیف بشه به جای " ; " از " : " استفاده میکنم..مشق شب نداریم این دفعه . خوش باشید .
Re: آموزش Maple
جلسه 3 : معرفی package ها . ساختن package های شخصی.(personalize):
-----------------------------------------------
برای پیدا کردن پکیج هایی که توی میپل وجود داره باید توی help برنامه این عبارت رو سرچ میکنید : "index,package"
میتونید پکیج های شخصی بسازید.که توضیحش از حوصله ی تایپیک خارج است!
اول با پکیج مهم student شروع میکنیم.
نتیجه :
1. D
به 3 تا درد میخوره .
اول تابع رو به صورت مقابل تعریف میکنیم.
مشتق مرتبه ی سوم رو به اینطوری مینویسیم:
مثلا در نقطه ی 1/10 واسه مشتق همون تابع میشه:
-----------------------------------------------
برای پیدا کردن پکیج هایی که توی میپل وجود داره باید توی 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)
ج. مشتق جزیی:روش های بهتری هست . برای همین این موردش از حوصله خارج است.Re: آموزش Maple
جلسه 3.1
2.بررسی Diff:
هشدار:حروف کوچک و بزرگ در این زبان خیلی باهم فرق دارن!
-اگر بنویسم :
-اگر بنویسم
-مشتق مرتبه های بعد:
میتونیم به این صورت مشتق مرتبه ی 2رو تعریف کنیم :
این کد نشون میده که ما از تابع داریم 15 بار نسبت به متغییر x مشتق میگیریم .
در مثال زیر اول 2 بار نسبت x مشتق میگیرم . بعد 2بار نسبت به y و 1بار هم نسبت به z.
برای تابع مشتق اسم f1 انتخاب میکنم.که بعدا بتونم راحت باهاش کار کنم.
----------------
خوب دیگه . خسته نباشم.
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----------------
خوب دیگه . خسته نباشم.
Re: آموزش Maple
خیلی عجیبه ! چرا نمیشه edit کرد؟
مثل اینکه فقط Vanda طرفدار این زبانه. پس فعلا چیزی نمینویسم.
مثل اینکه فقط Vanda طرفدار این زبانه. پس فعلا چیزی نمینویسم.
Re: آموزش Maple
باسلام
بفرما !يه بارم(تاجاييكه يادمه! ) edwardfurlongخواست يه پست آموزنده بذاره زديدو .....!
شما ادامه بده جناب ....
بفرما !يه بارم(تاجاييكه يادمه! ) edwardfurlongخواست يه پست آموزنده بذاره زديدو .....!
يه بارم ك ما خاستيم مث يه بچه خوب ميپل ياد بگيريم زديد و....!edwardfurlong نوشته شده:پس فعلا چیزی نمینویسم.
شما ادامه بده جناب ....
Re: آموزش Maple
به شرطی که مشقاتو انجام بدی.Vanda نوشته شده:باسلام
بفرما !يه بارم(تاجاييكه يادمه! ) edwardfurlongخواست يه پست آموزنده بذاره زديدو .....!يه بارم ك ما خاستيم مث يه بچه خوب ميپل ياد بگيريم زديد و....!edwardfurlong نوشته شده:پس فعلا چیزی نمینویسم.
شما ادامه بده جناب ....
------------------------------
جلسه 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]کاربر گرامی در صورت مشاهده پستهای ناقض قوانین آن را توسط کلید ! به مدیریت اطلاع دهید
Re: آموزش Maple
اولا: ممنون ادامه داديد
دويما:
دويما:
باشه سعي ميكنم!edwardfurlong نوشته شده:به شرطی که مشقاتو انجام بدی.
بايد مشقمو تحويل بدم؟؟ يعني بذارمش اينجا؟يا هويجوري واسه خودم بنويسم بذارم لاي دفتر خاطراتم؟!edwardfurlong نوشته شده:مشق شب.
با استفاده از این دستور حجم یک کره به شعاع 1 رو پیدا کنید!
Re: آموزش Maple
سلام استاد!
همه رو خوندم و انجام دادم...
3 تا سوال....
1)من كاربرد دستور restart رو نفهميدم. يني اگه ننويسيم چي ميشه؟واسه من ك هيچي نشد!.كدوم داده ها رو رستارت ميكنه؟
2)در رابطه با مشتق جزيي يه بار نوشتيد
ودر آخر
3)من ميپل 12 دارم فرق زيادي ميكنه با ورژن 15ش؟
منتظر درس ها وپندهاي بعدي شما هستيم!
خداقوت!
همه رو خوندم و انجام دادم...
3 تا سوال....
1)من كاربرد دستور restart رو نفهميدم. يني اگه ننويسيم چي ميشه؟واسه من ك هيچي نشد!.كدوم داده ها رو رستارت ميكنه؟
2)در رابطه با مشتق جزيي يه بار نوشتيد
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
يه بارم نوشتيد
diff(sin(x*z)*exp(x+y),[x$2,y$2,z]);
جوابش يكي ميشه ولي خواستم ببينم دليل خاصي داشت؟ ودر آخر
3)من ميپل 12 دارم فرق زيادي ميكنه با ورژن 15ش؟
منتظر درس ها وپندهاي بعدي شما هستيم!
خداقوت!
Re: آموزش Maple
کاربرد:Vanda نوشته شده:1)من كاربرد دستور restart رو نفهميدم. يني اگه ننويسيم چي ميشه؟واسه من ك هيچي نشد!.كدوم داده ها رو رستارت ميكنه؟
1.فرض کن توی یک worksheetبخوای 2 تا برنامه بنویسی. اونوقت لازم داشته باشی که کل متغییر هایی که قبلا تعریف کردی رستارت بشن .
2.فرض کن میخوای worksheet رو به طور کامل پاک کن .و توش یک برنامه جدید بنویسی. ولی اگر رستارت نکنی . تمام داده هایی که مقدار گرفتن مقداراشون رو دارن . مثلا اگر بنویسی x و اینتر بزنی .آخرین مقداری که x گرفته برات نشون داده میشه. و این خیلی افتضاحه!
پس اون کلمه ی کلیدی رو یادت نره.
اون دومیه درسته. اولیه وقتی کپیش کردم تو هوپا تغییر شکل داد! یادم رفت edit کنم. اون چیزی بود که میخواست تغییر بدم. درست به فرم اینه:Vanda نوشته شده:)در رابطه با مشتق جزيي يه بار نوشتيد
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
يه بارم نوشتيد
diff(sin(x*z)*exp(x+y),[x$2,y$2,z]);
,[x$2,y$2,z]
یعنی به جای
f1 := diff(f, [`$`(x, 2), `$`(y, 2), z])
باید نوشته بشه:
f1 := diff(f, [x$2, y$2, z])
چرا . میپل هر ورژن جدیدش با قبلی خیلی فرق داره.گمان کنم قسمت مربوط به "فراکتال ها " فقط تو ورژن 15 باشه.Vanda نوشته شده:)من ميپل 12 دارم فرق زيادي ميكنه با ورژن 15ش؟
آره. چون به درخواست تو دارم ادامه میدم باید همشو انجام بدی . و سورساتو بزاری تا ببینم.Vanda نوشته شده:ايد مشقمو تحويل بدم؟؟ يعني بذارمش اينجا؟
Re: آموزش Maple
> 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
منم ك كپي پيست ميكنم يكم تو هوپا قاطي ميشه خودم يجوري يكمي درستش كردم ...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
نميدونم درست شديا نه!؟
راستي بعضي وقتا كه تو ميپل اينتر رو ميزنم بجا4/3pi مي نويسه 4/3fpi??!!چرااا؟
حالا اصن درسته يا نه؟
درباره restart هم ممنون مشتق جزيييه!هم بااون اوليه هم جواب ميداد!
Re: آموزش Maple
وقتی یک چیزی رو توی برنامه عوض میکنی . باید از ابتدا کل دستورها رو دوباره اجرا کنی. ویا دکمه ی " !!! " که بالای منوست رو فشار بدی. تا خود به خود تمام خط ها رو اجرا کنه.Vanda نوشته شده:راستي بعضي وقتا كه تو ميپل اينتر رو ميزنم بجا4/3pi مي نويسه 4/3fpi??!!چرااا؟
فرم کلیش رو به دست بیار. برحسب r.
Re: آموزش Maple
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
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