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

حل معادله در متلب با انواع روشها (در سریعترین زمان)

matlab

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

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

 


متلب

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


 

حل معادلات پایه ریاضی با تابع solve در متلب

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

برای مثال معادله زیر را در نظر بگیرید، می خواهیم مقدار x را در آن به دست آوریم:

solve(‘x-5=0’)

خروجی

ans =

5

می توانید تابع را به صورت زیر نیز فراخوانی کنید:

y = solve(‘x-5 = 0’)

خروجی

y =

5

اگر سمت راست معادله را وارد نکنید:-

solve(‘x-5’)

خروجی

ans =

5

اگر معادله شامل چند متغیر یا نماد باشد، متلب به طور پیشفرض آن را براساس x حل می کند. با این حال تابع solve فرم دیگری نیز دارد:

solve(معادله, متغیر)

در این فرم می توانید متغیر مورد نظر در معادله را مشخص کنید.

به عنوان مثال برای حل معادله v – u – 3t2 = 0 براساس متغیر v باید به شکل زیر نوشته شود:

solve(‘v-u-3*t^2=0’, ‘v’)

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

ans =

3*t^2 + u

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

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

فرم کلی معادله درجه دوم به شکل زیر است:

matlab-solve-equation

به صورتی که،

matlab-solve-equation

معادلات درجه دوم به فرم های زیر نیز نوشته می شوند:

matlab-solve-equation

matlab-solve-equation

تابع solve ریشه های معادله را در یک آرایه برمیگرداند.

معادله درجه دو x2 -7x +12 = 0 را در نظر بگیرید. کد زیر را تایپ کنید:

eq = ‘x^2 -7*x + 12 = 0’;

s = solve(eq);

disp(‘The first root is: ‘), disp(s(1));

disp(‘The second root is: ‘), disp(s(2));

نتیجه زیر برگردانده می شود: –

The first root is:

3

The second root is:

4

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

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

تابع solve به شکل زیر نوشته می شود:

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

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

ans =

3

3

7

برای معادلات با درجه های بالاتر ریشه ها اعشار طولانی دارند. برای کوتاه کردن تعداد اعشار می توانید از نوع double استفاده کنید. معادله مرتبه چهار زیر را در نظر بگیرید:

x4 − 7x3 + 3x2 − 5x + 9 = 0

کد زیر را در متلب تایپ کنید:

eq = ‘x^4 – 7*x^3 + 3*x^2 – 5*x + 9 = 0’;

s = solve(eq);

disp(‘The first root is: ‘), disp(s(1));

disp(‘The second root is: ‘), disp(s(2));

disp(‘The third root is: ‘), disp(s(3));

disp(‘The fourth root is: ‘), disp(s(4));

% double استفاده از نوع

disp(‘Numeric value of first root’), disp(double(s(1)));

disp(‘Numeric value of second root’), disp(double(s(2)));

disp(‘Numeric value of third root’), disp(double(s(3)));

disp(‘Numeric value of fourth root’), disp(double(s(4)));

نتیجه زیر را برمیگرداند،

The first root is:

6.630396332390718431485053218985

The second root is:

1.0597804633025896291682772499885

The third root is:

– 0.34508839784665403032666523448675 – 1.0778362954630176596831109269793*i

The fourth root is:

– 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i

Numeric value of first root

6.6304

Numeric value of second root

1.0598

Numeric value of third root

-0.3451 – 1.0778i

Numeric value of fourth root

-0.3451 + 1.0778i

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

حل دستگاه معادلات با تابع solve در متلب

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

معادلات زیر را در نظر بگیرید:

5x + 9y = 5

3x – 6y = 4

برای به دست آوردن حل آن، کد زیر را در متلب تایپ کنید،

s = solve(‘5*x + 9*y = 5′,’3*x – 6*y = 4’);

s.x

s.y

خروجی

ans =

22/19

ans =

-5/57

به همین ترتیب می توانید دستگاه های معادلات خطی بزرگتر مانند مثال زیر را نیز حل کنید.

x + 3y -2z = 5

3x + 5y + 6z = 7

2x + 4y + 3z = 8

حل معادلات درجه دو با استفاده از تابع roots

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

matlab-solve-equation

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

matlab-solve-equation

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

roots([1 -3 2])

متلب ریشه های معادله چند جمله ای را برمیگرداند:

matlab-solve-equation

برای معادله زیر،

matlab-solve-equation

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

roots([1 0 -4])

خروجی:

matlab-solve-equation

حل معادلات درجه سه با استفاده از تابع roots

معادله زیر را در نظر بگیرید:

matlab-solve-equation

کد متلب آن در مقایسه با مثال قبلی تفاوت زیادی ندارد. تنها تفاوت در اینجا اضافه شدن ضریب درجه سوم غیر صفر است.

roots([1 6 0 -20])

نکته: دقت داشته باشید که 0 را بین 6 تا -20 وارد کنید زیرا ضریب جمله مرتبه اول معادله برابر با صفر است.

نتیجه زیر را برمیگرداند:

matlab-solve-equation

حل معادلات درجه چهار با استفاده از تابع roots

معادله چند جمله ای درجه چهار زیر را در نظر بگیرید:

matlab-solve-equation

کد متلب آن،

roots([1 2 -6*sqrt(10) +1])

نتیجه زیر را برمیگرداند:

word image 6

برای معادلات با درجه های بالاتر تعداد ضریب ها بیشتر می شود. فقط باید ترتیب وارد کردن ضریب ها در کد رعایت شود زیرا روی نتیجه تأثیر می گذارد. همیشه به یاد داشته باشید که 0 برای نشان دادن ضریبی است که در معادله وجود ندارد.

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

توابع expand و collect در متلب

توابع expand و collect به ترتیب برای گسترش و جمع آوری معادله در متلب به کار می روند. مثال زیر این مفاهیم را بهتر نشان خواهد داد.

زمانیکه با توابع نمادین کار می کنید باید متغیرهای نمادین را تعریف کنید. متغیر نمادین یا سمبلیک در متلب یعنی اینکه عدد خاصی به آن متغیر نسبت نمی دهیم و تنها با نماد آن کار می کنیم همانطور که بسیاری از معادلات ریاضی به همین ترتیب حل می شوند. دو نماد x و y رایجترین نمادها هستند.

در متلب از دستور syms برای تعریف متغیر نمادین استفاده می شود.

syms x %symbolic variable x

syms y %symbolic variable y

% expanding equations

expand((x-5)*(x+9))

expand((x+2)*(x-3)*(x-5)*(x+7))

expand(sin(2*x))

expand(cos(x+y))

% collecting equations

collect(x^3 *(x-7))

collect(x^4*(x-3)*(x-5))

نتیجه زیر را برمیگرداند:

ans =

x^2 + 4*x – 45

ans =

x^4 + x^3 – 43*x^2 + 23*x + 210

ans =

2*cos(x)*sin(x)

ans =

cos(x)*cos(y) – sin(x)*sin(y)

ans =

x^4 – 7*x^3

ans =

x^6 – 8*x^5 + 15*x^4

تعریف تابع در متلب (ساده ترین روش)

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

تابع factor یک عبارت را در معادله فاکتورگیری می کند و تابع simplify یک عبارت را ساده می کند. در مثال زیر این مفاهیم بهتر نشان داده شده است:

syms x

syms y

factor(x^3 – y^3)

factor([x^2-y^2,x^3+y^3])

simplify((x^4-16)/(x^2-4))

نتیجه زیر را برمیگرداند:

ans =

(x – y)*(x^2 + x*y + y^2)

ans =

[ (x – y)*(x + y), (x + y)*(x^2 – x*y + y^2)]

ans =

x^2 + 4

آموزش مشتق در متلب (به زبان ساده)

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

1 دیدگاه. ارسال دیدگاه جدید

  • سلام خسته نباشید میخواستطفا راهنمایی کنیدم یک معادله درجه دوم را با استفاده از روش داده محور حل کنم ل

    پاسخ

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست