آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

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

دستور solve در متلب (MATLAB)، برای حل معادلات به کار می رود و چنانچه بخواهیم یک دستگاه چند معادله و چند مجهول را حل کنیم، باید معادلات را به دستور solve بدهیم تا این دستور، پاسخ دستگاه را محاسبه کند.

نکته مهم

دستور solve در نسخه های قدیمی متلب (MATLAB)، تعریف معادلات را به صورت ذکر شده در بین علامت های ' دریافت می کرد (مثل کد solve('x+2*y=7','x-y=1') )، اما در نسخه های جدید متلب (MATLAB)، دیگر علامت ' در تعریف معادله به کار نمی رود و به جای آن، از دستور syms برای تعریف متغیرها به صورت سمبلیک (Symbolic) و همچنین ازعلامت های == در تعریف معادله استفاده می شود (مثل کدهای syms x y و solve(x+2*y==7, x-y==1) ).

با توجه به این نکته، این آموزش برای نسخه های جدید متلب (MATLAB) است، بنابراین اگر از نسخه های قدیمی متلب (MATLAB) استفاده می کنید، به جای این آموزش، کلید شماره 140 را بخوانید.

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

مثال

فرض کنید بخواهیم دستگاه دو معادله و دو مجهول زیر را حل کنیم :

\[ \begin{aligned} \begin{cases} x+2y=7 \\ x-y=1 \end{cases} \end{aligned} \]

برای این منظور، با استفاده از دستور syms ، متغیرها را به صورت سمبلیک (Symbolic) تعریف می کنیم و سپس دو معادله را درون پرانتز دستور solve می نویسیم. دقت کنید که به جای علامت = در معادله، باید علامت های == نوشته شوند :

3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.

دستور S = solve(x + 2*y == 7, x - y == 1) ، دستگاه دو معادله و دو مجهول را حل می کند.

نتیجه :

نکته

می توانیم کد متلب (MATLAB) مورد نظر را به شکل دیگری نیز بنویسیم :

نتیجه :

مثال

فرض کنید بخواهیم دستگاه سه معادله و سه مجهول زیر را حل کنیم :

\[ \left\{ {\matrix{ {x + y + z = 9} \hfill \cr {2x + y - 3z = 5} \hfill \cr {x - y + z = 3} \hfill \cr } } \right. \]

کد متلب (MATLAB) زیر را اجرا می کنیم :

نتیجه :

نکته

می توانیم کد متلب (MATLAB) مورد نظر را به شکل دیگری نیز بنویسیم :

نتیجه :

مثال

فرض کنید بخواهیم دستگاه سه معادله و سه مجهول زیر را حل کنیم :

\[ \begin{aligned} \begin{cases} x+y+z=6 \\ x-y^2+2z=7 \\ x+y-z=0 \end{cases} \end{aligned} \]

کد متلب (MATLAB) زیر را اجرا می کنیم :

نتیجه :

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

نکته

می توانیم کد متلب (MATLAB) مورد نظر را به شکل دیگری نیز بنویسیم :

نتیجه :

نویسنده علیرضا گلمکانی
شماره کلید 28198
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
زیبا
۱۴۰۱/۰۳/۱۹
۰۰:۰۶

سلام
دستگاه معادلاتی دارم که تعداد معادلات و مجهولات زیاده و معادلات را در یک حلقه for تعریف کردم و از دستور fsolve برای حل معادلات استفاده میکنم ولی پس از حل همان حدس اولیه را به عنوان جواب میده. کسی میتونه کمک کنه که مشکل از کجاست؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)