学习笔记-Matlab之多项式详解
本文內容概述:
- 1、多項式的表示
- 2、多項式的計算
- polyval函數
- 3、多項式的根
- 1)數值根
- roots函數
- poly函數
- 2)符號根
- 特定區間內的根
- fzero()
- 1)數值根
- 4、多項式求微分和積分
- 1)求微分/求導數
- polyder函數
- 2)求微分
- polyint函數
- 1)求微分/求導數
- 5、多項式曲線的擬合
- polyfit函數
正文
多項式:諸如pnxn+pn?1xn?1+...+p2x2+p1x+p0p_nx^n+p_{n-1}x^{n-1}+...+p_2x^2+p_1x+p_0pn?xn+pn?1?xn?1+...+p2?x2+p1?x+p0?,包含非負整數指數的單個變量的表達式。
1、多項式的表示
Mathlab將多項式表示為行向量,其中的每個元素是按降冪排序的系數,例如p=[p2,p1,p0]表示多項式p(x)=p2x2+p1x+p0p(x)=p_2x^2+p_1x+p_0p(x)=p2?x2+p1?x+p0?。
多項式p(x)=4x5?3x2+x+1p(x)=4x^5-3x^2+x+1p(x)=4x5?3x2+x+1的表示:
p=[4 0 0 -3 2 1]2、多項式的計算
根據特定值計算多項式
polyval(p,1) %計算多項式p,x=1的值,對于上述例子,輸出4以矩陣形式計算多項式
X = [2 4 5; -1 0 3; 7 1 5]; Y = polyvalm(p,X) %輸出:Y = 154360 78561 19306549001 24072 59692215378 111419 2695823、多項式的根
(1) 數值根
roots函數
例:創建一個向量以表示多項式 x2?x?6x^2?x?6x2?x?6,然后計算多項式的根。
poly函數
poly 函數返回具有指定根的多項式。對向量執行運算時,poly 和 roots 為反函數,因此 poly(roots§) 返回 p。
對矩陣執行運算時,poly 函數會計算矩陣的特征多項式。特征多項式的根是矩陣的特征值。因此,roots(poly(A)) 和 eig(A) 返回相同的答案(取決于舍入誤差、排序和縮放)。
(2)符號根:以符號形式計算多項式
solve函數
計算多項式的根
factor函數
計算多項式各項的因子
(3)求特定區間內的根
使用 fzero 函數求多項式在特定區間內的根。例如,創建一個函數句柄以表示多項式 。
p = @(x) 3*x.^7 + 4*x.^6 + 2*x.^5 + 4*x.^4 + x.^3 + 5*x.^2;在區間 [-2,1]內繪制該函數。
x = -2:0.1:1; plot(x,p(x)) ylim([-100 50]) grid on hold on輸出:
從繪圖中,多項式在 0 和另一個接近 -1.5 的位置各有一個簡單的根。使用 fzero 計算并繪制接近 -1.5 的根。
4、多項式求微分和積分
1)求微分/求導數
使用 polyder函數獲取多項式p(x)=x3?2x?5p(x)=x^3-2x-5p(x)=x3?2x?5的導數,生成的多項式為q(x)=ddxp(x)=3x2?2q(x)=\frac d {dx}p(x)=3x^2-2q(x)=dxd?p(x)=3x2?2 。
polyder 也可以計算兩個多項式積或商的導數。例如,創建兩個向量來表示多項式a(x)=x2+3x+5a(x)=x^2+3x+5a(x)=x2+3x+5和b(x)=2x2+4x+6b(x)=2x^2+4x+6b(x)=2x2+4x+6 。
通過調用帶有單個輸出參數的 polyder來計算兩個多項式之積的導數,生成的多項式為c(x)=8x3+30x2+56x+38c(x)=8x^3+30x^2+56x+38c(x)=8x3+30x2+56x+38。
通過調用帶有兩個輸出參數的 polyder來計算兩個多項式之商的導數,生成的多項式為:q(x)=ddx[a(x)b(x)]=?2x2?8x?24x4+16x3+40x2+48x+36=q(x)d(x)q(x)=\frac d {dx}[\frac {a(x)} {b(x)}]=\frac {-2x^2-8x-2} {4x^4+16x^3+40x^2+48x+36}=\frac {q(x)} {d(x)}q(x)=dxd?[b(x)a(x)?]=4x4+16x3+40x2+48x+36?2x2?8x?2?=d(x)q(x)?
[q,d] = polyder(a,b) % 輸出 q =-2 -8 -2 d =4 16 40 48 36(2)求微分
使用 polyint函數 對多項式p(x)=4x3?3x2+1p(x)=4x^3-3x^2+1p(x)=4x3?3x2+1求積分,生成的多項式為 q(x)=∫p(x)dx=x4?x3+xq(x)=\int p(x)dx=x^4-x^3+xq(x)=∫p(x)dx=x4?x3+x。
5、多項式曲線的擬合
此部分說明如何使用polyfit 函數將多項式曲線與一組數據點擬合。按照如下語法,使用 polyfit 求出以最小二乘方式與一組數據擬合的多項式的系數:
p = polyfit(x,y,n)其中:
- x 和 y 是包含數據點的 x 和 y 坐標的向量
- n 是要擬合的多項式的次數
舉個栗子。
% 包含5個樣本點的測試數據(x,y) x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4]; % 用三次多項式進行擬合,返回結果 p = polyfit(x,y,3) %輸出p= -0.1917 31.5821 -60.3262 35.3400繪制樣本點和擬合曲線,輸出結果如下圖。 x2 = 1:.1:5; y2 = polyval(p,x2); plot(x,y,'o',x2,y2) grid on s = sprintf('y = (%.1f) x^3 + (%.1f) x^2 + (%.1f) x + (%.1f)',p(1),p(2),p(3),p(4)); text(2,400,s)總結
以上是生活随笔為你收集整理的学习笔记-Matlab之多项式详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于RealSense的坐姿检测技术
- 下一篇: iPad不断重启怎么办?