در این قسمت از دوره آموزشی متلب فنولوژی، در مورد چندجملهایها در متلب صحبت میکنیم. برای مطالعهی بیشتر میتوانید به بخش محاسبات جبری در متلب مراجعه کنید. با ما همراه باشید.
چندجملهایها در متلب
چندجملهایها در متلب را میتوان به صورت یک بردار در متلب نشان داد که ضرایب چندجملهای از توان زیاد به کم در آن ذخیره میشوند. برای مثال عبارتهای زیر در متلب معادل هستند:
P(x) = x4 + ۷x3 – ۵x + 9
p = [1 7 0 -5 9];
ارزیابی چندجملهایها در متلب
با استفاده از تابع polyval میتوان در یک مقدار مشخص چندجملهایها را ارزیابی کرد. برای مثال اگر بخواهیم در مثال بالا مقدار چندجملهای را در نقطه x = 4 حساب کنیم، از قطعه کد زیر استفاده میکنیم که جواب در خروجی ۶۹۳ خواهد بود.
1 2 |
p = [1 7 0 -5 9]; polyval(p,4) |
ارزیابی ماتریسی از چندجملهایها در متلب
برای این کار از تابع polyvalm استفاده میکنیم. در اصل به جای محاسبهی مقدار چندجملهای در یک نقطه، اینجا مقدار چندجملهای را در تک تک مقادیر ماتریس ورودی محاسبه میکنیم و در یک ماتریس خروجی نشان میدهیم. به کدهای زیر توجه کنید:
1 2 3 |
p = [1 7 0 -5 9]; X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8]; polyvalm(p, X) |
مشاهده خروجی:
1 2 3 4 5 |
ans = 2307 -1769 -939 4499 2314 -2376 -249 4695 2256 -1892 -549 4310 4570 -4532 -1062 9269 |
یافتن ریشههای چندجملهایها در متلب
با استفاده از تابع roots میتوان ریشههای یک بردار چندجملهای را محاسبه کرد. به همان مثال p توجه کنید:
1 2 |
p = [1 7 0 -5 9]; r = roots(p) |
مشاهدهی خروجی:
1 2 3 4 5 |
r = -6.8661 + 0.0000i -1.4247 + 0.0000i 0.6454 + 0.7095i 0.6454 - 0.7095i |
با استفاده از تابع poly میتوان برعکس تابع roots از ریشههای معادله به ضرایب بردار مشخصهی آن رسید:
1 2 3 4 |
p = [1 7 0 -5 9]; r = roots(p); p2 = poly(r) |
متلب کد بالا را اجرا میکند و خروجی به صورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 |
p2 = Columns 1 through 3: 1.00000 + 0.00000i 7.00000 + 0.00000i 0.00000 + 0.00000i Columns 4 and 5: -5.00000 - 0.00000i 9.00000 + 0.00000i |
برازش منحنی چندجملهایها در متلب
در برازش منحنی سعی میکنیم نزدیکترین چندجملهای ممکن را پیدا کنیم که بتواند دادههای ما را پوشش دهد و بر آنها منطبق شود. برای این کار متلب با استفاده از تابع polyfit و معیار حداقل مربعات عمل میکند. به سینتکس زیر توجه کنید. x و y شامل مجموعه دادههای ما هستند و n درجهی بزرگترین توان چندجملهای است.
1 |
p = polyfit(x,y,n) |
مثال: یک فایل اسکریپت مانند زیر ایجاد کنید.
1 2 3 4 5 6 7 |
x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %دادههای ما p = polyfit(x,y,4) x2 = 1:.1:6; y2 = polyval(p,x2); plot(x,y,'o',x2,y2) grid on |
با اجرای کد بالا نتایج زیر را مشاهده خواهید کرد:
1 2 |
p = 4.1056 -47.9607 222.2598 -362.7453 191.1250 |