- 多項(xiàng)式及函數(shù)
1.多項(xiàng)式的表示
MATLAB用一維向量來(lái)表示多項(xiàng)式,如多項(xiàng)式
表示為,缺少的冪次系數(shù)用‘0’補(bǔ)充
2.多項(xiàng)式求根
求多項(xiàng)式的根即求使多項(xiàng)式為0的值,也即數(shù)學(xué)中的零點(diǎn)問(wèn)題,MATLAB提供了 roots函數(shù)求根 ,用法如下:
>> P=[1 2 1];%x^2+2x+1=0
>> roots(P)
ans =
-1
-1
根據(jù)多項(xiàng)式的根反求多項(xiàng)式則用 poly函數(shù) ,一般多項(xiàng)式是行向量,根是列向量,例如:
> > r=[-1;-1];
> > poly(r)
ans =
1 2 1
3.多項(xiàng)式四則運(yùn)算
加法:如果兩個(gè)多項(xiàng)式大小相同時(shí),則多項(xiàng)式相加與標(biāo)準(zhǔn)的數(shù)組加法相同
乘法:使用conv函數(shù)
除法:使用 deconv函數(shù) ,[a,r]=deconv(b,c)其中a為b除c的商,r為余數(shù)
>> a=[1 1];b=[1 -1];%(x+1)*(x-1)
>> c=conv(a,b)
c =
1 0 -1
>> a=[1 3 1];b=[1 1];%x^2+3x+1除x+1
>> [c,d]=deconv(a,b)
c =
1 2
d =
0 0 -1
4.多項(xiàng)式的導(dǎo)數(shù)、積分及其計(jì)算
導(dǎo)數(shù):函數(shù)polyder可以實(shí)現(xiàn)多項(xiàng)式的求導(dǎo)
積分:函數(shù) polyint(P,k) 返回多項(xiàng)式P的積分,積分常數(shù)項(xiàng)為k,默認(rèn)值為0
計(jì)算:函數(shù) polyval(P,x) 返回多項(xiàng)式在x處的值,x可為標(biāo)量也可為向量
>> a=[1 2 1];polyder(a)
ans =
2 2
>> a=[1 2 1];b=polyder(a)
b =
2 2
>> polyint(b,3)
ans =
1 2 3
>> polyval(a,1)
ans =
4
5.有理多項(xiàng)式
函數(shù) [r,p,k]=residue(num,den) 可執(zhí)行部分分式展開(kāi)的的運(yùn)算,等式兩邊互換可實(shí)現(xiàn)逆運(yùn)算
> > num=[2 -19 29 40];
> > den=[1 -15 68 -96];
> > [r p k]=residue(num,den)
r =
4.0000
5.0000
2.0000
p =
8.0000
4.0000
3.0000
k =
2
本例結(jié)果可表示為:
- 數(shù)據(jù)插值
數(shù)據(jù)插值是指數(shù)據(jù)缺失時(shí)所進(jìn)行的一種處理,在數(shù)據(jù)分析、圖像處理等很多領(lǐng)域經(jīng)常用到,參加過(guò)數(shù)學(xué)建模比賽的小伙伴可能也用過(guò),有多項(xiàng)式插值、分段插值、三角函數(shù)插值等。
- 一維函數(shù)插值
當(dāng)插值函數(shù)y=f(x)一元函數(shù)時(shí)為一維插值,使用interp1函數(shù),語(yǔ)法格式為 **Vq=interp1(X,V,Xq,str)** :X為自變量取值范圍,V為函數(shù)值或一向量,長(zhǎng)度與X一致,Xq為插值點(diǎn)向量,str為字符串變量,設(shè)定插值方法。
str='nearest': 鄰近點(diǎn)插值 。插值點(diǎn)的值為與該插值點(diǎn)最近的數(shù)據(jù)點(diǎn)函數(shù)值。速度快但平滑性差。
str='linear': 線性插值法 。根據(jù)相鄰數(shù)據(jù)點(diǎn)的線性函數(shù)估計(jì)插值點(diǎn)的值。占用的 內(nèi)存比鄰近點(diǎn)多,運(yùn)算時(shí)間長(zhǎng) ,但其結(jié)果是連續(xù)的,頂點(diǎn)處斜率會(huì)改變。
str='spline': 三次樣條插值 。在相鄰數(shù)據(jù)點(diǎn)建立三次多項(xiàng)式函數(shù)確定插值。運(yùn)算時(shí)間最長(zhǎng),但平滑性最好。此外還有'pchip','cubic','v5cubic'等。
y=interpft(x,n) 為一維快速傅里葉插值。當(dāng)數(shù)據(jù)點(diǎn)呈現(xiàn)周期分布時(shí),用傅里葉變換把輸入數(shù)據(jù)x變換到頻域,然后用更多點(diǎn)n的傅里葉逆變換變回時(shí)域,其結(jié)果是對(duì)數(shù)據(jù)進(jìn)行增采樣。
x=0:10;
y=sin(x);
z=interpft(y,20);
xx=linspace(0,10,20);%生成0到10之間20個(gè)線性等分點(diǎn)
plot(x,y,'-o',xx,z,':o')
legend('原始數(shù)據(jù)','插值結(jié)果','Location','North')
2.二維數(shù)據(jù)插值
當(dāng)插值函數(shù)y=f(x)為二元函數(shù)時(shí)為二維插值,語(yǔ)法格式為 **Vq=interp2(X,Y,V,Xq,Yq,str)** 其中X,Y,V是具有相同大小的矩陣,V(i,j)是數(shù)據(jù)點(diǎn)[X(i,j),Y(i,j)]上的函數(shù)值;Xq,Yq為待插值數(shù)據(jù)網(wǎng)格,str為字符串變量表示不同的插值方法,和一維的相似,例如
[X,Y]=meshgrid(-10:0.25:10);%產(chǎn)生數(shù)據(jù)柵格點(diǎn)
Z=peaks(X,Y); %計(jì)算已知點(diǎn)的函數(shù)值
[x,y]=meshgrid(-10:0.05:10); %產(chǎn)生更精密的插值點(diǎn)
z=interp2(X,Y,Z,x,y);
mesh(X,Y,Z),hold on;
mesh(x,y,z+20),hold off;
axis([-3 3 -3.5 3.5 -6 30])
- 函數(shù)極限
極限概念很簡(jiǎn)單,在中學(xué)時(shí)就有所接觸,這里只簡(jiǎn)單介紹一些使用極限的函數(shù)
limit(fun,x,a) :當(dāng)x趨于a時(shí),返回函數(shù)fun的極限值。
limit(fun):默認(rèn)當(dāng)x趨于0時(shí)求極限
limit(fun,x,a,'left') :求左極限,還有右極限'right'
- 函數(shù)積分
MATLAB支持三重及以下的積分運(yùn)算
- 一重積分
一元函數(shù)的數(shù)值積分有三個(gè)函數(shù)quad, quadl, quadv用法相同
[Q,num]=quad(fun,a,b,tol,str) fun為被積函數(shù)句柄,a,b為積分上限和積分下限,tol用于控制誤差,增大tol可加快計(jì)算速度但精度下降,str非0時(shí)輸出計(jì)算過(guò)程中的[num a b-a Q],num為函數(shù)計(jì)算的次數(shù)。此函數(shù)適用于精度低、被積函數(shù)平滑性較差的數(shù)值積分。num,tol,str為可選參數(shù)
quadl適用于精度高被積函數(shù)較平滑的數(shù)值積分
quadv用于被積函數(shù)是一些列函數(shù)的積分
2.二重積分
Q= dbquad (fun,xmin,xmax,ymin,ymax,tol,@quad)
Q=dbquad(fun,xmin,xmax,ymin,ymax,tol,myfun)
MATLAB默認(rèn)采用quad函數(shù)計(jì)算一維積分;@quad表示用戶(hù)指定采用quadl函數(shù)來(lái)計(jì)算一維積分;myfun表示用自己編寫(xiě)的一維積分函數(shù)
3.三重積分
Q= triplequad (fun,xmin,xmax,ymin,ymax,zmin,zmax,tol,@quad)后面兩個(gè)參數(shù)為可選項(xiàng)
-
積分器
+關(guān)注
關(guān)注
4文章
100瀏覽量
28529 -
MATLAB仿真
+關(guān)注
關(guān)注
4文章
176瀏覽量
20003 -
傅里葉變換
+關(guān)注
關(guān)注
6文章
442瀏覽量
42717
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
matlab數(shù)學(xué)手冊(cè)下載
源程序和數(shù)據(jù)_Matlab在數(shù)學(xué)建模中的應(yīng)用
matlab工程數(shù)學(xué)應(yīng)用pdf
MATLAB 6.0數(shù)學(xué)手冊(cè)(doc版)
MATLAB基礎(chǔ)及數(shù)學(xué)軟件_陽(yáng)明盛
![<b class='flag-5'>MATLAB</b>基礎(chǔ)及<b class='flag-5'>數(shù)學(xué)</b>軟件_陽(yáng)明盛](https://file.elecfans.com/web2/M00/49/36/pYYBAGKhtD-AD3dcAAAPMvXHCEY224.jpg)
評(píng)論