آکادمی سیم پاور

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

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

تا حالا، ما تمامی مثال های کاری در متلب و همچنین gnu را مشاهده کردیم، متناوباً octave نامیده می شوند.

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

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

برای مثال، اجازه دهید  x را در معادله x-5=0 حل کنیم

523

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

524

همچنین شما می توانید با فراخوانی تابع به این صورت آن را حل کنید:

525

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

526

شما ممکن است حتی طرف راست معادله را نداشته باشید:

527

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

528

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

529

که در آن، شما می توانید متغیرها را ذکر کنید.

برای مثال، اجازه دهید معادله v-u-3t2=0، برای  v حل کنیم.

530

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

531

حل معادله جبری پایه در ctave

دستور root  برای حل معادله جبری در octave استفاده می شود و شما می توانید مثال های بالا را به صورت زیر بنویسید:

برای مثال، اجازه دهید x را در معادله x-5=0 حل کنیم:

roots([l,-5])

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

y = roots([l,-5])

532

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

533

حل معادلات در جه دوم در octave

 مثال زیر معادله درجه دوم x2-7x+12=0 را  در octave حل می کند.یک فایل اسکریپت ایجاد کنید و  کد زیر را در آن تایپ نمایید:

s = roots([l,-7,12]);

disp(‘the first root is: ‘), disp(s(l));

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

زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

535

 

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

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

مثال زیر معادله درجه دوم x2-7x+12=0 را حل می کند.یک فایل اسکریپت ایجاد کنید و  کد زیر را در آن تایپ نمایید:

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

s = solve(eq);

disp(‘the first root is: ‘), disp(s(l));

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

زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

534

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

x-3)2(x-7)=0) را حل کنیم:

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

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

536

در رابطه با معادلات مرتبه بالاتر ، ریشه ها حاوی شرایط بیشتر و بلندی هستند. شما می توانید  مقادیر عددی مانند ریشه ها را  با تبدیل  آن ها double  کنید.مثال زیر معادله مرتبه چهارx4-7x3+3x2-5x+9=0 را حل می کند.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

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

s = solve(eq);

disp(‘the first root is: ‘), disp(s(l));

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

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

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

% converting the roots to double type

disp(‘numeric value of first root’), disp(double(s(l)));

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)));

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

537

لطفاً به دو ریشه آخر توجه داشته باشید که ارقام پیچیده ای هستند.

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

مثال زیر معادله مرتبه چهار  x4-7x3+3x2-5x+9=0 را حل می کند.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

v :[l,·7, 3,-5, 9]:

s = roots(v);

% converting the roots to double type

disp(‘numeric value of first root’), disp(double(s(l)));

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)));

زمانی که شما فایل را اجرا می کنید، نتیجه زیر را بر می گرداند:

538

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

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

اجازه دهید این معادله را حل کنیم:

5x+9y=5

3x-6y=4

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

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

s . x

s . y

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نمایش داده می شود.

539

با همین روش شما می توانید سیستم های خطی بزرگتری را حل نمایید.مجموعه معادلات زیر را در نظر داشته باشید:

x+3y-2z=5

3x+5y+6z=7

2x+4y+3z=8

سیستم حل معادلات در octave

ما روش های اندک متفاوتی برای حل سیستم از  معادلات خطی’n’در ‘n’ مجهول داریم.اجازه دهید از یک مثال ساده برای نمایش آن استفاده کنیم.

اجازه دهید معادلات زیر را حل کنیم:

5x+9y=5

3x-6y=4

همچنین یک سیستم از معادلات خطی می تواند به  عنوان معادله ماتریس مجرد ax=b نوشته شود، که a ضریب ماتریس است، b بردار ستونی که حاوی سمت راست معادله خطی است و x بردار ستونی نشان دهنده راه حل که در برنامه زیر نشان داده می شود:

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:

a =[5, 9;3,-6];

b = [5 ; 4] ;

a \ b

زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

541

با همین روش،  شما می توانید سیستم های خطی بزرگتر به صورت داده شده در زیر را حل نمایید:

x+3y-2z=5

3x+5y+6z=7

2x+4y+3z=8

گسترش و جمع آوری معادلات در متلب

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

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

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x %symbolic variable x

syms y %symbolic variable x

% 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))

زمانی که شما فایل را اجرا می کنید، نتایج زیر نشان داده می شوند:

542

گسترش و جمع آوری معادلات در octave

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

زمانی که شما با تعدادی از توابع نمادین کار می کنید، شما باید متغیرهای نمادین را تعریف کنید اما octave روش های متفاوتی برای تعریف متغیرهای نمادین دارد.توجه کنید که از sin و cos استفاده شده است، آن ها نیز در بسته نمادین تعریف شده اند.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

% first of all load the package, make sure its installed.

pkg load symbolic

% make symbols module available

symbols

% define symbolic variables

x = sym (‘x‘);

y = sym )‘y‘(;

z = sym (‘z‘);

% 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), z)

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

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نمایش داده می شود:

543

تجزیه و ساده سازی عبارات جبری

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

مثال

 یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:

syms x

syms y

factox(xa3- ya3)

factox([xa2-ya2,xa3+ya3])

simplify((xa4-16)/(xa2-4))

زمانی که فایل را ایجاد می کنید، نتیجه زیر نشان داده می شود:

544

خرید کتاب 28 گام موثر در فتح متلب

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

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

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