matlab实验报告ljg
第 1 页 共 3 页电子信息工程学系实验报告课程名称: MATLAB 程序设计 实验项目名称: MATLAB 数值计算 实验时间:2011.4.26 班级:电信 081 姓名:卢金国 学号:810706136 实 验 目 的: 1.熟悉 MATLAB 的多项式函数2.熟悉 MATLAB 插值函数3.熟悉 MATLAB 的功能函数4.熟悉 MATLAB 的数据分析和处理函数5.熟悉 MATLAB 的微分方程组求解函数实 验 环 境:Windows xpMATLAB7.1实 验 内 容 及 过 程 及 结 果 分 析: 1.将多项式A的系数向量形式 [1 3 6 3 1 ]转换为完整形式,并求其根。同时在 0-5内随机产生10组自变量,计算它们的对应取值。 代码如下:A=[1 3 6 3 1]s=poly2str(A, x )r=roots(A)x=unifrnd(0,5,10,1)y=polyval(A,x)验证结果如下:A = 1 3 6 3 1 s =x^4 + 3 x^3 + 6 x^2 + 3 x + 1r =-1.2232 + 1.7097i-1.2232 - 1.7097i-0.2768 + 0.3869i-0.2768 - 0.3869i2.对于 0-5 的 50 组自变量数据,采用多项式进行拟合,并对 x∈{1,2,3,4}分别采用最邻近、双线性和三次样插值方法进行插值。代码如下:A=[1 3 6 3 1];s=poly2str(A, x );x=unifrnd(0,5,50,1)y=polyval(A,x)p=polyfit(x,y,5)y=polyval(p,x)plot(x,y, ro )成 绩:指导教师(签名):第 2 页 共 3 页xi=1:4;yi_nearest=interp1(x,y,xi, nearest );yi_linear=interp1(x,y,xi);yi_spline=interp1(x,y,xi, spline );figure;hold on;subplot(1,3,1);plot(x,y, ro ,xi,yi_nearest, b- );title( 最邻近插值 );subplot(1,3,2);plot(x,y, ro ,xi,yi_linear, b- );title( 线性插值 );subplot(1,3,3);plot(x,y, ro ,xi,yi_spline, b- );title( 三次样条插值 );验证结果如下:3.计算拟合多项式在0-5上的最大值和最小值。代码如下:A=[1 3 6 3 1];s=poly2str(A, x );x=unifrnd(0,5,50,1)y=polyval(A,x)p=polyfit(x,y,5)y=polyval(p,x)[y_max,I_max]=max(y)[y_min,I_min]=min(y)验证结果如下:y_max =963.7344I_max =43y_min = 1.2399I_min =444.对于上述 50 组数据,计算各列的最大值、最小值、平均值、中间值、元素和、标准差和方差,并计算各列间的协方差。代码如下:A=[1 3 6 3 1];s=poly2str(A, x );x=unifrnd(0,5,10,5);y=polyval(A,x);p=polyfit(x,y,5);第 3 页 共 3 页y=polyval(p,x);y_max=max(y)y_min=min(y)y_mean=mean(y)y_median=mean(y)y_sum=sum(y)y_std=std(y)y_var=var(y)y_cov=cov(y)验证结果如下:6.实现对信号 3*sin(t)+0.1(rand(1)-0.5)的一维 2 阶平均值数字滤波代码如下:t=0:0.1:10;n=0.1*(rand(1)-0.5);s=3*sin(t);x=3*sin(t)+0.1*(rand(1)-0.5);a=1;b=[1/2 1/2];y=filter(b,a,x);plot(t,s, b- );hold on;plot(t,x, ro );plot(t,y, r: );验证结果如右: