《刘卫国全套配套课件matlab程序设计与应用第3版第6章matlab数据分析与多项式计算源程序》由会员分享,可在线阅读,更多相关《刘卫国全套配套课件matlab程序设计与应用第3版第6章matlab数据分析与多项式计算源程序(4页珍藏版)》请在金锄头文库上搜索。
1、第6章 MATLAB数据分析与多项式计算例6-1 求矩阵A每行及每列的最大值,并求整个矩阵的最大值。 A=13,-56,78;25,63,-235;78,25,563;1,0,-1; max(A,2) %求每行最大值 max(A) %求每列最大值 max(max(A) %求整个矩阵的最大值,也可使用max(A(:)例6-2 求矩阵A的每行元素之和和全部元素之和。 A=1,2,3,4;5,6,7,8;9,10,11,12; S=sum(A,2) sum(S)例6-3 求s=1!+2!+6!的值。 x=cumprod(1:6) s=sum(x)例6-4 对二维矩阵x,从不同维方向求出其标准差和方差
2、。 x=4,5,6;1,4,8; y1=std(x,0,1) %求标准差 v1=var(x,0,1) %求方差 y2=std(x,1,1) v2=var(x,1,1) y3=std(x,0,2) v3=var(x,0,2) y4=std(x,1,2) v4=var(x,1,2)例6-5 生成满足正态分布的100005随机矩阵,然后求各列元素的均值和标准差,再求这5列随机数据的相关系数矩阵。 X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X) R=corrcoef(X(:,1),X(:,2)%X前两列的相关系数例6-6 对下列矩阵做各种排序。 A
3、=1,-8,5;4,12,6;13,7,-13; sort(A) %对A的每列按升序排序 sort(A,2,descend) %对A的每行按降序排序 X,I=sort(A) %对A按列排序,并将每个元素所在行号送矩阵I例6-7 求多项式x4+8x3-10与多项式2x2-x+3的乘积。 A=1,8,0,0,-10; B=2,-1,3; C=conv(A,B)例6-8 求多项式x4+8x3-10除以多项式2x2-x+3的结果。 A=1,8,0,0,-10; B=2,-1,3; P,r=deconv(A,B)例6-9 求有理分式的导数。 P=1; Q=1,0,5; p,q=polyder(P,Q)例
4、6-10 已知多项式x4+8x3-10,分别取x=1.2和一个23矩阵为自变量,计算该多项式的值。 A=1,8,0,0,-10; %4次多项式系数 x=1.2; %取自变量为一数值 y1=polyval(A,x) x=-1,1.2,-1.4;2,-1.8,1.6; %给出一个矩阵x y2=polyval(A,x) %分别计算矩阵x中各元素为自变量的多项式之值例6-11 仍以多项式x4+8x3-10为例,以22矩阵为自变量分别用polyval和polyvalm计算该多项式的值。 A=1,8,0,0,-10; %多项式系数 x=-1,1.2;2,-1.8; %给出一个矩阵x y1=polyval(
5、A,x) %计算代数多项式的值 y2=polyvalm(A,x) %计算矩阵多项式的值例6-12 求多项式x4+8x3-10的根。 A=1,8,0,0,-10; x=roots(A)例6-13 已知: 计算f(x)=0 的全部根。 由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。 P=3,0,4,-5,-7.2,5; X=roots(P) %求方程f(x)=0的根 G=poly(X) %求多项式g(x)例6-14 给出以下概率积分的数据表如表6-1所示,用不同的插值方法计算f(0.472)。这是一个一维插值问题,命令如下: x=0.46:0.01:0.49; %给出x和f(
6、x) f=0.4846555,0.4937542,0.5027498,0.5116683; format long interp1(x,f,0.472) %用默认方法,即线性插值计算f(0.472) interp1(x,f,0.472,nearest) %用最近点插值计算f(0.472) interp1(x,f,0.472,pchip) %用3次埃尔米特插值计算f(0.472) interp1(x,f,0.472,spline) %用3次样条插值计算f(0.472)format short例6-15 某检测参数f随时间t的采样结果如表6-2,用数据插值法计算t=2,12,22,32,42,52
7、时的f值。这是一个一维数据插值问题,命令如下: T=0:5:65; X=2:10:52; F=3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,.6725.3,6848.3,6403.5,6824.7,7328.5,7857.6; F1=interp1(T,F,X) %用线性插值方法插值 F2=interp1(T,F,X,nearest) %用最近点插值方法插值 F3=interp1(T,F,X,pchip) %用3次埃尔米特插值方法插值 F4=interp1(T,F,X,spline) %用3次样条插值方法插值例6-16 设z=x2
8、+y2,对z函数在0,10,2区域内进行插值。 x=0:0.1:1;y=0:0.2:2; X,Y=meshgrid(x,y); %产生自变量网格坐标 Z=X.2+Y.2; %求对应的函数值 interp2(x,y,Z,0.5,0.5) %在(0.5,0.5)点插值 interp2(x,y,Z,0.5 0.6,0.4) %在(0.5,0.4)点和(0.6,0.4)点插值 interp2(x,y,Z,0.5 0.6,0.4 0.5)%在(0.5,0.4)点和(0.6,0.5)点插值%下一命令在(0.5,0.4),(0.6,0.4),(0.5,0.5)和(0.6,0.5)各点插值 interp2(x
9、,y,Z,0.5 0.6,0.4 0.5) interp2(x,y,Z,0.5 0.6,0.4 0.5,spline)例6-17 某实验对一根长10m的钢轨进行热源的温度传播测试。用d表示测量点距离(m),用t表示测量时间(s),用c表示测得各点的温度(),测量结果如表6-3所示。 试用线性插值求出在一分钟内每隔20s、钢轨每隔2m处的温度。程序如下:d=0:2.5:10;t=(0:30:60);c=95,14,0,0,0;88,48,32,12,6;67,64,54,48,41;di=0:2:10;ti=(0:20:60);ci=interp2(d,t,c,di,ti)例6-18 用一个3次多项式在区间0,2内逼近函数。在给定区间上,均匀地选择50个采样点,并计算采样点的函数值,然后利用3次多项式逼近。命令如下: X=linspace(0,2*pi,50); Y=sin(X); P=polyfit(X,Y,3) %得到3次多项式的系数和误差下面利用绘图的方法将多项式p(x)和sinx进行比较,继续执行下列命令: X=linspace(0,2*pi,20); Y=sin(X); Y1=polyval(P,X); plot(X,Y,:o,X,Y1,-*)3