تبليغاتX
Mathematica

Mathematica

آموزش نرم افزار mathematica

Mathematica چیست؟

Mathematica یک نرم افزار جامع برای انجام محاسبات علوم کاربردی و فنی می باشد .

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

-          استفاده بهینه تر نسبت به ماشین حسابهای الکترونیکی برای انجام محاسبات عددی و نمادی و اعلان نتایج .

-          محیط واقعی برای عملیات روی توابع و رابطه ها .

-          زبان سطح بالای برنامه نویسی که به کمک آن می توان برنامه های کوچک و بزرگ نوشت .

-          محیطی مناسب برای پردازش و آنالیز داده ها .

-          محیطی مناسب برای ترکیب متن ، صدا ، گرافیک و انیمیشن ( متحرک سازی )

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

 

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

با ثبت Enter  یک بلاک همراه با علامت | آماده قبول دستور می شود ، یعنی به صورت :

بعد از ورود با ظاهر شدن علامت | دستور را وارد کنید . برای اجرا از Shift-Enter استفاده کنید ، اگر دستورتان صحیح باشد دستور در یک بلاک زیر علامت In[1]:=  ، جواب در یک بلاک دیگر زیر علامت Out [1]= و در نهایت دو بلاک در یک بلاک کلی دیگر قرار می گیرند . سپس با یک خط افقی از صفحه کل جدا می شود . با ثبت Eneter  خط حذف و یک بلاک جدید ظاهر می شود همراه با علامت | برای قبول دستور جدید ، و ...

مثلا با تایپ 2+7  جلوی علامت | و ثبت Shift-Enter  داریم :

 

دسترسی به اطلاعات دستورات Mathematica

برای دیدن دستورات یا لیست یک سری از دستورات خاص یا کل دستورات از علامت ؟ استفاده می کنیم .

 

لیست تمام دستورات Mathematica          …..  ?*

لیست تمام دستورات که با حرف N  شروع می شوند ..... ?N*

اطلاعاتی در مورد فرم دستور و نحوه استفاده از دستور .....Name

اطلاعات بیشتر در مورد دستور Name  ..... ??Name

مثال :

 

دسترسی به اطلاعات قبلی

اغلب در انجام اعمال با Mathematica  نتایج بدست آمده قبلی مورد نیاز می باشد ، برای این منظور از کاراکتر % استفاده می گردد .

آخرین نتیجه قبلی ..... %

دومین نتیجه قبلی از آخر ..... %%

K امین نتیجه قبلی از آخر .....  %...%%%( K بار )

خروجی n ام (out[n])  ... %n

ورودی n ام ... In[n]

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:25 قبل از ظهر  توسط دانشجو  | 

1- حساب اعداد

 همانند ماشین حساب های الکترونیکی ، می توانیم محاسبات را با Mathematica  در سطح وسیع تری انجام   دهیم .

اعداد معروف در Mathematica  عبارتند از :

عدد پی ..... Pi

عدد نپر ..... E

عدد موهومی ..... I

بی نهایت ..... Infinity

منهای بی نهایت ..... –Infinity

درجه ..... Degree

 

و همچنین اعمال اصلی محاسباتی در Mathematica عبارتند از :

تقسیم a  بر b ..... a/b

جمع و تفریق a  و b ..... a+b ، a-b

a به توان b  ..... a^b

ضرب a  در b ..... a*b  یا ab

قرینه a ..... –a

 

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

 

چند نکته مهم در مورد متغیرها و عملگر ها :

حاصل ضرب a  در b ..... ab

متغیر ab  معنی می دهد نه b×a ..... ab

a × 5  معنی می دهد ... 5a

 

مثال  :

حاصل جمع دو عدد 767 و 933

933+767

1700

100^21

1267650600228229401496703205376

2^100//N

(محاسبه جواب تقریبی مثال قبل ) 1.26765  10 30…..

 

جایگزینی : مانند ماشین حساب می توان یک عدد را در یک متغیر قرار داد ، و در ادامه کار اسم متغیر نماینده خود عدد می باشد .

 

مقدار value در متغیر x جایگزین می شود ..... x=value

مقدار x در y جایگزین می شود ..... y=x

مقدار x را پاک می کند ..... x=0  Clear[x]

 

مثال  :

به x مقدار 100 را نسبت می دهد ..... x=100

جایگزینی مقدار x در x2+2x+10  ... x^2+2*x+10

جواب ..... 10210

 

توجه : اگر در آخر دستوری (expr) از علامت ; استفاده گردد ، عمل expr انجام می شود اما نمایش داده نمی شود تا زمانی که به دستوری برسیم که ; نداشته باشد .

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:24 قبل از ظهر  توسط دانشجو  | 

2 - نتایج دقیق و تقریبی

 

ماشین حسابهای معمولی محاسبات را با دقت معینی انجام می دهند . ( به طور تقریبی تا 10 رقم ده دهی ) ، اما در نرم افزار Mathematica  نتایج را می توان تا دقت خیلی بالا با تعداد ارقام اختیاری نمایش داد .

 

مقدار تقریبی expr را می دهد .....N[expr]

مقدار عددی expr را تا n رقم به طور تقریبی می دهد ..... N[expr,n]

پیش فرض 5 رقم اعشاری است .

 

مثال  :

نمایش مقدار تقریبی عدد پی تا 20رقم ..... N[pi,20]

3.14159265358979323846

نمایش حاصل جمع 5/2 با 10/3 به صورت کسر متعارفی .... 5/2+10/3

35

__

6

نمایش جواب نمادی قبل به صورت اعشاری ..... N[%]

5.83333

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:21 قبل از ظهر  توسط دانشجو  | 

3-مبنای اعداد

به کمک نرم افزار Mathematica می توان به آسانی عدد را در مبناهای مختلف بدست آورد . می دانیم که ارزش عدد x در مبنای b به صورت زیر است :

 

نمایش تمام ارقام عدد صحیح n در یک لیست ..... IntegerDigits[n]

نمایش عدد صحیحn در مبنای b ..... IntegerDigits[n,b]

نمایش تمام ارقام عدد حقیقی x در یک لیست.....RealDigits[x,b]

نمایش عدد اعشاری x در مبنای b ..... RealDigits[x,b]

 

مثال  :

تعریف ..... n=5478449872

نمایش لیست ارقام عدد n ..... IntegerDigits[n]

{5,4,7,8,4,4,9,8,7,2}

 

نمایش لیست ارقام عدد n در مبنای 16 .....IntegerDigits[n,16]

{1,4,6,8,10,8,2,13,0}

 

نمایش لیست ارقام ، قسمت صحیح و اعشاری عدد x .....RealDigits[x=123.42]

{{1,2,3,4,2},3}

 

نمایش لیست ارقام  عدد x در مبنای 2.....RealDigits[x,2]

{{1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,0},7}

7 رقم آخر ، نشان دهنده مبنای 2 قسمت اعشاری عدد x می باشد .

 

نمایش عدد x در مبنای b به  مبنای 10 .....b^^x

نمایش عدد x در مبنای b ......BaseForm[x,b]

 

مثال:

تبدیل (100110) در مبنای دو به مبنای ده .....2^^100110

38

نمایش عدد 38 در مبنای دو ..... BaseForm[38,2]

100110 2

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:20 قبل از ظهر  توسط دانشجو  | 

4- توابع ریاضی

 

 

در mathematica   دسته وسیعی از توابع می باشند که برخی از آنها عبارتند از :

ریشه دوم x:..... Sqrt[x]

تابع نمایی : ..... Exp[x]

فاکتوریل عدد n: .....n!

لگاریتم طبیعی و لگاریتم در مبنای bعدد مثبت x:..... Log[x],Log[b,x]

 

مثال  :

محاسبه مقدار تقریبی رادیکال 2 تا 10 رقم با معنی .

N[sqrt[2],10]

1.414213562

 

توابع مثلثاتی و معکوس آنها

 

Sin[x] , cos[x] , Tan[x] , Cot[x] , Sec[x] , Csc[x] , ArcSin[x] , ArcCos[x] , …

 

توابع هیچربویک و معکوس آنها

Sinh[x] , Cosh[x] , Tanh[x] , Coth[x] , Sech[x] , Csch[x] , Arcsinh[x] , ArcCosh[x] , …

 

نکاتی در مورد توابع در Mathematica

-     نام همه توابع با حروف بزرگ شروع می شوند و در توابع چند قسمتی شروع هر قسمت نیز با حروف بزرگ می باشد ، مانند Sin[x]  و ArcSin[x] و ... .

-          آرگومانهای توابع داخل براکت *[]* قرار دارد ، مانند Sin[x] و f[x]  و ...

-          آرگومان توابع مثلثاتی بر حسب رادیان محسوب می شود .

 

مثال  :

Sin[Pi/2]+Sin[8.4]

1.8543

 

-          اگر جلوی آرگومان ، Degree قرار دهید ، آرگومان بر حسب درجه منظور می شود .

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

 

برخی دیگر از توابع خاص عبارتند از :

تابع جزء صحیح ، بزرگترین عدد صحیح نابیشتر از x  ..... Floor[x]

تابع کوچکترین عدد صحیح بزرگتر از x ..... Ceiling[x]

تابع قدر مطلق x  ..... Abs[x]

تابع علامت ، 1 برای x>0 و 1- برای x<0  و 0 برای x=0 ..... Sign[x]

تابع ، نزدیکترین عدد صحیح به x ..... Round[x]

 

مثال  : با فرض x=3.14 می خواهیم مقادیر x ، [x] و  را در یک مجموعه نمایش دهیم :

X=3.14;

{x,Floor[x],Round[x]}

{3.14,3,3}

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:17 قبل از ظهر  توسط دانشجو  | 

5- تجزیه اعداد

نرم افزار Mathematica  برخی از اعمال نظیر خارج قسمت ، باقیمانده ، مقسومعلیه ها و ... را با دستورات زیر تعیین می کند :

محاسبه باقیمانده تقسیم m بر n  ..... Mod[m,n]

محاسبه خارج قسمت تقسیم m بر n ..... Questient[m,n]

تعیین مقسوم علیه های عدد n ..... Divisors[x]

ب.م.م اعداد n1  و n2  و ........  GCD[n1,n2,…]

ک.م.م اعداد n1  و n2 و ........ LCM[n1,n1,…]

نمایش k امین عدد اول ..... Prime[Range[k]]

True عدد n  عدد اول باشد ، در غیر این صورت False  ..... PrimeQ[n]

تجزیه n  به اعداد اول را نمایش می دهد . FactorInteger[n]

 

 

توجه : اگر در نمایش اعداد در محاسبات از علامت ممیز " . "  استفاده شود محاسبات با اعداد حقیقی انجام می شود .

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:16 قبل از ظهر  توسط دانشجو  | 

6-محاسبات جبری

یکی از ویژگی های مهم Mathematica این است که می تواند محاسبات نمادی را همانند اعداد انجام دهد . یعنی می توانیم عملیات روی عبارات جبری را به خوبی انجام دهیم .

 

مقدار دهی

در expr  به جای x  ،  value جایگزین می شود expr  ..... expr/.x->value

چندین جایگزینی با هم .....expr/.{x->xval,y->yval,…}

 

 

بسط expr .....Expand[expr]

تجزیه expr به عوامل اول ..... Factor[expr]

ساده کردن expr ..... Simplify[expr]

بسط (ab)c  و (ab)c در expr ..... PowerEcpand[expr]

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:14 قبل از ظهر  توسط دانشجو  | 

7-تجزیه چند جمله ای ها

 

باقیمانده تقسیم expr1  بر expr2 ..... PolynomialMod[expr1, expr2]

خارج قسمت تقسیم expr1  بر expr2 بر حسب x ...... PolynomialQuotient[expr1, expr2,x]

باقیمانده تقسیم expr1 بر expr2 بر حسب x ..... PolynomialRemainder[expr1 , expr2 , x]

ک.م.م عبارات expr1  و expr2 ، ........ PolynomialGCD[expr1,expr2,…]

ب.م.م عبارات expr1  و expr2 ، ........ PolynomialLCD[expr1,expr2,…]

مقسوم علیه های expr ..... PolynomialDivision[expr]

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:10 قبل از ظهر  توسط دانشجو  | 

8-حل معادلات و دستگاه معادلات جبری

 

Mathematica می تواند جواب معادلات ، نامعادلات و دستگاه معادلات را به طور دقیق تا چندمین رقم با معنی تعیین کند ، همچنین می تواند با تقریب اولیه جواب ، به جواب تقریبی مناسب دسترسی پیدا

کند .

 

مقدار x را در y جایگزین می کند . ( جایگزینی ) .....x=y

اگر x با y برابر باشد True ؛ در غیر اینصورت False . ( تساوی منطقی ) ..... x==y

 

حل معادله lhs=rhs نسبت به x ..... Solve[lhs==rhs,x]

در expr به جای x جواب را قرار می دهد ..... expr/.solution

 

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

 

محاسبه تقریب جوابهای عدیی چند جمله ای Poly=0 ..... NSolve[Poly==0,x]

محاسبه جواب تقریبی تا n رقم با معنی ..... ,x],n]0==N[NSolve[Poly

 

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

 

حل دستگاه چند معادله چند مجهولی بر حسب مجهولات x و y و ...

Solve[{Lhs==rhs1,Lhs2==rhs2,…}, {x,y,…}]

حل equs بر حسب همه مجهولات موجود آن ..... Solve[equs]

 

توجه : اگر مجهولات مشخص نشوند ، دستور Solve معادلات را بر حسب همه متغیرها حل می کند .

 

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:7 قبل از ظهر  توسط دانشجو  | 

9-تعریف توابع

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

 

تابع f(x) با ارزیابی بلافاصلهbody.....=body f[x_]

تابع f(x) با ارزیابی تأخیری body  تعریف می شود ..... f[x_]:=body

تعریف تابع را نمایش می دهد ..... ?f

تعریف تابع را پاک می کند ..... Clear[f]

تعریف تابع f(x) روی دامنه Domain با عبارت body .....body f[x_/;domain:]=

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:4 قبل از ظهر  توسط دانشجو  | 

10-رسم توابع و رابطه ها

در زیر چند دستور مقدماتی برای رسم توابع ارائه شده است .

 

رسم تابع f(x)  در فاصله a<=x<=b ..... Plot[f,{x,a,b}]

رسم تابع f(x) ،  در فاصله a<=x<=b با انتخاب option مناسب ..... Plot[f,{x,a,b},option->value]

رسم چند تابع f1 , f2 و ... با هم در فاصله a با option مناسب

..... Plot[{f1,f2,…},{x,a,b},option->value]

 مثال :

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 10:1 قبل از ظهر  توسط دانشجو  | 

11- توابع پارامتری

در Mathematica همچنین میتوان توابع پارامتری را تعریف و به نحو مطلوب رسم نمود .

 

رسم تابع پارامتری  x(t),y(t))) در فاصله [a,b]

ParametericPlot[x[t],y[t],{t,a,b}]

 

+ نوشته شده در  یکشنبه 13 فروردین1385ساعت 0:36 قبل از ظهر  توسط دانشجو  | 

12-ترکیب توابع

Mathematica  می تواند به آسانی ترکیب توابع fog=f(g(x)) را انجام دهد .

 

Fog ، ترکیب توابع f  و g  با متغیرx  ..... Composition[f,g][x]

ترکیب f ، n  بار با خودش .....Nest[f,x,n]

 

+ نوشته شده در  شنبه 12 فروردین1385ساعت 4:26 بعد از ظهر  توسط دانشجو  | 

13-مثلثات

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

نمایش expr بر حسب sin2x و غیره .....Expand[expr,Trig->True]

نمایش expr بر حسب sin2x و غیره..... Factor[expr,Trig->True]

 

همچنین می توان مقادیر توابع مثلثاتی ، معکوس توابع مثلثاتی ، نمودار آنها و دیگر محاسبات مثلثاتی را با Mathematica بدست آورد .

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

 

جستجو برای تعیین جواب معادله lhs==rhs ، شروع با یک مقدار تقریبی x=x0 ..... FindRoot[lhs-==rhs,{x,x0}]

جستجو برای ریشه یابی equ با دو مقدار اولیه x0 و x1 ( زمانی که مشتق equ به طور صریح تعیین نمی شود مورد استفاده قرار می گیرد . ).....

FinRoot[equ,{x,x0,a, b}]

جستجو برای ریشه یابی equ با یک مقدار اولیه x0 در فاصله [a,b] .....

FindRoot[equ,{x,x0,a,b}]

جستجو برای تعیین جواب های x و y و ... دستگاه با تقریب های اولیه x0, y0 و ...

FinRoot{equ1,equ2,…},{x,x0},{y,y0},…]

 

+ نوشته شده در  شنبه 12 فروردین1385ساعت 4:25 بعد از ظهر  توسط دانشجو  | 

14-لگاریتم

در این قسمت محاسبات لگاریتمی ، حل معادلات و دستگاه معادلات لگاریتمی را بررسی می کنیم .

 

Lnx : لگاریتم طبیعی ..... Log[x]

لگاریتم x در مبنایb  ..... Log[x,b]

 

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

 

تعریف قانون لگاریتم حاصلضرب ..... Log[x_*y_]:=log[x]+log[y]

 تعریف قانون Lnxn=nLnx ( به توان n) ..... log[x_^n_]=n*log[x]

 

توجه : برای حل معادلات لگاریتمی و نمایی از دستور FindRoot استفاده می شود .

 

+ نوشته شده در  شنبه 12 فروردین1385ساعت 4:24 بعد از ظهر  توسط دانشجو  | 

15-- منطق

گزاره عبارتی است که خبری را بیان می کند و این خبر درست یا نادرست است ، در منطق فازی احتمال درستی فاصله [0,1] است . برای درستی و نادرستی ارزش یک گزاره در Mathematica می توان از عملگر های رابطه ای و عملگرهای منطقی استفاده نمود .

 

عملگر های رابطه ای

نامساوی….. x!=y

کوچکتر..... x

کمتر یا مساوی..... x<=y

مساوی .....x==y

بزرگتر ..... x>y

بزرگتر یا مساوی ..... x>=y

 

عملگر های منطقی

نقیض p  ..... !p

(p^q) و (and) ..... p&&q

(pvq)  یا (or) ..... p||q

یا انحصاری ( مانع جمع ) ..... Xor[p,q,…]

 

 

اگر p درست باشد then در غیر این صورت else ..... If[p,then.else]

بسط عبارت منطقی expr ..... LogicalExpand[expr]

 

 

اگر expr صحیح باشد True در غیر این صورت False ..... TrueQ[expr]

True اگر lhs  rhd همانند باشند در غیر  این صورت False.....Lhs===rhs یا Same[lhs,rhs]

True اگر lhs و rhs  ناهمانند باشند در غیر این صورت False .....

Lhs=!=rhs یا UnSame[lhs,rhs]

 

 

ارزیابی تا زمانی که یکی از عبارتنها False  باشد ..... expr1,&&expr2&&

ارزیابی تا زمانی که یکی از عبارتها True باشد ..... expr1||expr2||

+ نوشته شده در  شنبه 12 فروردین1385ساعت 4:1 بعد از ظهر  توسط دانشجو  | 

16-مجموعه ها

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

 

مجموعه A با عضو های a,b,c  ..... A={a,b,c}

اجتماع مجموعه های A,B,… ..... Union[A,B,…]

اشتراک مجموعه های A,B,… ..... Intersection[A,B,…]

مکمل A نسبت به M یا M-A  ..... Complement[M,A]

مکمل A  و B و ... نسبت به M  ..... Complement[M,A,B,…]

 

 

 

+ نوشته شده در  شنبه 12 فروردین1385ساعت 4:0 بعد از ظهر  توسط دانشجو  |