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

معادله (واژه فارسی: هم چندی یا هَموگـِش) در ریاضیات بیان برابری دو چیز با استفاده از نماد‌هاست. در تمام معادله‌ها علامت تساوی (=) دیده می‌شود. هر معادله دو طرف دارد که در دو طرف علامت تساوی ظاهر می‌شوند.

در ریاضی معادله معمولاً بیان برابری دو عبارت است که در یکی یا هردوی آن‌ها متغیر یا متغیرهائی وجود دارند. اما برای حل معادلات با توجه به نوع آنها روشهای گوناگونی پیشنهاد میشود.

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

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

دستور solve :

solve(‘x^2-2*x-4=0’)

نتیجه :

ans =

 5^(1/2) + 1

 1 – 5^(1/2)

دقت شود که معادله باید بین علامت ‘ قرار بگیرد.
دو پاسخ معادله در خروجی نمایش داده شده است. دو پاسخ معادله، پاسخ های دقیق معادله می باشند و چنانچه بخواهیم آنها را به صورت عددی ببینیم باید دستور double(ans) و یا vpa(ans) را اجرا کنیم. به عنوان مثال با دستور double داریم :

A=solve(‘x^2-2*x-4=0’)

B=double(A)

نتیجه :

A =

 5^(1/2) + 1

 1 – 5^(1/2)

B =

    3.2361

   -1.2361

و با دستور vpa داریم :

A=solve(‘x^2-2*x-4=0’)

B=vpa(A)

نتیجه :

A =

 5^(1/2) + 1

 1 – 5^(1/2)

 

B =

  3.2360679774997896964091736687313

 -1.2360679774997896964091736687313

دستور solve همچنین قادر است که معادلات شامل دو متغیر را حل نماید :

solve(‘2*x-log(y)=1′,’y’)

نتیجه :

ans =

exp(2*x – 1)

دقت شود چون می خواهیم متغیر y را بر حسب x به دست آوریم، باید عبارت ‘y’ را پس از معادله بنویسیم .

اگر بخواهیم برحسب متغیر x معادله را حل کنیم مینویسیم:

solve(‘2*x-log(y)=1′,’x’)

نتیجه:

ans =

log(y)/2 + 1/2

چنانچه دو معادله بر حسب x و y داشته باشیم، آنگاه می توان مقادیر دو متغیر x و y را به دست آورد :

[x,y]=solve(‘x^2-y=2’,‘y-2*x=5’)

نتیجه :

x =

 2*2^(1/2) + 1

 1 – 2*2^(1/2)

 

 y =

 4*2^(1/2) + 7

 7 – 4*2^(1/2)

این دو معادله دارای دو سری پاسخ است، پاسخ سری اول x(1) و y(1) و پاسخ سری دوم x(2) و y(2) می باشد. چنانچه پاسخ اول مورد نظر ما باشد، می نویسیم :

دقت شود که در کد قبل، پاسخ دو معادله را به بردار [x,y] نسبت دادیم و پاسخ ها در خروجی نمایش داده شدند. چنانچه پاسخ دو معادله را به بردار [x,y] نسبت ندهیم، آنگاه پاسخ ها در خروجی نمایش داده نمی شوند :

z=solve(‘x^2-y=2′,’y-2*x=5’)

نتیجه :

z = 

    x: [2×1 sym]

    y: [2×1 sym]

برای دیدن مقادیر بردارهای x و y ، کافی است که دستورات z.x و z.y را اجرا کنید :

x=z.x

y=z.y

نتیجه :

x =

 2*2^(1/2) + 1

 1 – 2*2^(1/2)

y =

 4*2^(1/2) + 7

 7 – 4*2^(1/2)

 

در بعضی موارد، معادله بیش از یک پاسخ دارد و دستور solve پاسخی را برمی گرداند که مد نظر ما نبوده است. به عنوان مثال :

solve(‘exp(-x)=sin(x)’)

نتیجه :

ans =

0.5885327439818610774324520457029

به شکل زیر توجه کنید :

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

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

دستور fzero :

همان مثال قبل را این بار با fzero حل می کنیم و برای دستور fzero مشخص می کنیم که پاسخ نزدیک x=3 را بیابد :

fzero(inline(‘exp(-x)-sin(x)’),3)

نتیجه :

ans =

    3.0964

بنابراین دستور fzero دقیقا همان پاسخ مد نظر ما که نزدیک x=3 می باشد را برگرداند. 

دقت شود که در تعریف معادله، از علامت = استفاده نکردیم و دستور به طور خودکار، عبارت درون دو علامت ‘ را برابر صفر قرار می دهد.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.