چگونه در متلب معادلات ریاضی را حل کنیم؟

چکیده مقاله

بارها و بارها برای بسیاری از دانشجویان و مهندسان پیش آمده است که بخواهند یک معادله را حل کنند و پاسخ را بدست بیاورند. این هدف با بسیاری از نرم‌افزارها قابل دستیابی است اما دانستن این روش در نرم‌افزار متلب برای ما اهمیت ویژه‌ای دارد. در این مقاله قصد داریم به آموزش حل معادلات به کمک دستورات solve و fzero بپردازیم.


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

دستور solve

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

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

نتیجه دستور بالا به صورت زیر خواهد بود :

ans =
۵^(۱/۲) + ۱
۱ – ۵^(۱/۲)

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

همانطور که می‌بینیم، در بالا دو پاسخ معادله در خروجی نمایش داده شده‌اند. دو پاسخ معادله، مقادیر دقیق بوده و چنانچه بخواهیم که مقدار عددی آن را بدانیم باید از دستور (double(ans یا (vpa(ans استفاده کنیم.

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

نتیجه دستورات بالا به صورت زیر است :

A =
۵^(۱/۲) + ۱
۱ – ۵^(۱/۲)

B =
۳٫۲۳۶۱
-۱٫۲۳۶۱

و چنانچه از دستور vpa استفاده کنیم :

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

نتیجه دستور :

A =
۵^(۱/۲) + ۱
۱ – ۵^(۱/۲)

B =
۳٫۲۳۶۰۶۷۹۷۷۴۹۹۷۸۹۶۹۶۴۰۹۱۷۳۶۶۸۷۳۱۳
-۱٫۲۳۶۰۶۷۹۷۷۴۹۹۷۸۹۶۹۶۴۰۹۱۷۳۶۶۸۷۳۱۳

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

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

نتیجه دستور :

ans =
exp(2*x – ۱)

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

بیشتر بخوانید : تعریف متغیرها در متلب به صورت سیمبلیک

حل دومعادله دومجهول به وسیله دستور solve

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

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

نتیجه دستور :

x =
۲*۲^(۱/۲) + ۱
۱ – ۲*۲^(۱/۲)

y =
۴*۲^(۱/۲) + ۷
۷ – ۴*۲^(۱/۲)

حل این معادله شامل دو سری جواب است، پاسخ سری اول (x(1 و (y(1 و پاسخ سری دوم (x(2 و (y(2 است. برای مثال اگر ما پاسخ اول را بخواهیم :

x1=x(1)
y1=y(1)

نتیجه دستور :

x1 =
۲*۲^(۱/۲) + ۱

y1 =
۴*۲^(۱/۲) + ۷

دقت کنیم که در حل بالا پاسخ را به بردار [x,y] نسبت دادیم که پاسخ‌ها در خروجی نمایش داده شدند. در صورتی که پاسخ را به برداری مانند [x,y] نسبت ندهیم :

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

نتیجه دستور بالا به صورت زیر است :

solution =
x: [۲×۱ sym]
y: [۲×۱ sym]

شاید سوال پیش بیاید که در این حالت چگونه می‌توان جواب‌ها را دید؟! برای دیدن مقادیر بردارهای x و y، کافی است که دستورات زیر را اجرا کنیم :

x=solution.x
y=solution.y

نتیجه :

x =
۲*۲^(۱/۲) + ۱
۱ – ۲*۲^(۱/۲)

y =
۴*۲^(۱/۲) + ۷
۷ – ۴*۲^(۱/۲)

پاسخ سری اول (solution.x(1 و (solution.y(1 و پاسخ سری دوم (solution.x(2 و (solution.y(2 می‌باشد. در صورتی که پاسخ سری اول مورد نظر ما باشد :

x1=solution.x(1)
y1=solution.y(1)

نتیجه دستور :

x1 =
۲*۲^(۱/۲) + ۱

y1 =
۴*۲^(۱/۲) + ۷

در برخی معادلات دستور solve نمی‌تواند حل به صورت سیمبلیک ارائه کند، در اینگونه موارد دستور solve سعی می‌کند که یک حل عددی را بیابید. برای مثال :

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

نتیجه :

ans =
۱٫۱۰۶۰۶۰۱۵۷۷۰۶۲۷۱۹۱۰۶۱۶۷۳۷۲۹۷۰۳۰۱

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

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

نتیجه دستور بالا :

ans =
۰٫۵۸۸۵۳۲۷۴۳۹۸۱۸۶۱۰۷۷۴۳۲۴۵۲۰۴۵۷۰۲۹

همانطور که در شکل بالا می‌بینیم معادله فوق بیش از یک جواب دارد. در صورتی که بخواهیم پاسخ دلخواه خود را به دست آوریم از دستور fzero مشخص می‌کنیم که پاسخ مورد نظر ما نزدیک x=3 است :

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

نتیجه دستور :

ans =
۳٫۰۹۶۴

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

بیشتر بخوانید : بردارها و ماتریس‌ها در متلب – MATLAB

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

اگر می‌خواهید متلب – MATLAB را به صورت کاملا حرفه‌ای و تخصصی یاد بگیرید، ما کامل‌ترین دوره‌های آموزشی متلب را برای شما آماده کرده‌ایم. برای شروع یادگیری روی لینک زیر کلیک کنید.


دروه آموزشی متلب – MATLAB


دریافت نسخه PDF مقاله : حل معادلات در متلب – MATLAB

به این مقاله امتیاز بدید!

91%
91%
بسیار عالی

یکی از شاخص‌های ما جهت بهبود کیفیت محتوای مقالات ارائه شده استفاده از سیستم امتیازدهی توسط شما کاربران گرامی است. با امتیاز دادن به این مقاله ما را در راستای ارتقا و به‌روزرسانی کیفیت آن راهنمایی نمایید. شما همچنین می‌توانید سوالات، پیشنهادات و انتقادات خود را در پایین همین صفحه از طریق بخش نظرات با ما در میان بگذارید. پیشاپیش از توجه شما دوست عزیز سپاسگزاریم.

  • امتیاز تخصصی
    9.1
  • امتیاز کاربران (رای‎ها)
    9.6
اشتراک‌گذاری