matlab常用函数——方程函数
八、插值函數、線性方程解函數和多項式函數
1)插值函數
interp1q :1維快速線性插值法 yi=interp1q(x,Y,xi)
?????? interp1q正常執行條件:
(1)x單調遞增列向量
(2)Y為列向量or行數為length(x)(3)xi為列向量,如果xi值在x的坐標范圍外,返回NaN
實例:
?
?x=(-5:0.5:5)';
y=sin(x);
xi=(-5:0.5:5)';
yi=interp1q(x,y,xi);
plot(x,y,'o',xi,yi)
?
interp2 :2維數據插值法
?????? ZI=interp2(X,Y,Z,XI,YI)
?????? ZI=interp2(Z,XI,YI)
?????? ZI=interp2(X,Y,Z,XI,YI,method)
?????? (1)‘nearest’:最鄰近插值法;
?????? (2)‘linear’:線性插值法(默認插值方法);
?
?????? (3)‘spline’:三次樣條插值法;
?
?????? (4)’cubic’:三次插值法
實例:
?
?[X,Y]=meshgrid(-2:0.5:2);
Z=peaks(X,Y);
[XI,YI]=meshgrid(-2:0.125:2);
ZI=interp2(X,Y,Z,XI,YI);
mesh(X,Y,Z)
hold on
mesh(XI,YI,ZI+10)
?
?
interp3 :3維數據插值法??????
?????? VI=interp3(X,Y,Z,V,XI,YI,ZI)
?????? VI=interp2(X,Y,Z,V,XI,YI,ZI,method)
?????? (1)‘nearest’:最鄰近插值法;
?????? (2)‘linear’:線性插值法(默認插值方法);
?????? (3)‘spline’:三次樣條插值法;
?????? (4)’cubic’:三次插值法
?????? ?
interpft :基于FFT方法的1維插值法?y=interpft(x,n)?y=interpft(x,n,dim)
實例:
?
?y=[1 2 3 2 1 23];
N=length(y);
L=5;
M=N*L;
x=0:L:L*N-1
xi=0:M-1
yi=interpft(y,M)
plot(x,y,'o',xi,yi,'*')
?
?
interpn :n維數據插值(表格查詢)VI=interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...)
meshgrid :為3維繪圖生成X和Y矩陣
[X,Y]=meshgrid(x,y) [X,Y,Z]=meshgrid(x,y,z)??
ndgrid :生成可為函數和插值算法使用的n維矩陣
[X1,X2,X3,...]=ndgrid(x1,x2,x3,...)
實例:
?
?[X1,X2]=ndgrid(-1:0.1:1,-1:0.1:1);
Z=exp(-X1.^2-X2.^2);
mesh(Z)
?
?
pchip :分段三次厄密插值多項式(PCHIP) yi=pchip(x,y,xi)pp=pchip(x,y)
實例:
?
?x=-4:4
y=[-3 -2 -2 0 0 0 2 2 3];
t=-4:0.01:4;
p=pchip(x,y,t);
s=spline(x,y,t);
plot(x,y,'o',t,p,'-',t,s,'-.')
legend('data','pchip','spline',4)
?
?
spline :曲線三次樣條插值?? yy=spline(x,Y,xx)?? pp=spline(x,Y)
實例:
?
?x=0:10;
y=cos(x);
xx=0:0.1:10;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy)
?
?
2)線性方程解函數
linsolve :使用部分主元LU因子分解法求解線性方程組??? X = linsolve(A,B)? [X, R] = linsolve(A,B)?? X = linsolve(A,B,opts)
lscov :已知協方差時求解方程的最小二乘解??
x = lscov(A,b)??? 線性方程組A*x = b的一般最小二乘解
x = lscov(A,b,w)?? 線性方程組A*x = b的加權最小二乘解
x = lscov(A,b,V)??? 線性方程組A*x = b 的廣義最小二乘解
x =lscov(A,b,V,alg)????
bicg :求解線性方程的雙共軛梯度法
?? x=bicg(A,b) bicg(A,b,tol)bicg(A,b,tol,maxit)
?
bicg(A,b,tol,maxit,M1,M2)bicg(A,b,tol,maxit,M1,M2,x0)[x,flag]=bicg(A,b,...)
[x,flag,relres]=bicg(A,b,...)[x,flag,relres,iter]=bicg(A,b,...)
[x,flag,relres,iter,resvec]=bicg(A,b,...)
bicgstab :求解線性方程的穩定的雙共軛梯度法
bicgstabl :求解線性方程的雙共軛梯度l穩定法
bicgstab :求解線性方程的穩定的雙共軛梯度法
bicgstabl :求解線性方程的雙共軛梯度l穩定法
cgs :求解線性方程的共軛梯度平方法
gmres :求線性方程的廣義最小殘差法
lsqr :求解線性方程的LSQR 方法
minres :求解線性方程的最小殘差法
pcg :求解線性方程的預處理共軛梯度法
qmr :求解線性方程的準最小殘差法
symmlq :求解線性方程的對稱 LQ 法
tfqmr :求解線性方程的自由轉置準最小殘差法?
?
3)多項式函數
polyfit :多項式擬合
?????? p=polyfit(x,y,n) 根據擬合數據x,y求n階多項式p(x)的系數,p是系數
?????? [p,S]=polyfit(x,y,n) p是系數,使用S和多項式的值能得到誤差估計值或預測
實例:
?
?x=(-3:0.2:3)';
y=erf(x);
p=polyfit(x,y,3)
f=polyval(p,x);
plot(x,y,'*',x,f,'-')
?
polyval :多項式求值???? y=polyval(p,x)???
poly :根據根求解多項式
polyder :解析求解多項式微分表達式k=polyder(p) k=polyder(a,b)
polyint :解析求解多項式積分表達式系數?? polyint(p,k)
mkpp :構建分段多項式?? pp=mkpp(breaks,coefs)
breaks是一個長度為L+1的向量,該向量元素嚴格遞增。coefs為L*k的矩陣,每行元素代表
[breaks(i),breaks(i+1)]的k階多項式的系數。
總結
以上是生活随笔為你收集整理的matlab常用函数——方程函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 某互联网公司针对初级Java开发的几道S
- 下一篇: matlab常用函数——文件操作函数