Matlab笔记.docx
- 文档编号:2942795
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:35
- 大小:808.55KB
Matlab笔记.docx
《Matlab笔记.docx》由会员分享,可在线阅读,更多相关《Matlab笔记.docx(35页珍藏版)》请在冰豆网上搜索。
Matlab笔记
Matlab笔记
1,命令
命令
功能
x=first:
last
加1计数
x=first:
increment:
last
加increment计数
x=linspace(first,last,n)
x=logspace(first,last,n)
2,多项式
roots(f):
求根。
poly:
poly(A)中的A为一个向量时构造以该向量为根的多项式,A为一个矩阵时求矩阵的特征多项式。
polyval(f,n):
计算多项式的值。
polyvalm(f,A):
计算矩阵多项式的值。
conv(f,g):
卷积函数。
deconv:
接卷积函数。
polyder(f):
求导。
polyfit(x,y,n):
多项式拟合。
n为次数.
Eg:
>>x=[12345];
>>y=[5.543.1128290.7498.4];
>>p=polyfit(x,y,3)
p=
-0.191731.5821-60.326235.3400
>>p1=polyval(p,x);
>>plot(x,p1,'-',x,y,'+')
residue(f,g):
展开多项式。
residue(r,p,k):
合成有理式。
Eg:
>>b=[-2,5];
>>a=[1,6,3];
>>[r,p,k]=residue(b,a)
r=
-3.2454
1.2454
p=
-5.4495
-0.5505
k=
[]
>>[bb,aa]=residue(r,p,k)
bb=
-2.00005.0000
aa=
1.00006.00003.0000
>>
曲线拟合:
Eg:
某工厂20年的利率统计为3.90,5.30,7.20,9.60,12.90,17.10,23.10,31.40,38.60,50.20,62.90,76.0,92.0,105.70,112.80,131.70,150.70,179.0,205.00,226.50,是分别用一,二,四阶多项式和指数函数拟合利润率对年份的曲线。
>>cdata=1981:
2000;
>>cdata=cdata';
>>pp=[3.90;5.30;7.20;9.60;12.90;17.10;23.10;31.40;38.60;50.20;62.90;76.0;92.0;105.70;112.80;131.70;150.70;179.0;205.00;226.50];
>>sdata=(cdata-mean(cdata))/std(cdata);%对data预%处理
>>p1=polyfit(sdata,pp,1);
>>pp1=polyval(p1,sdata);
>>plot(cdata,pp1,'-',cdata,pp,'+')
一阶拟合曲线
>>rest1=pp-pp1;
>>figure,plot(cdata,rest1,'+')
误差图
>>p2=polyfit(sdata,pp,2);
>>pp2=polyval(p2,sdata);
>>plot(cdata,pp2,'-',cdata,pp,'+')
二阶拟合曲线
>>rest2=pp-pp2;
>>figure,plot(cdata,rest2,'+')
误差图
>>pp4=polyfit(sdata,pp,4);
>>p4=polyval(pp4,sdata);
>>plot(cdata,p4,'-',cdata,pp,'+')
四阶拟合曲线
>>rest4=pp-p4;
>>figure,plot(cdata,rest4,'+')
误差图
>>logp1=polyfit(sdata,log10(pp),1);
>>logpred1=10.^polyval(logp1,sdata);
>>semilogy(cdata,logpred1,'-',cdata,pp,'+');
>>gridon
一阶指数拟合曲线
>>logrest1=log10(pp)-polyval(logp1,sdata);
>>plot(cdata,logrest1,'+');
>>r=pp-10.^(polyval(logp1,sdata));
>>plot(cdata,r,'+')
误差图
>>log2=polyfit(sdata,log10(pp),2);
>>logpred2=10.^polyval(log2,sdata);
>>semilogy(cdata,logpred2,'-',cdata,pp,'+');
>>gridon
>>logrest2=log10(pp)-polyval(log2,sdata);
>>plot(sdata,logrest2,'+')
>>r=pp-10.^(polyval(log2,sdata));
>>plot(cdata,r,'+')
故本例采用二阶曲线拟合效果较好。
3,多项式插值
1)一维插值
interp1(x,y,x0):
x0为一插值数组。
后加‘spline’为三次样条插值。
interp1(x,y,x0,’spline’).
>>hour=1:
12
hour=
123456789101112
>>temps=[589152529313022252724];
>>t=interp1(hour,temps,9.3)
t=
22.9000
>>t=interp1(hour,temps,4.7)
t=
22
>>t=interp1(hour,temps,[3.26.57.111.7])
t=
10.200030.000030.900024.9000
>>t=interp1(hour,temps,9.3,'spline')
t=
21.8577
>>t=interp1(hour,temps,4.7,'spline')
t=
22.3143
>>t=interp1(hour,temps,[3.26.57.111.7],'spline')
t=
9.673430.042731.175525.3820
>>plot(hour,temps,'-r')
>>plot(hour,temps,'-*')
>>h=1:
0.01:
12;
>>t=interp1(hour,temps,h,'spline');
>>holdon
>>plot(hour,temps,'+',h,t)
2)多维插值
interp2(x,y,z,xi,yi,method):
method为“linear”(线性插值,仅用于连接图上的数据点),“cubic”(三次多项式插值),“nearest”(连接最近个估计点的粗略数据点)。
interp3(x,y,z,v,xi,yi,zi,method):
三维插值。
Eg:
>>width=1:
5;
>>depth=1:
3;
>>temps=[8281808284;
7963616581;
8484828586];
>>wi=1:
0.2:
5;
>>d=2;
>>zlinear=interp2(width,depth,temps,wi,d);
>>zcubic=interp2(width,depth,temps,wi,d,'cubic');
>>plot(wi,zlinear,'-',wi,zcubic)
>>xlabel('widthofplate'),ylabel('degreescelsius')
>>title('tempertureatdepth=2')
另一种方法,我们可以再两个方向插值。
先在三维坐标画出原始数据,看一下粗糙程度。
>>mesh(width,depth,temps)
>>xlabel('widthofplate'),ylabel('depthofplate')
>>zlabel('temperatures')
然后在两方向插值,以平滑数据。
>>[widi]=meshgrid(1:
0.1:
5,1:
0.1:
3);
>>zi=interp2(width,depth,temps,wi,di);
>>mesh(wi,di,zi)
>>xlabel('widthofplate'),ylabel('depthofplate')
>>zlabel('temperatures')
>>zi=interp2(width,depth,temps,2.5,2.7)
zi=
76.7000
>>zi=interp2(width,depth,temps,[0.11.82.22.5],[2.52.61.82.6])
zi=
NaN76.880066.240074.6000
4,函数绘图
命令:
fplot.函数名需加引号。
>>fplot('sin(x)',[02*pi])
>>f='2*exp(-x).*sin(x)';
>>fplot(f,[08])
5,求最小值
命令:
fminbnd.
求y=2e-xsinx的极值.
>>f='2*exp(-x).*sin(x)';
>>xmin=fminbnd(f,2,5)
xmin=
3.9270
>>x=xmin;
>>ymin=eval(f)
ymin=
-0.0279
>>fx=strcat('-',f)
fx=
-2*exp(-x).*sin(x)
>>xmax=fminbnd(fx,0,3)
xmax=
0.7854
>>x=xmax;
>>ymax=eval(f)
ymax=
0.6448
6,求0点
命令:
fzero.
>>a=fzero('sin(x)',[3,4])
a=
3.1416
7.数据分析和统计常用函数
函数
意义
cumprod(x)
列累计积
cumsum(x)
列累计和
del2(A)
五点离散拉氏算子
diff(x)
计算元素之间差
dot(x,y)
向量点积
gredient(Z,dx,dy)
近似梯度
max(x),max(x,y)
最大分量
mean(x)
平均值
median(x)
列的中值
min(x),min(x,y)
最小分量
prod(x)
列元素的积
rand(x)
均匀分布随机数
randn(x)
正态分布随机数
sort(x)
升序排列
std(x)
列的标准差
sum(x)
各列的和
八,数据的可视化。
1,subplot(n,m,i)可以把窗口分为n*m个区域。
2,plot为二维图形的常用命令。
>>x=0:
0.1:
10;
>>y=sin(x);
>>z=cos(x);
>>w=[y;z];
>>plot(x,w)
线性和标记:
颜色符号
颜色
数据点符号
数据点形状
线型符号
线型
y
黄色
.
点
-
实线
m
紫色
o
圆圈
:
短虚线
c
青色
x
X标记
-.
长短线
r
红色
+
加号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)