[آموزش] عملیات های ریاضی در متلب

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب این تاپیک:

  1. حل معادلات در متلب
  2. اعداد مختلط در متلب
  3. تغییر تعداد رقم اعشاری مورد استفاده در محاسبات مربوط به عددها، با دستور digits در متلب
  4. تغییر مبنای (base) اعداد از دهدهی (decimal) به یک مبنای دیگر و یا از مبنایی دیگر به دهدهی (decimal)، با دستورات dec2base و base2dec در متلب
  5. محاسبه مقادیر ویژه (eigenvalue) و بردارهای ویژه (eigenvector) یک ماتریس در متلب
  6. مشتق گیری از عبارت های سمبلیک با دستور diff
  7. حل معادله دیفرانسیلی در متلب با دستور dsolve
  8. انتگرال گیری در متلب با دستور int
  9. محاسبه حد در متلب با دستور limit
  10. جمع عددی و جمع سمبلیک (سیگما) در متلب
  11. محاسبه باقیمانده تقسیم با دستور mod در متلب
  12. عبارت های منطقی (Logical Expressions) در متلب
  13. اعمال عملگرهای نسبی (Relational Operator) بر روی تمامی عناصر یک بردار یا ماتریس
  14. گرد کردن اعداد اعشاری در متلب
  15. محاسبه ضرایب سری فوریه یک تابع متناوب در متلب
  16. محاسبه ضرایب سری فوریه یک تابع متناوب، بدون داشتن عبارت تابع و تنها با استفاده از مقادیر گسسته تابع، در متلب
  17. محاسبه تبدیل لاپلاس و معکوس تبدیل لاپلاس با دو دستور laplace و ilaplace در متلب
  18. محاسبه تبدیل z و معکوس تبدیل z با دو دستور ztrans و iztrans در متلب
  19. محاسبه ریشه های یک چند جمله ای با دستور roots در متلب
  20. تابع بسل نوع اول با دستور besselj در متلب
  21. تابع بسل نوع اول اصلاح شده (modified) با دستور besseli در متلب
  22. تابع بسل نوع دوم با دستور bessely در متلب
  23. تابع بسل نوع دوم اصلاح شده (modified) با دستور besselk در متلب
  24. محاسبه ریشه n ام یک عدد حقیقی با دستور nthroot در متلب
  25. محاسبه کوچکترین توان 2 که بزرگتر از قدر مطلق یک عدد باشد ، با دستور nextpow2 در متلب
  26. محاسبه صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت به صورت جداگانه ، با دستور numden در متلب
  27. محاسبه نرم (norm) یک ماتریس یا بردار ، با دستور norm در متلب
  28. حل دستگاه چند معادله و چند مجهول با دستور solve در متلب
  29. پیاده سازی روش اویلر با کدهای متلب
  30. جمع زدن مقادیر عددی یک فرمول شامل سیگما، با حلقه های for در متلب
  31. تشخیص اعداد اول (prime numbers)، با دستور isprime در متلب
  32. محاسبه تبدیل فوریه، با دستور fourier در متلب
  33. محاسبه تبدیل فوریه معکوس، با دستور ifourier در متلب
  34. بررسی بزرگتر یا مساوی بودن اعداد، نسبت به یکدیگر، با دستور ge در متلب
  35. بررسی مساوی بودن اعداد، با دستور eq در متلب
  36. بررسی کوچکتر یا مساوی بودن اعداد، نسبت به یکدیگر، با دستور le در متلب
  37. بررسی بزرگتر بودن اعداد، نسبت به یکدیگر، با دستور gt در متلب
  38. بررسی کوچکتر بودن اعداد، نسبت به یکدیگر، با دستور lt در متلب
  39. قرینه کردن (معکوس کردن - mirror - revert) یک عدد (number)، در متلب
  40. به دست آوردن زاویه فاز (Phase angle) یک عدد، با دستور angle در متلب


منبع: kelidestan.com
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حل معادلات در متلب

حل معادلات در متلب

در متلب، می توان با دو دستور solve یا fzero ، معادلات شامل متغیرها را حل نمود.

[h=2]دستور solve :[/h]
دستور solve در متلب، برای حل معادلات چندجمله ای به کار می رود.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^2-2*x-4=0'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
 [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 [COLOR=#3333FF]1[/COLOR] – [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
دقت شود که معادله باید بین علامت ' قرار بگیرد.
دو پاسخ معادله در خروجی نمایش داده شده است. دو پاسخ معادله، پاسخ های دقیق معادله می باشند و چنانچه بخواهیم آنها را به صورت عددی ببینیم باید دستور double(ans) و یا vpa(ans) را اجرا کنیم. به عنوان مثال با دستور double داریم :

کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^2-2*x-4=0'[/COLOR][COLOR=#008800])[/COLOR]
B=[COLOR=#0000FF]double[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
 [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 [COLOR=#3333FF]1[/COLOR] - [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]
 
 
B =
 
    [COLOR=#3333FF]3.2361[/COLOR]
   -[COLOR=#3333FF]1.2361[/COLOR][/FONT]
[/FONT][/COLOR]
و با دستور vpa داریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^2-2*x-4=0'[/COLOR][COLOR=#008800])[/COLOR]
B=vpa[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
 [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 [COLOR=#3333FF]1[/COLOR] - [COLOR=#3333FF]5[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]
 
 
B =
 
  [COLOR=#3333FF]3.2360679774997896964091736687313[/COLOR]
 -[COLOR=#3333FF]1.2360679774997896964091736687313[/COLOR][/FONT]
[/FONT][/COLOR]
دستور solve همچنین قادر است که معادلات شامل دو متغیر را حل نماید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'2*x-log(y)=1'[/COLOR],[COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#0000FF]exp[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]2[/COLOR]*x - [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
دقت شود چون می خواهیم متغیر y را بر حسب x به دست آوریم، باید عبارت 'y' را پس از معادله بنویسیم .

[h=4]مثال :[/h]چنانچه دو معادله بر حسب x و y داشته باشیم، آنگاه می توان مقادیر دو متغیر x و y را به دست آورد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800][[/COLOR]x,y[COLOR=#008800]][/COLOR]=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^2-y=2'[/COLOR],[COLOR=#A020F0]'y-2*x=5'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x =
 
 [COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 [COLOR=#3333FF]1[/COLOR] - [COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]
 
 
y =
 
 [COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]7[/COLOR]
 [COLOR=#3333FF]7[/COLOR] - [COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
این دو معادله دارای دو سری پاسخ است، پاسخ سری اول x(1) و y(1) و پاسخ سری دوم x(2) و y(2) می باشد. چنانچه پاسخ اول مورد نظر ما باشد، می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x1=x[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]
y1=y[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x1 =
 
[COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 
 
y1 =
 
[COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]7[/COLOR][/FONT]
[/FONT][/COLOR]
دقت شود که در مثال قبل، پاسخ دو معادله را به بردار [x,y] نسبت دادیم و پاسخ ها در خروجی نمایش داده شدند. چنانچه پاسخ دو معادله را به بردار [x,y] نسبت ندهیم، آنگاه پاسخ ها در خروجی نمایش داده نمی شوند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solution=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^2-y=2'[/COLOR],[COLOR=#A020F0]'y-2*x=5'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solution = 
 
    x: [COLOR=#008800][[/COLOR]2x1 sym[COLOR=#008800]][/COLOR]
    y: [COLOR=#008800][[/COLOR]2x1 sym[COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
برای دیدن مقادیر بردارهای x و y ، کافی است که دستورات solution.x و solution.y را اجرا کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x=solution.x
y=solution.y[/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x =
 
 [COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 [COLOR=#3333FF]1[/COLOR] - [COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]
 
 
y =
 
 [COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]7[/COLOR]
 [COLOR=#3333FF]7[/COLOR] - [COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
پاسخ سری اول solution.x(1) و solution.y(1) و پاسخ سری دوم solution.x(2) و solution.y(2) می باشد. چنانچه پاسخ اول مورد نظر ما باشد می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x1=solution.x[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]
y1=solution.y[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]x1 =
 
[COLOR=#3333FF]2[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR]
 
 
y1 =
 
[COLOR=#3333FF]4[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]7[/COLOR][/FONT]
[/FONT][/COLOR]
برخی معادلات نمی توانند به صورت سمبلیک حل شوند و در اینگونه موارد دستور solve سعی می کند که یک حل عددی را بیابد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'sin(x)=2-x'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]1.1060601577062719106167372970301[/COLOR][/FONT]
[/FONT][/COLOR]
در بعضی موارد، معادله بیش از یک پاسخ دارد و دستور solve پاسخی را برمی گرداند که مد نظر ما نبوده است. به عنوان مثال :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'exp(-x)=sin(x)'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]0.5885327439818610774324520457029[/COLOR][/FONT]
[/FONT][/COLOR]
به شکل زیر توجه کنید :1311.jpg
با توجه به شکل بالا، پاسخ دیگری مد نظر ما بوده است که حدود x=3 می باشد. چنانچه بخواهیم این پاسخ را به دست آوریم باید از دستور fzero در متلب استفاده کنیم که در ادامه در مورد آن توضیح خواهیم داد.


[h=2]دستور fzero :[/h]همان مثال قبل را این بار با fzero حل می کنیم و برای دستور fzero مشخص می کنیم که پاسخ نزدیک x=3 را بیابد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]fzero[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]inline[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'exp(-x)-sin(x)'[/COLOR][COLOR=#008800])[/COLOR],[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
    [COLOR=#3333FF]3.0964[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین دستور fzero دقیقا همان پاسخ مد نظر ما که نزدیک x=3 می باشد را برگرداند.
دقت شود که در تعریف معادله، از علامت = استفاده نکردیم و دستور به طور خودکار، عبارت درون دو علامت ' را برابر صفر قرار می دهد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اعداد مختلط در متلب

اعداد مختلط در متلب

همان طور که می دانید، هر عدد مختلط به صورت A+Bi نوشته می شود که A بخش حقیقی و B بخش موهومی عدد مختلط است. نماد i به صورت رادیکال 2 عدد 1- تعریف می شود :
Untitled.png
البته به دلیل اینکه در برخی مراجع از نماد j نیز استفاده شده است، در متلب، هر دو نماد i و j به کار می روند، اما نتایجی که در پنجره Command نمایش داده می شوند، همگی با نماد i می باشند. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#3333FF]2[/COLOR]+[COLOR=#3333FF]3[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR]
B=[COLOR=#3333FF]4[/COLOR]+[COLOR=#3333FF]5[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]j[/COLOR][/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] + [COLOR=#3333FF]3.0000i[/COLOR]
 
 
B =
 
   [COLOR=#3333FF]4.0000[/COLOR] + [COLOR=#3333FF]5.0000i[/COLOR][/FONT]
[/FONT][/COLOR]
مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800]([/COLOR][COLOR=#3333FF]2[/COLOR]+[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800])[/COLOR]*[COLOR=#008800]([/COLOR][COLOR=#3333FF]3[/COLOR]+[COLOR=#3333FF]4[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] [COLOR=#3333FF]+11.0000i[/COLOR][/FONT]
[/FONT][/COLOR]
تعیین بخش حقیقی اعداد مختلط با دستور real در متلب :

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

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#3333FF]2[/COLOR]+[COLOR=#3333FF]3[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR]
B=[COLOR=#0000FF]real[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] + [COLOR=#3333FF]3.0000i[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]2[/COLOR][/FONT]
[/FONT][/COLOR]
همچنین، چنانچه بردار یا ماتریسی شامل اعداد مختلط داشته باشیم، آنگاه دستور real ، یک بردار یا ماتریس را بر می گرداند که شامل بخش حقیقی آن اعداد مختلط خواهد بود. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]2[/COLOR]+[COLOR=#3333FF]3[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR] , [COLOR=#3333FF]4[/COLOR]+[COLOR=#3333FF]5[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR] ,[COLOR=#3333FF]6[/COLOR]+[COLOR=#3333FF]7[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]real[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] + [COLOR=#3333FF]3.0000i[/COLOR]   [COLOR=#3333FF]4.0000[/COLOR] + [COLOR=#3333FF]5.0000i[/COLOR]   [COLOR=#3333FF]6.0000[/COLOR] + [COLOR=#3333FF]7.0000i[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]6[/COLOR][/FONT]
[/FONT][/COLOR]
تعیین بخش موهومی اعداد مختلط با دستور imag در متلب :

با دستور imag در متلب، می توانیم بخش موهومی یک عدد مختلط را به دست آوریم. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]2[/COLOR]+[COLOR=#3333FF]3[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]imag[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] + [COLOR=#3333FF]3.0000i[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
همچنین، چنانچه بردار یا ماتریسی شامل اعداد مختلط داشته باشیم، آنگاه دستور imag یک بردار یا ماتریس را بر می گرداند که شامل بخش موهومی آن اعداد مختلط خواهد بود. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]2[/COLOR]+[COLOR=#3333FF]3[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR] , [COLOR=#3333FF]4[/COLOR]+[COLOR=#3333FF]5[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR] ,[COLOR=#3333FF]6[/COLOR]+[COLOR=#3333FF]7[/COLOR]*[COLOR=#0000FF][COLOR=#3333FF]i[/COLOR][/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]imag[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
   [COLOR=#3333FF]2.0000[/COLOR] + [COLOR=#3333FF]3.0000i[/COLOR]   [COLOR=#3333FF]4.0000[/COLOR] + [COLOR=#3333FF]5.0000i[/COLOR]   [COLOR=#3333FF]6.0000[/COLOR] + [COLOR=#3333FF]7.0000i[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]7[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تغییر تعداد رقم اعشاری مورد استفاده در محاسبات مربوط به عددها، با دستور digits در متلب

تغییر تعداد رقم اعشاری مورد استفاده در محاسبات مربوط به عددها، با دستور digits در متلب

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

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]


A=[COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]3[/COLOR]
vpa[COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR]

digits[COLOR=#008800]([/COLOR][COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR];

B=[COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]3[/COLOR]
vpa[COLOR=#008800]([/COLOR]B[COLOR=#008800])[/COLOR]

digits[COLOR=#008800]([/COLOR][COLOR=#3333FF]32[/COLOR][COLOR=#008800])[/COLOR];[/FONT]
[/FONT][/COLOR]
سه خط اول برنامه، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد. ابتدا مقدار A را توسط تقسیم 1 بر 3 به دست آورده ایم. همان طور که می دانید، حاصل این تقسیم، یک عدد اعشاری است که بینهایت رقم اعشار دارد. ابتدا عدد A با 4 رقم اعشار در خروجی نمایش داده شده است، اما نرم افزار متلب، عمدا و برای شلوغ نشدن خروجی، تنها 4 رقم اعشار را در خروجی نمایش داده است. برای دیدن تمامی ارقام اعشاری A باید مقدار متغیر A را با دستور vpa نمایش بدهیم. همان طور که می بینید، تعداد 32 رقم اعشاری، برای A نمایش داده شده، بنابراین نرم افزار متلب، متغیر A را با دقت 32 رقم اعشار، ذخیره کرده است (همان عدد پیش فرضی که قبلا گفتیم).سپس با دستور digits ، اعلام کرده ایم که نرم افزار متلب، تنها 3 رقم اعشار از اعداد را نگه دارد (دقت تا 3 رقم اعشار).


B را نیز همانند A ، به صورت تقسیم عدد 1 بر عدد 3 به دست می آوریم. ابتدا نرم افزار متلب، برای نتیجه، 4 رقم اعشار را نمایش می دهد، اما تنها 3 رقم اعشار را در حافظه خود، ذخیره خواهد کرد. با به کار بردن دستور vpa برای متغیر B ، مشاهده می کنید که تنها 3 رقم اعشار برای مقدار آن، ذخیره شده است. در آخر نیز دوباره با دستور digits ، عدد پیش فرض 32 را برای تعداد ارقام اعشاری اعداد، تعیین کرده ایم تا در برنامه های دیگر، نتایج عددی، دارای دقت خوبی باشند (دقت پیش فرض نرم افزار متلب).

نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

    [COLOR=#3333FF]0.3333[/COLOR]

 
[COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]0.33333333333333333333333333333333[/COLOR]
 

B =

    [COLOR=#3333FF]0.3333[/COLOR]

 
[COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]0.333[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تغییر مبنای (base) اعداد از دهدهی (decimal) به یک مبنای دیگر و یا از مبنایی دیگر به دهدهی (decimal)

تغییر مبنای (base) اعداد از دهدهی (decimal) به یک مبنای دیگر و یا از مبنایی دیگر به دهدهی (decimal)

تغییر مبنای (base) اعداد از دهدهی (decimal) به یک مبنای دیگر و یا از مبنایی دیگر به دهدهی (decimal)،
با دستورات dec2base و base2dec در متلب

دستور dec2base در متلب، برای تبدیل یک عدد در مبنای دهدهی (decimal) به مبنایی دیگر به کار می رود (هر مبنای دلخواه). مثلا فرض کنید که بخواهیم عدد 99 را که در مبنای دهدهی است به مبنای 2 تبدیل کنیم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]dec2base[COLOR=#008800]([/COLOR][COLOR=#3333FF]99[/COLOR],[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، عدد مورد نظرمان که در مبنای دهدهی (decimal) است را به عنوان آرگومان اول دستور dec2base نوشته ایم و سپس برای آرگومان دوم دستور، مبنایی را ذکر کرده ایم که قرار است عدد به آن مبنا تبدیل شود (یعنی مبنای 2).

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =

[COLOR=#3333FF]1100011[/COLOR][/FONT]
[/FONT][/COLOR]
همچنین دستور base2dec در متلب، برای تبدیل عددی در یک مبنا، به مبنای دهدهی (decimal) به کار می رود. مثلا فرض کنید که بخواهیم همان مثال قبلی را به طور معکوس انجام بدهیم، یعنی عدد 1100011 که در مبنای 2 است را به مبنای دهدهی (decimal) تبدیل کنیم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]base2dec[COLOR=#008800]([/COLOR][COLOR=#A020F0]'1100011'[/COLOR],[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، باید عدد را به صورت یک رشته (string)، به عنوان آرگومان اول دستور base2dec بنویسیم و آرگومان دوم نیز برابر مبنایی است که عدد در آن می باشد.

[h=4]نتیجه :[/h]

کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =

    [COLOR=#3333FF]99[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه مقادیر ویژه (eigenvalue) و بردارهای ویژه (eigenvector) یک ماتریس در متلب

محاسبه مقادیر ویژه (eigenvalue) و بردارهای ویژه (eigenvector) یک ماتریس در متلب

فرض کنید A یک ماتریس مربعی باشد، برای محاسبه مقادیر ویژه (eigenvalue) و بردارهای ویژه (eigenvector) ماتریس A ، می توانید از دستور eig(A) استفاده کنید. برای این منظور، می توانید این دستور را به صورت[U,R]=eig(A) بنویسید. عناصر قطری از ماتریس قطری R ، برابر مقادیر ویژه (eigenvalue) خواهند بود. همچنین ستون های ماتریس U ، برابر بردارهای ویژه (eigenvector) خواهند بود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR] [COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]3[/COLOR];[COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]5[/COLOR] [COLOR=#3333FF]6[/COLOR];[COLOR=#3333FF]7[/COLOR] [COLOR=#3333FF]8[/COLOR] [COLOR=#3333FF]9[/COLOR][COLOR=#008800]][/COLOR]
[COLOR=#008800][[/COLOR]U,R[COLOR=#008800]][/COLOR]=[COLOR=#0000FF]eig[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]
     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]6[/COLOR]
     [COLOR=#3333FF]7[/COLOR]     [COLOR=#3333FF]8[/COLOR]     [COLOR=#3333FF]9[/COLOR]
 
 
U =
 
   -[COLOR=#3333FF]0.2320[/COLOR]   -[COLOR=#3333FF]0.7858[/COLOR]    [COLOR=#3333FF]0.4082[/COLOR]
   -[COLOR=#3333FF]0.5253[/COLOR]   -[COLOR=#3333FF]0.0868[/COLOR]   -[COLOR=#3333FF]0.8165[/COLOR]
   -[COLOR=#3333FF]0.8187[/COLOR]    [COLOR=#3333FF]0.6123[/COLOR]    [COLOR=#3333FF]0.4082[/COLOR]
 
 
R =
 
   [COLOR=#3333FF]16.1168[/COLOR]         [COLOR=#3333FF]0[/COLOR]         [COLOR=#3333FF]0[/COLOR]
         [COLOR=#3333FF]0[/COLOR]   -[COLOR=#3333FF]1.1168[/COLOR]         [COLOR=#3333FF]0[/COLOR]
         [COLOR=#3333FF]0[/COLOR]         [COLOR=#3333FF]0[/COLOR]   -[COLOR=#3333FF]0.0000[/COLOR][/FONT]
[/FONT][/COLOR]
بردار ویژه در n امین ستون از U ، متناظر با مقدار ویژه در n امین ستون از R می باشد.

[h=4]نکته :[/h]چنانچه دستور را تنها به صورت eig(A) بنویسیم، آنگاه متلب، تنها مقادیر ویژه را نمایش خواهد داد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR] [COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]3[/COLOR];[COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]5[/COLOR] [COLOR=#3333FF]6[/COLOR];[COLOR=#3333FF]7[/COLOR] [COLOR=#3333FF]8[/COLOR] [COLOR=#3333FF]9[/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]eig[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]
     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]6[/COLOR]
     [COLOR=#3333FF]7[/COLOR]     [COLOR=#3333FF]8[/COLOR]     [COLOR=#3333FF]9[/COLOR]
 
 
B =
 
   [COLOR=#3333FF]16.1168[/COLOR]
   -[COLOR=#3333FF]1.1168[/COLOR]
   -[COLOR=#3333FF]0.0000[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
مشتق گیری از عبارت های سمبلیک با دستور diff

مشتق گیری از عبارت های سمبلیک با دستور diff

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

مثال :

فرض کنید بخواهیم مشتق عبارت زیر را محاسبه کنیم :
[FONT=MathJax_Math]x[/FONT][SUP][FONT=MathJax_Main]4[/FONT][/SUP]
می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
[COLOR=#0000FF]diff[/COLOR][COLOR=#008800]([/COLOR]x^[COLOR=#3333FF]4[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]4[/COLOR]*x^[COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که مشتق عبارت مورد نظر، در خروجی نمایش داده شده است. دستور syms x باعث می شود که در متلب، متغیر x به صورت سمبلیک تعریف شود.

نکته :

می توانیم ابتدا با دستور inline ، تابعی را به صورت f(x) تعریف کنیم و سپس از این تابع، برحسب متغیر x ، مشتق بگیریم. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
f=[COLOR=#0000FF]inline[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x^4'[/COLOR],[COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]diff[/COLOR][COLOR=#008800]([/COLOR]f[COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]f =
 
     [COLOR=#0000FF]Inline[/COLOR] [COLOR=#0000FF]function[/COLOR]:
     f[COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR] = x^[COLOR=#3333FF]4[/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]4[/COLOR]*x^[COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
مشتق مرتبه دوم و مرتبه های بالاتر با دستور diff :

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

مثال :

عبارت زیر را در نظر بگیرید :
[FONT=MathJax_Math]x[/FONT][SUP][FONT=MathJax_Main]4[/FONT][/SUP]
می خواهیم از آن، مشتق مرتبه دوم بگیریم. می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
[COLOR=#0000FF]diff[/COLOR][COLOR=#008800]([/COLOR]x^[COLOR=#3333FF]4[/COLOR],[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]12[/COLOR]*x^[COLOR=#3333FF]2[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که مشتق مرتبه دوم عبارت مورد نظر، در خروجی نمایش داده شده است. مرتبه دوم بودن مشتق را با نوشتن عدد 2 در درون پرانتز دستور diff ، مشخص کرده ایم.

نکته :

اگر بخواهیم از آن عبارت، مشتق مرتبه n ام بگیریم، باید دستور diff(x^4,n) را اجرا کنیم.

مشتق گرفتن از یک تابع چند متغیره، بر حسب یک متغیر خاص، با دستور diff :

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

مثال :

تابع زیر را در نظر بگیرید :
Untitled.png
می خواهیم از آن، بر حسب متغیر y مشتق بگیریم. می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

syms x y
f=x^[COLOR=#3333FF]2[/COLOR] + y^[COLOR=#3333FF]2[/COLOR]
g=[COLOR=#0000FF]diff[/COLOR][COLOR=#008800]([/COLOR]f,y[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، نام متغیر y را درون پرانتز دستور diff ذکر کرده ایم.

نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]f =
 
x^[COLOR=#3333FF]2[/COLOR] + y^[COLOR=#3333FF]2[/COLOR]
 
 
g =
 
[COLOR=#3333FF]2[/COLOR]*y[/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حل معادله دیفرانسیلی در متلب با دستور dsolve

حل معادله دیفرانسیلی در متلب با دستور dsolve

دستور dsolve ، برای حل معادله دیفرانسیلی در متلب، به کار می رود. فرض کنید y تابعی از متغیر x باشد. معادله دیفرانسیلی، شامل مشتق مرتبه اول و یا مرتبه های بالاتر از y خواهد بود. اما چگونه باید 'y را برای دستور dsolve مشخص کنیم ؟ روش مورد استفاده این است که به جای 'y ، از نماد D استفاده می شود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم معادله دیفرانسیلی زیر را حل کنیم :
Untitled.png
می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]dsolve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x*Dy+1=y'[/COLOR],[COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
C2*x + [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که پاسخ معادله دیفرانسیلی، در خروجی نمایش داده شده است.

[h=2]حل معادلات دیفرانسیل مرتبه دوم یا بالاتر با استفاده از دستور dsolve در متلب :[/h]همان طور که گفتیم، مشتق مرتبه اول 'y را با نماد Dy ، برای دستور dsolve مشخص می کنیم، اما اگر مشتق مرتبه دوم و یا بالاتر باشد، آنگاه باید ابتدا نماد D را نوشته، سپس عدد مربوط به مرتبه مشتق را بنویسیم و در آخر نیز نماد y نوشته شود. مثلا برای تعریف ''y ، باید نماد D2y و برای تعریف '''y باید نماد D3y را به کار ببریم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
انتگرال گیری در متلب با دستور int :

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

مشخص نبودن حد بالا و حد پایین انتگرال :

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

مثال :

فرض کنید بخواهیم انتگرال زیر را محاسبه نماییم .
Untitled.png
می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
int[COLOR=#008800]([/COLOR][COLOR=#3333FF]4[/COLOR]*x^[COLOR=#3333FF]3[/COLOR],x[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
x^[COLOR=#3333FF]4[/COLOR][/FONT]
[/FONT][/COLOR]
نکته :

دقت شود مثال بالا را به صورت int('4*x^3','x') نیز می توان نوشت، اما استفاده از دستور syms توصیه می شود، زیرا این شیوه اجرای دستور int (بدون دستور syms)، در آینده از نرم افزار متلب حذف خواهد شد.

مشخص بودن حد بالا و حد پایین انتگرال :

در صورتی که حد بالا و حد پایین انتگرال مشخص باشند، باید این دو حد را در دستور int بنویسیم. به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
int[COLOR=#008800]([/COLOR][COLOR=#3333FF]4[/COLOR]*x^[COLOR=#3333FF]3[/COLOR],[COLOR=#3333FF]0[/COLOR],[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
محاسبه انتگرال برای عبارت هایی که نمی توان به صورت سمبلیک انتگرال آنها را محاسبه نمود :

برای برخی عبارت ها، امکان اینکه انتگرال آنها به صورت سمبلیک محاسبه شود (symbolic integration)، وجود ندارد. در اینگونه موارد، باید از دستورات انتگرال گیری عددی (numerical integration) استفاده کنیم. از این دستورات می توان دستور quad و دستور quadl را ذکر نمود. ابتدا با مثال زیر نشان می دهیم که دستور int ، انتگرال هر عبارتی را نمی تواند، به صورت آنچه انتظار داریم، محاسبه کند :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
int[COLOR=#008800]([/COLOR][COLOR=#0000FF]exp[/COLOR][COLOR=#008800]([/COLOR]-x^[COLOR=#3333FF]4[/COLOR][COLOR=#008800])[/COLOR],[COLOR=#3333FF]0[/COLOR],[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800]([/COLOR][COLOR=#0000FF]pi[/COLOR]*[COLOR=#3333FF]2[/COLOR]^[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR]/[COLOR=#008800]([/COLOR][COLOR=#3333FF]4[/COLOR]*[COLOR=#0000FF]gamma[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]3[/COLOR]/[COLOR=#3333FF]4[/COLOR][COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR] – igamma[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]4[/COLOR], [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]/[COLOR=#3333FF]4[/COLOR][/FONT]
[/FONT][/COLOR]
مسلما آنچه انتظارش را داشتید، یک عدد می بود نه عبارت فوق. جالب است بدانید که دستور فوق، در شماره های قدیمی تر نرم افزار متلب، باعث نمایش یک پیام خطا در پنجره Command می شد. حال برای محاسبه انتگرال فوق، از دستور quadl ، در مثال زیر استفاده می کنیم :

مثال :

دقت شود که عبارت مورد نظرمان را باید ابتدا درون پرانتز دستور vectorize قرار بدهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
[COLOR=#0000FF]quad[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]vectorize[/COLOR][COLOR=#008800]([/COLOR][COLOR=#0000FF]exp[/COLOR][COLOR=#008800]([/COLOR]-x^[COLOR=#3333FF]4[/COLOR][COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR],[COLOR=#3333FF]0[/COLOR],[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
    [COLOR=#3333FF]0.8448[/COLOR][/FONT]
[/FONT][/COLOR]
همچنین چنانچه از دستور int به صورت double(int()) استفاده کنید، آنگاه متلب از عبارت زیر انتگرال، به صورت عددی (numerical integration) انتگرال گیری خواهد کرد.

نکته :

دستور quad و دستور quadl ، مقدار inf و inf– را که به عنوان نماد بی نهایت در متلب تعریف شده اند، به عنوان حد انتگرال قبول نمی کند و در صورت پذیرش، جوابی که انتظارش را ندارید، مشاهده خواهید کرد. بنابراین راه حل این است که به جای بی نهایت، از یک عدد خیلی بزرگ، استفاده کنیم.

محاسبه انتگرال های چندگانه :

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

مثال :

فرض کنید بخواهیم انتگرال زیر را محاسبه کنیم .
Untitled.png
می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x y
int[COLOR=#008800]([/COLOR]int[COLOR=#008800]([/COLOR]x^[COLOR=#3333FF]2[/COLOR]+y^[COLOR=#3333FF]2[/COLOR],y,[COLOR=#3333FF]0[/COLOR],[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR],[COLOR=#3333FF]0[/COLOR],[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#0000FF]pi[/COLOR]^[COLOR=#3333FF]2[/COLOR] - [COLOR=#3333FF]32[/COLOR]/[COLOR=#3333FF]9[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه حد در متلب با دستور limit

محاسبه حد در متلب با دستور limit

در متلب، برای محاسبه حد، از دستور limit استفاده می شود. به مثال زیر توجه کنید :

مثال :

فرض کنید بخواهیم حد زیر را محاسبه کنیم :
Untitled.png
کدهای متلب زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x 
limit[COLOR=#008800]([/COLOR][COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR]/x,x,[COLOR=#3333FF]0[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
در دستور limit(sin(x)/x,x,0) ، نماد x را نوشته ایم تا مشخص کنیم که حد برای متغیر x می باشد و عدد 0 نیز همان عددی است که باید متغیر x به سمت آن میل کند.

محاسبه حد راست یا حد چپ با دستور limit :

برای این که با دستور limit ،حد راست یا حد چپ یک عبارت را محاسبه نماییم، باید درون پرانتز دستور limit ، عبارت 'right' یا 'left' را بنویسیم. به مثال زیر توجه کنید :

مثال :

فرض کنید بخواهیم حد زیر را که به صورت حد چپ می باشد، محاسبه کنیم :Untitled.pngکدهای متلب زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x 
limit[COLOR=#008800]([/COLOR][COLOR=#0000FF]abs[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR]/x,x,[COLOR=#3333FF]0[/COLOR],[COLOR=#A020F0]'left'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
-[COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
محاسبه حد بی نهایت :

برای محاسبه حد بی نهایت، تنها کافی است از نماد Inf استفاده کنیم که در متلب برای نمایش بی نهایت به کار می رود. به مثال زیر توجه کنید :

مثال :

فرض کنید می خواهیم حد زیر را محاسبه کنیم:
Untitled.png
کدهای متلب زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms x
limit[COLOR=#008800]([/COLOR][COLOR=#008800]([/COLOR]x^[COLOR=#3333FF]3[/COLOR]-x^[COLOR=#3333FF]2[/COLOR]+x[COLOR=#008800])[/COLOR]/[COLOR=#008800]([/COLOR][COLOR=#3333FF]5[/COLOR]*x^[COLOR=#3333FF]3[/COLOR]-[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR],x,[COLOR=#0000FF]Inf[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]1[/COLOR]/[COLOR=#3333FF]5[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
جمع عددی و جمع سمبلیک (سیگما) در متلب

جمع عددی و جمع سمبلیک (سیگما) در متلب

در متلب، دستورات sum و symsum به منظور جمع زدن به کار می روند. در ادامه کاربرد این دستورات را شرح می دهیم.

[h=2]جمع عددی در متلب با دستور sum :[/h]در متلب، برای جمع زدن به صورت عددی، می توان از دستور sum استفاده نمود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR] [COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]3[/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]sum[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]6[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که B برابر مجموع همه عناصر بردار A می باشد.

[h=2]جمع سمبلیک (سیگما) در متلب با دستور symsum :[/h]در ریاضیات، علامت سیگما ( ∑ ) که برای جمع زدن یک عبارت می باشد، زیاد به کار می رود. در عبارت جلوی سیگما، متغیری وجود دارد که هر بار مقدار آن، تغییر می کند. در متلب برای محاسبه مجموع نوشته شده با علامت سیگما، دستور symsum در نظر گرفته شده است. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم مجموع زیر را محاسبه کنیم :Untitled.pngمی نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms k n
symsum[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/k-[COLOR=#3333FF]1[/COLOR]/[COLOR=#008800]([/COLOR]k+[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR],[COLOR=#3333FF]1[/COLOR],n[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
psi[COLOR=#008800]([/COLOR]n + [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR] - psi[COLOR=#008800]([/COLOR]n + [COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR] + [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]فرض کنید بخواهیم مجموع زیر را محاسبه کنیم :Untitled.pngمی نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms n
symsum[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/n^[COLOR=#3333FF]2[/COLOR],[COLOR=#3333FF]1[/COLOR],[COLOR=#0000FF]Inf[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#0000FF]pi[/COLOR]^[COLOR=#3333FF]2[/COLOR]/[COLOR=#3333FF]6[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه باقیمانده تقسیم با دستور mod در متلب

محاسبه باقیمانده تقسیم با دستور mod در متلب

دستور mod در متلب، برای محاسبه باقیمانده یک تقسیم به کار می رود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#3333FF]3[/COLOR]
B=[COLOR=#3333FF]4[/COLOR]
C=[COLOR=#0000FF]mod[/COLOR][COLOR=#008800]([/COLOR]B,A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]3[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]4[/COLOR]
 
 
C =
 
     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که دستور mod ، باقیمانده تقسیم B بر A را محاسبه کرده است.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
عبارت های منطقی (Logical Expressions) در متلب

عبارت های منطقی (Logical Expressions) در متلب

در عبارت های منطقی، یک ویژگی میان یک یا چند متغیر (یا عبارت های شامل متغیرها) مورد بررسی قرار می گیرد و آنگاه بر حسب اینکه آن ویژگی در آن متغیرها به چه صورت بوده است، یک مقدار منطقی (یعنی 0 یا 1)، توسط متلب، در خروجی نمایش داده می شود. این ویژگی می تواند ویژگی مربوط به عملگرهای نسبی (Relational Operator)، مانند بزرگتر بودن، کوچکتر بودن، تساوی، OR ، AND و ... باشد. علامت های مربوط به این عملگرها که در نرم افزار متلب به کار می رود را در جدول زیر نمایش می دهیم :
عملگرعلامت عملگر در نرم افزار متلب
کوچکتر<
بزرگتر>
کوچکتر مساوی<=
بزرگتر مساوی>=
مساوی==
نامساوی~=
AND&
OR|
زمانی که یک عبارت منطقی، توسط نرم افزار متلب مورد ارزیابی قرار گیرد، اگر آن عبارت منطقی، صحیح (True) باشد، متلب مقدار 1 را بر می گرداند و اگر آن عبارت منطقی، غلط (False) باشد، متلب مقدار 0 را بر می گرداند. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#3333FF]9[/COLOR]>[COLOR=#3333FF]7[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که چون عدد 9 بزرگتر از 7 می باشد آنگاه مقدار منطقی 1 توسط متلب نمایش داده شده است و در واقع صحیح بودن 7<9 ، با نمایش مقدار 1 ، توسط متلب، تایید شده است.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#3333FF]7[/COLOR]>[COLOR=#3333FF]9[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]0[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که متلب، مقدار 0 را در خروجی نمایش داده است و معنی آن این است که عبارت 9<7 ، غلط می باشد.

[h=2]عبارت های منطقی با OR (علامت | ) در متلب :[/h]زمانی که دو عبارت منطقی را در دو طرف علامت OR ( | ) به کار ببریم، آنگاه اگر هر یک از آن دو عبارت منطقی، صحیح باشد، متلب مقدار مربوط به صحیح بودن (مقدار1) را برمی گرداند و تنها زمانی متلب، مقدار 0 (غلط بودن) را برمی گرداند که هر دو عبارت منطقی غلط باشند. به مثال زیر توجه کنید :[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800]([/COLOR][COLOR=#3333FF]3[/COLOR]>[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]|[COLOR=#008800]([/COLOR][COLOR=#3333FF]4[/COLOR]>[COLOR=#3333FF]5[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
عبارت منطقی (2<3) ، صحیح است و عبارت منطقی (5<4) ،غلط می باشد، بنابراین متلب، مقدار مربوط به صحیح بودن (مقدار 1) را در خروجی نمایش داده است.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800]([/COLOR][COLOR=#3333FF]2[/COLOR]>[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]|[COLOR=#008800]([/COLOR][COLOR=#3333FF]4[/COLOR]>[COLOR=#3333FF]5[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]0[/COLOR][/FONT]
[/FONT][/COLOR]
چون هر دو عبارت منطقی (3<2) و (5<4) ، غلط می باشند، بنابراین متلب مقدار مربوط به غلط بودن (مقدار 0) را در خروجی نمایش داده است.

[h=2]عبارت های منطقی با AND (علامت & ) در متلب :[/h]زمانی که دو عبارت منطقی را در دو طرف علامت AND ( & ) به کار ببریم، آنگاه تنها زمانی متلب، مقدار مربوط به صحیح بودن (مقدار 1) را برمی گرداند که هر دو عبارت منطقی، صحیح باشند. بنابراین چنانچه تنها یکی از دو عبارت منطقی و یا هر دو عبارت منطقی، غلط باشند، آنگاه متلب مقدار مربوط به غلط بودن (مقدار 0) را برمی گرداند. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#008800]([/COLOR][COLOR=#3333FF]2[/COLOR]>[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]&[COLOR=#008800]([/COLOR][COLOR=#3333FF]5[/COLOR]>[COLOR=#3333FF]4[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]0[/COLOR][/FONT]
[/FONT][/COLOR]
عبارت منطقی (3<2) ، غلط است و عبارت منطقی (4<5) ، صحیح می باشد بنابراین متلب، مقدار مربوط به غلط بودن (مقدار 0) را در خروجی نمایش می دهد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
اعمال عملگرهای نسبی (Relational Operator) بر روی تمامی عناصر یک بردار یا ماتریس

اعمال عملگرهای نسبی (Relational Operator) بر روی تمامی عناصر یک بردار یا ماتریس

همان طور که می دانید، یک عملگر نسبی (Relational Operator) ، دو یا چند عبارت را در نظر می گیرد و نتیجه مقایسه آنها را به صورت برگرداندن مقدار 0 ، برای حالت غلط بودن و برگرداندن مقدار 1 ، برای حالت صحیح بودن، در خروجی نمایش می دهد. اما گاهی نیاز داریم که یک عملگر نسبی (Relational Operator) را برای تمامی عناصر یک بردار یا ماتریس، به کار ببریم. با مثال های زیر، نحوه انجام این کار را به شما نشان خواهیم داد :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]6[/COLOR] [COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]8[/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#008800][[/COLOR][COLOR=#3333FF]5[/COLOR] [COLOR=#3333FF]5[/COLOR] [COLOR=#3333FF]5[/COLOR][COLOR=#008800]][/COLOR]
A>B[/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]6[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]8[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]5[/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]0[/COLOR]     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که تک تک عناصر متناظر A و B که دارای شماره ردیف و شماره ستون یکسان می باشند، مقایسه شده اند. اگر عنصر بردار A ، بزرگتر از عنصر بردار B بوده است، آنگاه مقدار 1 که صحیح بودن را نشان می دهد، در بردار خروجی نمایش داده شده است و در غیر این صورت، مقدار 0 که غلط بودن را نشان می دهد، در بردار خروجی نمایش داده شده است.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR] [COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]5[/COLOR][COLOR=#008800]][/COLOR]
A>[COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =

 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]5[/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]0[/COLOR]     [COLOR=#3333FF]0[/COLOR]     [COLOR=#3333FF]0[/COLOR]     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نکته :[/h]همان طور که گفتیم، می توانیم یک عملگر نسبی را به تمامی عناصر یک بردار یا ماتریس اعمال کنیم. می توانیم از این قابلیت استفاده کنیم و ببینیم چه عناصری از یک ماتریس، در شرط خاصی صدق می کنند. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]5[/COLOR] [COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]2[/COLOR] [COLOR=#3333FF]1[/COLOR][COLOR=#008800]][/COLOR]
A[COLOR=#008800]([/COLOR]A>[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]1[/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]4[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که عناصری از ماتریس A که بزرگتر از عدد 3 می باشند، مقدارشان در خروجی نمایش داده شده است.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
گرد کردن اعداد اعشاری در متلب

گرد کردن اعداد اعشاری در متلب

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

دستور roundگرد کردن به سمت نزدیکترین عدد صحیح
دستور fixگرد کردن به سمت صفر
دستور ceilگرد کردن به سمت مثبت بینهایت
دستور floorگرد کردن به سمت منفی بینهایت
[h=2]دستور round برای گرد کردن به سمت نزدیکترین عدد صحیح :[/h]چنانچه از دستور round ، برای گرد کردن عدد اعشاری مورد نظرمان استفاده کنیم، آنگاه آن عدد اعشاری، به نزدیکترین عدد صحیح، تبدیل خواهد شد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]round[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1.9[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]2[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]دستور fix برای گرد کردن به سمت صفر :[/h]فرض کنید از دستور fix ،برای گرد کردن یک عدد اعشاری، استفاده کنیم، چون آن عدد اعشاری، بین دو عدد صحیح قرار گرفته است، باید یکی از آن دو به عنوان گرد شده آن عدد اعشاری انتخاب شود. وقتی می گوییم گرد کردن به سمت صفر، یعنی اینکه از بین آن دو عدد صحیح، عددی انتخاب می شود که به صفر نزدیکتر باشد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]fix[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1.9[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]1[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]دستور ceil برای گرد کردن به سمت مثبت بینهایت :[/h]اگر از دستور ceil ، برای گرد کردن یک عدد اعشاری استفاده کنیم، از میان دو عدد صحیحی که در دو طرف عدد اعشاری قرار گرفته ان، عددی انتخاب می شود که به مثبت بینهایت، نزدیکتر باشد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ceil[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1.2[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]2[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]دستور floor برای گرد کردن به سمت منفی بینهایت :[/h]اگر از دستور floor برای گرد کردن یک عدد اعشاری استفاده کنیم، از میان دو عدد صحیحی که در دو طرف عدد اعشاری قرار گرفته اند، عددی انتخاب می شود که به منفی بینهایت، نزدیکتر باشد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]floor[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1.9[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
     [COLOR=#3333FF]1[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه ضرایب سری فوریه یک تابع متناوب در متلب

محاسبه ضرایب سری فوریه یک تابع متناوب در متلب

با استفاده از ضرایب سری فوریه یک تابع متناوب، می توانیم آن تابع را بر حسب مجموعه ای از توابع پایه تقریب بزنیم. فرض کنید تابع f(x) دارای دوره تناوب
باشد. در این صورت این تابع را می توانیم بر حسب ضرایبی از sin و cos به دست آوریم. این ضرایب به صورت زیر محاسبه می شوند :
Untitled.png
نکته مهم این است که برای به دست آوردن ضرایب سری فوریه، تابع f(x) حتما باید در بازه دوره تناوب خود، انتگرال پذیر باشد.
تابع f(x) را نیز به وسیله این ضرایب می توانیم به صورت زیر تقریب بزنیم :Untitled.pngحال می خواهیم با متلب برنامه ای بنویسیم که ضرایب سری فوریه تابعی دلخواه را برای ما به دست آورده و همچنین مقدار تقریب زده شده این تابع به وسیله این ضرایب سری فوریه را در یک x مشخص حساب کند. فرض می کنیم تابع به صورت f(x)=sin(x) باشد و کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
syms x
f=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
N=[COLOR=#3333FF]10[/COLOR];
a_0=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*int[COLOR=#008800]([/COLOR]f*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]0[/COLOR]*x[COLOR=#008800])[/COLOR],-[COLOR=#0000FF]pi[/COLOR],[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:N
    a_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*int[COLOR=#008800]([/COLOR]f*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR],-[COLOR=#0000FF]pi[/COLOR],[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR];
    b_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*int[COLOR=#008800]([/COLOR]f*[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR],-[COLOR=#0000FF]pi[/COLOR],[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]end[/COLOR]
a_n
b_n
 
f_new=a_0/[COLOR=#3333FF]2[/COLOR];
[COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:N
    f_new=f_new+a_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR]+b_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]end[/COLOR]
 
subs[COLOR=#008800]([/COLOR]f_new,x,[COLOR=#3333FF]5[/COLOR][COLOR=#008800])[/COLOR]
subs[COLOR=#008800]([/COLOR]f,x,[COLOR=#3333FF]5[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
تابع f_new که بر حسب ضرایب سری فوریه به دست می آید، تقریبی از تابع f می باشد. دستور subs(f_new,x,5)، در تابع f_new ، مقدار x=5 را جایگذاری می کند. همچنین در خط بعدی، مقدار subs(f,x,5) را محاسبه کرده ایم تا بتوانیم مقدار تقریبی f_new(5) را با مقدار f(5) مقایسه کنیم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]a_0 =
 
[COLOR=#3333FF]0[/COLOR]
 
 
a_n =
 
[COLOR=#008800][[/COLOR] [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR][COLOR=#008800]][/COLOR]
 
 
b_n =
 
[COLOR=#008800][[/COLOR] [COLOR=#008800]([/COLOR][COLOR=#3333FF]5734161139222659[/COLOR]*[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]/[COLOR=#3333FF]18014398509481984[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR], [COLOR=#3333FF]0[/COLOR][COLOR=#008800]][/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
   -[COLOR=#3333FF]0.9589[/COLOR]
 
 
[COLOR=#0000FF]ans[/COLOR] =
 
   -[COLOR=#3333FF]0.9589[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که دو مقدار، دقیقا با هم برابر شده اند.
 

P O U R I A

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

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

در مبحثی دیگر، چگونگی به دست آوردن ضرایب سری فوریه یک تابع متناوب را شرح دادیم، اما در آن مبحث، ما عبارت معادل برای تابع را داشتیم، اما گاهی پیش می آید که عبارت تابع را نداریم و تنها مقادیر گسسته متناظر با تابع را در یک بازه داریم. در چنین مواردی، باید برای به دست آوردن ضرایب سری فوریه تابع، انتگرالی که در فرمول آنها به کار می رود را به صورت تقریبی محاسبه کنیم.در این مبحث، می خواهیم تابع سینوس x را بررسی کنیم، بنابراین ابتدا مقادیر را با تابع sin موجود در متلب به دست می آوریم، سپس فرض می کنیم که عبارت خود تابع (یعنی سینوس) را نمی دانیم و تنها با استفاده از مقادیر گسسته تابع، می خواهیم ضرایب سری فوریه را به دست آوریم.فرمول های مربوط به سری فوریه را یادآوری می کنیم :با استفاده از ضرایب سری فوریه یک تابع متناوب، می توانیم آن تابع را بر حسب مجموعه ای از توابع پایه تقریب بزنیم. فرض کنید تابع f(x) دارای دوره تناوب
باشد. در این صورت این تابع را می توانیم بر حسب ضرایبی از sin و cos به دست آوریم. این ضرایب به صورت زیر محاسبه می شوند :
http://www.www.www.iran-eng.ir/attachment.php?attachmentid=245593&d=1436050849
نکته مهم این است که برای به دست آوردن ضرایب سری فوریه، تابع f(x) حتما باید در بازه دوره تناوب خود، انتگرال پذیر باشد.
تابع f(x) را نیز به وسیله این ضرایب می توانیم به صورت زیر تقریب بزنیم :

http://www.www.www.iran-eng.ir/attachment.php?attachmentid=245594&d=1436050939

اکنون یک برنامه متلب می نویسیم که به صورت تقریبی و با استفاده از مقادیر تابع، انتگرال موجود در فرمول ضرایب را (با به دست آوردن سطح زیر منحنی در شکل تابع) به دست آورد و تا یک اندیس مشخص (مثلا 10) مقادیر ضرایب را برایمان محاسبه کند و سپس بر اساس آنها، تابع را رسم کنیم تا شکل تابع به دست آید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

dx=[COLOR=#3333FF]0.01[/COLOR];
x=-[COLOR=#0000FF]pi[/COLOR]:dx:[COLOR=#0000FF]pi[/COLOR];
f=[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]plot[/COLOR][COLOR=#008800]([/COLOR]x,f,[COLOR=#A020F0]'linewidth'[/COLOR],[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]title[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'f'[/COLOR][COLOR=#008800])[/COLOR]

x_length=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]x[COLOR=#008800])[/COLOR];
N=[COLOR=#3333FF]10[/COLOR];

sum_value=[COLOR=#3333FF]0[/COLOR];
[COLOR=#0000FF]for[/COLOR] k=[COLOR=#3333FF]1[/COLOR]:x_length-[COLOR=#3333FF]1[/COLOR]
    sum_value=sum_value+dx*f[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]0[/COLOR]*x[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]end[/COLOR]
integral_value=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*sum_value;
a_0=integral_value;

[COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:N
    sum_value=[COLOR=#3333FF]0[/COLOR];
    [COLOR=#0000FF]for[/COLOR] k=[COLOR=#3333FF]1[/COLOR]:x_length-[COLOR=#3333FF]1[/COLOR]
        sum_value=sum_value+dx*f[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
    integral_value=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*sum_value;
    a_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]=integral_value;
    
    sum_value=[COLOR=#3333FF]0[/COLOR];
    [COLOR=#0000FF]for[/COLOR] k=[COLOR=#3333FF]1[/COLOR]:x_length-[COLOR=#3333FF]1[/COLOR]
        sum_value=sum_value+dx*f[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800]([/COLOR]k[COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR];
    [COLOR=#0000FF]end[/COLOR]
    integral_value=[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR]/[COLOR=#0000FF]pi[/COLOR][COLOR=#008800])[/COLOR]*sum_value;
    b_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]=integral_value;
[COLOR=#0000FF]end[/COLOR]
a_n
b_n

f_new=a_0/[COLOR=#3333FF]2[/COLOR];
[COLOR=#0000FF]for[/COLOR] n=[COLOR=#3333FF]1[/COLOR]:N
     f_new=f_new+a_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]cos[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR]+b_n[COLOR=#008800]([/COLOR]n[COLOR=#008800])[/COLOR]*[COLOR=#0000FF]sin[/COLOR][COLOR=#008800]([/COLOR]n*x[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]end[/COLOR]

[COLOR=#0000FF]figure[/COLOR]
[COLOR=#0000FF]plot[/COLOR][COLOR=#008800]([/COLOR]x,f_new,[COLOR=#A020F0]'r'[/COLOR],[COLOR=#A020F0]'linewidth'[/COLOR],[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]title[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'f-new'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
متغیر N برابر حداکثر مقدار اندیس برای ضرایب سری فوریه تعریف شده است. اگر قصد دارید که مثلا ضرایب سری فوریه تا اندیس های برابر 20 محاسبه شود، باید مقدار آن را به عدد 20 تغییر بدهید.

نتیجه :

شکل تابع اصلی :
504.jpg

شکل تابع تقریب زده شده (با استفاده از ضرایب سری فوریه) :


505.jpg


مقادیر به دست آمده برای ضرایب سری فوریه :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]a_n =

  1.0e-005 *

  Columns [COLOR=#3333FF]1[/COLOR] through [COLOR=#3333FF]9[/COLOR]

    [COLOR=#3333FF]0.6684[/COLOR]   -[COLOR=#3333FF]0.6684[/COLOR]    [COLOR=#3333FF]0.6684[/COLOR]   -[COLOR=#3333FF]0.6683[/COLOR]    [COLOR=#3333FF]0.6683[/COLOR]   -[COLOR=#3333FF]0.6682[/COLOR]    [COLOR=#3333FF]0.6681[/COLOR]   -[COLOR=#3333FF]0.6680[/COLOR]    [COLOR=#3333FF]0.6679[/COLOR]

  Column [COLOR=#3333FF]10[/COLOR]

   -[COLOR=#3333FF]0.6677[/COLOR]


b_n =

  Columns [COLOR=#3333FF]1[/COLOR] through [COLOR=#3333FF]9[/COLOR]

    [COLOR=#3333FF]1.0000[/COLOR]    [COLOR=#3333FF]0.0000[/COLOR]   -[COLOR=#3333FF]0.0000[/COLOR]    [COLOR=#3333FF]0.0000[/COLOR]   -[COLOR=#3333FF]0.0000[/COLOR]    [COLOR=#3333FF]0.0000[/COLOR]   -[COLOR=#3333FF]0.0000[/COLOR]    [COLOR=#3333FF]0.0000[/COLOR]   -[COLOR=#3333FF]0.0000[/COLOR]

  Column [COLOR=#3333FF]10[/COLOR]

    [COLOR=#3333FF]0.0000[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه تبدیل لاپلاس و معکوس تبدیل لاپلاس با دو دستور laplace و ilaplace در متلب

محاسبه تبدیل لاپلاس و معکوس تبدیل لاپلاس با دو دستور laplace و ilaplace در متلب

در متلب، دستور laplace ، برای محاسبه تبدیل لاپلاس و دستور ilaplace برای محاسبه معکوس تبدیل لاپلاس به کار می رود.

[h=2]محاسبه تبدیل لاپلاس با استفاده از دستور laplace در متلب :[/h]دستور laplace در متلب، برای محاسبه تبدیل لاپلاس به کار می رود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم از تابع زیر تبدیل لاپلاس بگیریم :
Untitled.jpg
کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms t
f=t^[COLOR=#3333FF]2[/COLOR]+t;
laplace[COLOR=#008800]([/COLOR]f[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با استفاده از دستور syms t ، متغیر t را به صورت سمبلیک تعریف کرده ایم. سپس f بر حسب t نوشته شده است. در آخر نیز، دستور laplace(f) ، تبدیل لاپلاس f را محاسبه خواهد کرد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]1[/COLOR]/s^[COLOR=#3333FF]2[/COLOR] + [COLOR=#3333FF]2[/COLOR]/s^[COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]محاسبه معکوس تبدیل لاپلاس با استفاده از دستور ilaplace در متلب :[/h]دستور ilaplace ، برای محاسبه معکوس تبدیل لاپلاس در متلب به کار می رود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]این بار از تبدیل لاپلاس مثال قبل، تبدیل لاپلاس معکوس می گیریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]syms s 
f=[COLOR=#3333FF]1[/COLOR]/s^[COLOR=#3333FF]2[/COLOR] + [COLOR=#3333FF]2[/COLOR]/s^[COLOR=#3333FF]3[/COLOR];
ilaplace[COLOR=#008800]([/COLOR]f[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
t^[COLOR=#3333FF]2[/COLOR] + t[/FONT]
[/FONT][/COLOR]
مشاهده می کنید که دقیقا همان تابع تعریف شده در مثال قبل می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه تبدیل z و معکوس تبدیل z با دو دستور ztrans و iztrans در متلب

محاسبه تبدیل z و معکوس تبدیل z با دو دستور ztrans و iztrans در متلب

دستور ztrans در متلب، برای محاسبه تبدیل z و دستور iztrans در متلب، برای محاسبه معکوس تبدیل z به کار می رود.

[h=2]محاسبه تبدیل z با دستور ztrans در متلب :[/h]دستور ztrans در متلب، برای محاسبه تبدیل z به کار می رود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
syms n;
f=n^[COLOR=#3333FF]3[/COLOR]+n^[COLOR=#3333FF]2[/COLOR];
ztrans[COLOR=#008800]([/COLOR]f[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول کدها، برای عدم تداخل با برنامه های پیشین اجرا شده در متلب می باشد. دستور clear all ، متغیرهایی که قبلا در نرم افزار متلب تعریف شده اند را پاک می کند. دستور close all ، تمامی پنجره های شکل که قبلا در متلب باز شده اند را می بندد و دستور clc نیز اطلاعاتی که قبلا در پنجره Command نمایش داده شده است را پاک می کند. دستور syms برای تعریف متغیر n ، به صورت سمبلیک، به کار رفته است.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#008800]([/COLOR]z^[COLOR=#3333FF]2[/COLOR] + z[COLOR=#008800])[/COLOR]/[COLOR=#008800]([/COLOR]z - [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]^[COLOR=#3333FF]3[/COLOR] + [COLOR=#008800]([/COLOR]z^[COLOR=#3333FF]3[/COLOR] + [COLOR=#3333FF]4[/COLOR]*z^[COLOR=#3333FF]2[/COLOR] + z[COLOR=#008800])[/COLOR]/[COLOR=#008800]([/COLOR]z - [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]^[COLOR=#3333FF]4[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]محاسبه معکوس تبدیل z با دستور iztrans در متلب :[/h]دستور iztrans در متلب، برای محاسبه معکوس تبدیل z به کار می رود. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
syms z;
f=[COLOR=#3333FF]2[/COLOR]*z/[COLOR=#008800]([/COLOR]z-[COLOR=#3333FF]2[/COLOR][COLOR=#008800])[/COLOR]^[COLOR=#3333FF]2[/COLOR];
iztrans[COLOR=#008800]([/COLOR]f[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
[COLOR=#3333FF]2[/COLOR]^n + [COLOR=#3333FF]2[/COLOR]^n*[COLOR=#008800]([/COLOR]n - [COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه ریشه های یک چند جمله ای با دستور roots در متلب

محاسبه ریشه های یک چند جمله ای با دستور roots در متلب

با دستور roots در متلب، می توانیم ریشه های یک چند جمله ای دلخواه را محاسبه کنیم. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم ریشه های چند جمله ای زیر را محاسبه کنیم :
Untitled.jpg
برای این منظور، ابتدا ضرایب جملات چند جمله ای را در یک بردار تعریف می کنیم و سپس با دستور roots ، ریشه ها را محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
p=[COLOR=#008800][[/COLOR][COLOR=#3333FF]2[/COLOR] -[COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]4[/COLOR] [COLOR=#3333FF]1[/COLOR][COLOR=#008800]][/COLOR];
r=[COLOR=#0000FF]roots[/COLOR][COLOR=#008800]([/COLOR]p[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]r =
 
   [COLOR=#3333FF]0.8558[/COLOR] + [COLOR=#3333FF]1.2767i[/COLOR]
   [COLOR=#3333FF]0.8558[/COLOR] - [COLOR=#3333FF]1.2767i[/COLOR]
  -[COLOR=#3333FF]0.2117[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین سه ریشه چند جمله ای، در خروجی، نمایش داده شده است.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تابع بسل نوع اول با دستور besselj در متلب

تابع بسل نوع اول با دستور besselj در متلب

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

[h=4]مثال :[/h]مقدار تابع بسل نوع اول مرتبه اول را برای مقادیر ذخیره شده درون بردار z محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
z = [COLOR=#008800]([/COLOR][COLOR=#3333FF]0[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]0.5[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]besselj[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR],z[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
عدد 1 نوشته شده درون پرانتز دستور besselj ، مشخص کرده است که تابع بسل نوع اول، به صورت مرتبه اول باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
         [COLOR=#3333FF]0[/COLOR]    [COLOR=#3333FF]0.0499[/COLOR]    [COLOR=#3333FF]0.0995[/COLOR]    [COLOR=#3333FF]0.1483[/COLOR]    [COLOR=#3333FF]0.1960[/COLOR]    [COLOR=#3333FF]0.2423[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تابع بسل نوع اول اصلاح شده (modified) با دستور besseli در متلب

تابع بسل نوع اول اصلاح شده (modified) با دستور besseli در متلب

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

[h=4]مثال :[/h]مقدار تابع بسل نوع اول اصلاح شده مرتبه اول را برای مقادیر ذخیره شده درون بردار z محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
z = [COLOR=#008800]([/COLOR][COLOR=#3333FF]0[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]0.5[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]besseli[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR],z[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
عدد 1 نوشته شده درون پرانتز دستور besseli ، مشخص کرده است که تابع بسل نوع اول اصلاح شده، به صورت مرتبه اول باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
         [COLOR=#3333FF]0[/COLOR]    [COLOR=#3333FF]0.0501[/COLOR]    [COLOR=#3333FF]0.1005[/COLOR]    [COLOR=#3333FF]0.1517[/COLOR]    [COLOR=#3333FF]0.2040[/COLOR]    [COLOR=#3333FF]0.2579[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تابع بسل نوع دوم با دستور bessely در متلب

تابع بسل نوع دوم با دستور bessely در متلب

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

[h=4]مثال :[/h]مقدار تابع بسل نوع دوم مرتبه اول را برای مقادیر ذخیره شده درون بردار z محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
z = [COLOR=#008800]([/COLOR][COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]bessely[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR],z[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
عدد 1 نوشته شده درون پرانتز دستور bessely ، مشخص کرده است که تابع بسل نوع دوم، به صورت مرتبه اول باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
   -[COLOR=#3333FF]1.4715[/COLOR]   -[COLOR=#3333FF]1.2604[/COLOR]   -[COLOR=#3333FF]1.1032[/COLOR]   -[COLOR=#3333FF]0.9781[/COLOR]   -[COLOR=#3333FF]0.8731[/COLOR]   -[COLOR=#3333FF]0.7812[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تابع بسل نوع دوم اصلاح شده (modified) با دستور besselk در متلب

تابع بسل نوع دوم اصلاح شده (modified) با دستور besselk در متلب

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

[h=4]مثال :[/h]مقدار تابع بسل نوع دوم اصلاح شده مرتبه اول را برای مقادیر ذخیره شده درون بردار z محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
z = [COLOR=#008800]([/COLOR][COLOR=#3333FF]0.5[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR];
[COLOR=#0000FF]besselk[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR],z[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
عدد 1 نوشته شده درون پرانتز دستور besselk ، مشخص کرده است که تابع بسل نوع دوم اصلاح شده، به صورت مرتبه اول باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
    [COLOR=#3333FF]1.6564[/COLOR]    [COLOR=#3333FF]1.3028[/COLOR]    [COLOR=#3333FF]1.0503[/COLOR]    [COLOR=#3333FF]0.8618[/COLOR]    [COLOR=#3333FF]0.7165[/COLOR]    [COLOR=#3333FF]0.6019[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه ریشه n ام یک عدد حقیقی با دستور nthroot در متلب

محاسبه ریشه n ام یک عدد حقیقی با دستور nthroot در متلب

با استفاده از دستور nthroot در متلب، می توانیم ریشه n ام یک عدد حقیقی را محاسبه کنیم. دستور nthroot را باید به صورت nthroot(X,n) به کار ببریم، که در آن X ، عدد حقیقی مورد نظر ما و n مرتبه ریشه می باشد (ریشه مرتبه n ام). به مثال زیر توجه کنید :

[h=4]مثال :[/h]ریشه مرتبه سوم عدد حقیقی 4- را محاسبه می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]nthroot[COLOR=#008800]([/COLOR]-[COLOR=#3333FF]4[/COLOR],[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]ans[/COLOR] =
 
   -[COLOR=#3333FF]1.5874[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

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

محاسبه کوچکترین توان 2 که بزرگتر از قدر مطلق یک عدد باشد ، با دستور nextpow2 در متلب

دستور nextpow2 در متلب، برای محاسبه کوچکترین عدد p می باشد که در رابطه زیر صدق کند :Untitled.jpgدر واقع، اگر دستور nextpow2 در متلب را به صورت nextpow2(A) به کار ببریم، می توانیم کوچکترین عددی را بیابیم که اگر عدد 2 به توان آن عدد برسد، از قدر مطلق A ، مساوی یا بزرگتر باشد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
A=[COLOR=#3333FF]6[/COLOR];
B=[COLOR=#0000FF]nextpow2[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]B =
 
     [COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

A=[COLOR=#008800][[/COLOR][COLOR=#3333FF]1[/COLOR] [COLOR=#3333FF]3[/COLOR] [COLOR=#3333FF]6[/COLOR] [COLOR=#3333FF]12[/COLOR] [COLOR=#3333FF]14[/COLOR] [COLOR=#3333FF]21[/COLOR] [COLOR=#3333FF]35[/COLOR][COLOR=#008800]][/COLOR]
B=[COLOR=#0000FF]nextpow2[/COLOR][COLOR=#008800]([/COLOR]A[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]A =
 
     [COLOR=#3333FF]1[/COLOR]     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]6[/COLOR]    [COLOR=#3333FF]12[/COLOR]    [COLOR=#3333FF]14[/COLOR]    [COLOR=#3333FF]21[/COLOR]    [COLOR=#3333FF]35[/COLOR]
 
 
B =
 
     [COLOR=#3333FF]0[/COLOR]     [COLOR=#3333FF]2[/COLOR]     [COLOR=#3333FF]3[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]4[/COLOR]     [COLOR=#3333FF]5[/COLOR]     [COLOR=#3333FF]6[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت به صورت جداگانه ، با دستور numden در متلب

محاسبه صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت به صورت جداگانه ، با دستور numden در متلب

با استفاده از دستور numden در متلب، می توانیم صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت را به صورت جداگانه، محاسبه کنیم و نتیجه هر کدام، یک چندجمله ای با ضرایبی به صورت عدد صحیح می باشد. البته باید دقت شود که دستور numden ، در ورودی خود، عدد نمی پذیرد و باید ورودی آن، به صورت سمبلیک باشد. به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
[COLOR=#008800][[/COLOR]n,d[COLOR=#008800]][/COLOR]=numden[COLOR=#008800]([/COLOR]sym[COLOR=#008800]([/COLOR][COLOR=#3333FF]2[/COLOR]/[COLOR=#3333FF]3[/COLOR][COLOR=#008800])[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با دستور sym ، کسر 2/3 را به صورت سمبلیک در آورده ایم (زیرا دستور numden ، عدد نمی پذیرد) و سپس با دستور numden ، صورت و مخرج کسر را محاسبه کرده ایم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]n =
 
[COLOR=#3333FF]2[/COLOR]
 
 
d =
 
[COLOR=#3333FF]3[/COLOR][/FONT]
[/FONT][/COLOR]
متغیر n ، برابر صورت کسر (Numerator) و متغیر d ، برابر مخرج کسر (denominator) می باشد.

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
syms x y;
[COLOR=#008800][[/COLOR]n,d[COLOR=#008800]][/COLOR]=numden[COLOR=#008800]([/COLOR]x/y+y/x[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با دستور syms ، دو متغیر x و y را به صورت سمبلیک تعریف کرده ایم تا در نتیجه آن، عبارت های ساخته شده با این دو متغیر نیز به صورت سمبلیک باشند و سپس با دستور numden ، صورت و مخرج کسر حاصل از عبارت نوشته شده درون پرانتز دستور numden را محاسبه کرده ایم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]n =
 
x^[COLOR=#3333FF]2[/COLOR] + y^[COLOR=#3333FF]2[/COLOR]
 
 
d =
 
x*y[/FONT]
[/FONT][/COLOR]
متغیر n ، برابر صورت کسر (Numerator) و متغیر d ، برابر مخرج کسر (denominator) می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
محاسبه نرم (norm) یک ماتریس یا بردار ، با دستور norm در متلب

محاسبه نرم (norm) یک ماتریس یا بردار ، با دستور norm در متلب

محاسبه نرم (norm) یک ماتریس یا بردار، دارای کاربردهای زیادی در روش های پردازش سیگنال و یا زمینه های تحقیقاتی دیگر است. رایج ترین نوع نرم، 2-norm می باشد، اما نرم های دیگری همانند infinity norm ، 1-norm و Frobenius norm نیز توسط دستور norm در متلب، قابل محاسبه می باشد. برای محاسبه انواع نرم، برای ماتریس X ، باید به صورت زیر عمل کنیم :
محاسبه 2-norm ماتریس X : به صورت norm(X) یا norm(X,2)
محاسبه 1-norm ماتریس X : به صورت norm(X,1)
محاسبه infinity norm ماتریس X : به صورت norm(X,Inf) که در آن Inf ، نماد بینهایت می باشد که در متلب به کار می رود.
محاسبه Frobenius norm ماتریس X : به صورت norm(X,'fro')

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


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
t=-[COLOR=#3333FF]1[/COLOR]:[COLOR=#3333FF]0.001[/COLOR]:[COLOR=#3333FF]1[/COLOR];    
X=chirp[COLOR=#008800]([/COLOR]t,[COLOR=#3333FF]200[/COLOR],[COLOR=#3333FF]1[/COLOR],[COLOR=#3333FF]300[/COLOR],[COLOR=#A020F0]'quadratic'[/COLOR][COLOR=#008800])[/COLOR];
n=[COLOR=#0000FF]norm[/COLOR][COLOR=#008800]([/COLOR]X[COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
ابتدا با دستور chirp ، یک سیگنال chirp ساخته ایم (یک سیگنال مشهور) و سپس با دستور norm ، نرم (2-norm) آن را محاسبه کرده ایم.

نتیجه :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]n =

   [COLOR=#3333FF]31.6290[/COLOR][/FONT]
[COLOR=#3333FF]
[/COLOR]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حل دستگاه چند معادله و چند مجهول با دستور solve در متلب

حل دستگاه چند معادله و چند مجهول با دستور solve در متلب

دستور solve در متلب، برای حل معادلات به کار می رود و چنانچه بخواهیم یک دستگاه چند معادله و چند مجهول را حل کنیم، باید معادلات را به دستور solve بدهیم تا این دستور، پاسخ دستگاه را محاسبه کند. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم دستگاه دو معادله و دو مجهول زیر را حل کنیم :Untitled.jpgبرای این منظور، دو معادله را درون پرانتز دستور solve می نویسیم. هر معادله، باید درون دو علامت ' قرار بگیرد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
S=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x+2*y=7'[/COLOR],[COLOR=#A020F0]'x-y=1'[/COLOR][COLOR=#008800])[/COLOR]
S=[COLOR=#008800][[/COLOR]S.x S.y[COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
دستور S=solve('x+2*y=7','x-y=1') ، دستگاه دو معادله و دو مجهول را حل می کند و عبارت S=[S.x S.y] نیز برای نمایش نتایج به دست آمده از حل دستگاه دو معادله و دو مجهول است.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]S = 
 
    x: [COLOR=#008800][[/COLOR]1x1 sym[COLOR=#008800]][/COLOR]
    y: [COLOR=#008800][[/COLOR]1x1 sym[COLOR=#008800]][/COLOR]
 
 
S =
 
[COLOR=#008800][[/COLOR] [COLOR=#3333FF]3[/COLOR], [COLOR=#3333FF]2[/COLOR][COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]فرض کنید بخواهیم دستگاه سه معادله و سه مجهول زیر را حل کنیم :Untitled.jpgمی نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]

S=solve[COLOR=#008800]([/COLOR][COLOR=#A020F0]'x+y+z=6'[/COLOR],[COLOR=#A020F0]'x-y^2+2*z=7'[/COLOR],[COLOR=#A020F0]'x+y-z=0'[/COLOR][COLOR=#008800])[/COLOR]
S=[COLOR=#008800][[/COLOR]S.x S.y S.z[COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]S = 
 
    x: [COLOR=#008800][[/COLOR]2x1 sym[COLOR=#008800]][/COLOR]
    y: [COLOR=#008800][[/COLOR]2x1 sym[COLOR=#008800]][/COLOR]
    z: [COLOR=#008800][[/COLOR]2x1 sym[COLOR=#008800]][/COLOR]
 
 
S =
 
[COLOR=#008800][[/COLOR] [COLOR=#3333FF]2[/COLOR],  [COLOR=#3333FF]1[/COLOR], [COLOR=#3333FF]3[/COLOR][COLOR=#008800]][/COLOR]
[COLOR=#008800][[/COLOR] [COLOR=#3333FF]5[/COLOR], -[COLOR=#3333FF]2[/COLOR], [COLOR=#3333FF]3[/COLOR][COLOR=#008800]][/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که دستگاه سه معادله و سه مجهول فوق، دارای دو سری پاسخ می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
پیاده سازی روش اویلر با کدهای متلب

پیاده سازی روش اویلر با کدهای متلب

روش اویلر، یک روش عددی برای حل معادلات دیفرانسیل مرتبه اول می باشد. به عنوان مثال، فرض کنید یک معادله دیفرانسیل مرتبه اول، به صورت زیر داشته باشیم :Untitled.jpgکه در آن، y تابعی از x می باشد. حال می خواهیم آن را با روش اویلر حل کنیم. اولین قدم این است که معادله را مطابق شکل کلی زیر بنویسیم :

Untitled.jpg


بنابراین معادله، به این صورت نوشته می شود :Untitled.jpgاکنون باید از رابطه بازگشتی روش اویلر، که به صورت زیر می باشد، استفاده کنیم
Untitled.jpg


که در آن، h ، اندازه گام می باشد. h میزان اختلاف بین x[SUB]n[/SUB] و x[SUB]n+1[/SUB] است، یعنی :Untitled.jpgاولین مقدار n ، برابر صفر می باشد و ما باید مقدار y[SUB]0[/SUB] که برای نقطه x[SUB]0[/SUB] می باشد را داشته باشیم، که همان شرط اولیه است. برای مثالی که در بالا بیان شد، این مقادیر به صورت زیر می باشند :
Untitled.jpg


اگر h را برابر 0.1 انتخاب کنیم، آنگاه x[SUB]1[/SUB] برابر 0.1 و y[SUB]1[/SUB] برابر مقدار y برای آن x می باشد که به صورت زیر به دست می آید :Untitled.jpgاکنون می توانیم از دو مقدار x[SUB]1[/SUB] و y[SUB]1[/SUB] ، مقدار y در نقطه x[SUB]2[/SUB]=0.2 را به دست بیاوریم و همین طور ادامه می دهیم تا تمامی نقاط دلخواه را در بازه مورد نظرمان از x ، محاسبه کنیم.

اکنون کدهای متلب را برای روش اویلر می نویسیم و همین معادله را که مثال زدیم، با آن حل می کنیم و پاسخ ها را برای بازه x بین 0 تا 5 رسم خواهیم کرد. کدهای متلب برای روش اویلر، به این صورت خواهند بود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF]clear[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]close[/COLOR] [COLOR=#0000FF]all[/COLOR]
[COLOR=#0000FF]clc[/COLOR]
 
x_0=[COLOR=#3333FF]0[/COLOR];
y_0=[COLOR=#3333FF]1[/COLOR];
h=[COLOR=#3333FF]0.1[/COLOR];
X=[COLOR=#3333FF]0[/COLOR]:[COLOR=#3333FF]0.1[/COLOR]:[COLOR=#3333FF]5[/COLOR];
L_X=[COLOR=#0000FF]length[/COLOR][COLOR=#008800]([/COLOR]X[COLOR=#008800])[/COLOR];
Y=[COLOR=#0000FF]zeros[/COLOR][COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR],L_X[COLOR=#008800])[/COLOR];
Y[COLOR=#008800]([/COLOR][COLOR=#3333FF]1[/COLOR][COLOR=#008800])[/COLOR]=y_0;
 
y_n=y_0;
[COLOR=#0000FF]for[/COLOR] mm=[COLOR=#3333FF]2[/COLOR]:L_X
    Y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR]=y_n+h*[COLOR=#008800]([/COLOR]y_n[COLOR=#008800])[/COLOR];
    y_n=Y[COLOR=#008800]([/COLOR]mm[COLOR=#008800])[/COLOR];
[COLOR=#0000FF]end[/COLOR]
 
[COLOR=#0000FF]plot[/COLOR][COLOR=#008800]([/COLOR]X,Y[COLOR=#008800])[/COLOR]
[COLOR=#0000FF]xlabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'x'[/COLOR][COLOR=#008800])[/COLOR]
[COLOR=#0000FF]ylabel[/COLOR][COLOR=#008800]([/COLOR][COLOR=#A020F0]'y'[/COLOR][COLOR=#008800])[/COLOR][/FONT]
[/FONT][/COLOR]
سه خط اول برنامه، برای عدم تداخل آن با نتایج حاصل از اجرای برنامه های قبلی در نرم افزار متلب می باشد. دستور clear all ، تمامی متغیرهایی که قبلا در نرم افزار متلب تعریف شده اند را پاک می کند. دستور close all ، پنجره تمامی شکل هایی که قبلا در متلب باز شده اند را می بندد. دستور clc ، اطلاعات نمایش داده شده در پنجره command را پاک می کند. x_0 و y_0 همان مقادیر مربوط به شرط اولیه هستند. یک بازه برای متغیر x ، در بردار X تعریف کرده ایم که مقادیر y برای تمامی نقاط بردار X را باید محاسبه کنیم. با دستور length ، طول بردار X محاسبه شده است و سپس با دستور zeros ، یک بردار هم اندازه با بردار X ساخته ایم که مقدار تمامی عناصر آن، برابر صفر است و نام آن را Y انتخاب کرده ایم، زیرا مقادیر y در این بردار ذخیره خواهند شد. مقدار y_0 را داریم و بنابراین باید آن را در اولین عنصر بردار Y قرار بدهیم. در حلقه for ، سایر مقادیر y با استفاده از رابطه بازگشتی محاسبه شده اند. در نهایت، با دستور plot ، مقادیر y که برای یک بازه از x محاسبه شده اند را رسم کرده ایم.

نتیجه :


matlab-192.jpg
 
بالا