数学实验报告
班级: 学号: 姓名:
实验序号:1 日期:年 月 日
实验名称:特殊函数与图形
u 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。
u 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性,另一方面,就 Matlab 强大的作图功能作一个简单介绍。
实验原理与数学模型:
1、 球 ,x=Rsincos, y= Rsinsin, z= cos, 02 , 0
环面
2、 平面摆线:
3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)
4、 椭球面
双叶双曲面
双曲抛物面
实验所用软件及版本:mathematica(3.0)
主要内容(要点):
1、 作出下列三维图形(球、环面)
2、 作出下列的墨西哥帽子
3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形
4、 试画出田螺上的一根螺线
5、 作出如图的马鞍面
6、 画出Riemann函数的图形
实验过程记录(含:基本步骤、主要程序清单及异常情况记录等):
1) p1=ParametricPlot3D[{sin[u]*cos[v],sin[u]*sin[v],cos[u]},{u,0,pi},{v,0,2*pi}]
p2=ParametricPlot3D[{3*cos[y]-sin[x]*cos[y],3*sin[y]-sin[x]*sin[y],cos[x]},{x,0,2*pi}]
Show{p1,p2}
2)[x,y]=meshgrid(-8:0.5:8);
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
mesh(X,Y,Z)
axis square
3) 球面 ParametricPlot3D[{sin[u]*cos[v],sin[u]*sin[v],cos[u]},{u,0,pi},{v,0,2*pi}]
椭球面ParametricPlot3D[{5*sin[u*cos[v],4*sin[u]*sin[v],3*cos[u] },{u,0,pi},{v,0,2*pi}]双叶双曲面 ParametricPlot3D[{5*tan[u]*cos[v],5*tan[u]*sin[v],5*sec[u]},{v,-0.5*pi,1.5*pi},{v,0,2* pi}]
双曲抛物面 ParametricPlot3D[{5*u*secv,5*u*tanv,10*},{u,-0.5*pi,0.5*pi },{v,-0.5*pi,0.5*pi}]
4) ParametricPlot3D[{Sqrt[t]cos[t],Sqtr[t]sin[t],0.5*t},{t,0,10*pi}]
5)[x,y]=meshgrid(-25:1:25);
z=x.^2/9 - y.^2/4;
z=sin(r)./r;
surf(X,Y,Z)
title('马鞍面')
grid off
6) n=40; dots={};
For [i=2,i<=n,i++,
For[j=1,i<I,j++,
If [GCD[I,j]==1,AppendTo[dots,{j/I,1/i}]]]]
PP=LisPlot[dots,PlotRange->{0,0.6},PlotStyle->PointSize[0,0.15],
Axeslabel->{“x”,”R(x)”},AspectRatio->0.6]
情况记录
6)中:开始把函数写成{t*cos[t],t*sin[t],t^2},结果画出了圆锥螺线。后来写成{sqrt[t]*cos[t],sqrt[t]*sin[t],1/2*t},画出了图像,发现曲线上升太快,不想田螺上的螺线,经过调整,把z方向的t压缩成0.5*t
圆锥螺线{t^2*cos[t],t^2*sin[t],t}
实验结果报告与实验总结:
1、2、3、4、5较为顺利
6遇到了一些困难,但最后也得到了较好的结果,在整个实验过程中,经常应有ctrl+k,避免了拼写错误。对应用Mathematica作图有了初步了解。实践证明,Mathematica作图功能十分强大,特别对隐函数的作图,可以给人直观的了解。
思考与深入:
对已有县城参数表示的图形实验进行的较为顺利,但对其他图形需花较多的功夫。实践中发现自己对立体几何
解析几何的学习尚需加强,空间想象能力尚需提高。对Mathematica图形显示中的许多修饰函数还缺乏了解,在今后的应用中还要不断了解。
教师评语
数学实验报告
实验序号:2 日期:年 月 日
实验名称:定积分的近似计算
u 问题背景描述:定积分计算的基本公式是牛顿-莱布尼茨公式。但当被及函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。
u 实验目的:本实验主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍Matlab计算定积分的相关函数。
实验原理:
矩形法
实验所用软件及版本:mathematica(3.0)
主要内容(要点):
2、 分别用梯形法与抛物线法,计算 ,将积分区间[1,2]作120等分。并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异。
3、 试计算定积分 (注意:可以运用trapz()、quad()或附录程序求解吗?为什么?)
6 学习fuluBsum.m的程序设计方法,尝试用函数sum改写矩形法和抛物线法的程序,避免for 循环。
实验过程记录(含:基本步骤、主要程序清单及异常情况记录等):
2):梯形法
format long
n=120;a=1;b=2;
syms x fx
fx=1/x;
i=1:n;
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,’x’,xj);
fxi=subs(fx,’x’,xi);
f=(fxi+fxj)/2*(b-a)/n;
inum=sum(f)
integrate=int(fx,1,2)
integrate=double(integrate)
fprintf(‘The relative error between inum and real-value is about:%\n
n’,…
abs((inum-integrate)/integrate))
抛物线法
format long
%2*n=120;
n=60;
a=1;b=2;
syms x fx
fx=1/x;
i=1:n;
x0=a+(2*i-2)*(b-a)/(2*n);
x1=a+(2*i-1)*(b-a)/(2*n);
x2=a+(2*i-0)*(b-a)/(2*n);
fx0=subs(fx,x,x0);
fx1=subs(fx,x,x1);
fx2=subs(fx,x,x2);
si=(fx0+4*fx1+fx2)*(b-a)/(6*n);
inum=sum(si)
integrate=int(fx,1,2);
integrate=double(integrate)
fprintf('抛物线法的相对误差为:%e\n',abs((inum-integrate)/integrate))
trapz();
x=1:1/120:2;
y=1./x;
trapz(x,y)
quad(‘1./x’,1,2)
3 、使用函数trapz()
x=1:1/120:inf;
y=sin(x)/x;
trapz(x,y)
使用函数quad()
Quad(‘sin(x)./x’,0,inf)
矩形法
format long
n=inf;a=0;b=inf;
syms x fx
fx=sin(x)/x;
i=1:n;
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,’x’,xj);
fxi=subs(fx,’x’,xi);
fxij=subs(fx, ’x’,(xi+xj)/2);
f=fxij*(b-a)/n;
inum=sum(f)
integrate=int(fx,0,1)
integrate=double(integrate)
fprintf(‘The relative error between inum and real-value is about:%\n
n’,…
abs((inum-integrate)/integrate)
使用matlab命令
syms x;f=sin(x)/x;I=int(f,0,inf)
6 、使用求和函数
矩形法
format long
n=100;a=0;b=1;
syms x fx
fx=1/(1+x^2);
i=1:n;
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,’x’,xj);
fxi=subs(fx,’x’,xi);
fxij=subs(fx, ’x’,(xi+xj)/2);
f=fxij*(b-a)/n;
inum=sum(f)
integrate=int(fx,0,inf)
integrate=double(integrate)
fprintf(‘The relative error between inum and real-value is about:%\n
n’,…
abs((inum-integrate)/integrate))
抛物线法
format long
%2*n=200;
n=100;
a=0;b=1;
syms x fx
fx=1/(1+x^2);
i=1:n;
x0=a+(2*i-2)*(b-a)/(2*n);
x1=a+(2*i-1)*(b-a)/(2*n);
x2=a+(2*i-0)*(b-a)/(2*n);
fx0=subs(fx,x,x0);
fx1=subs(fx,x,x1);
fx2=subs(fx,x,x2);
si=(fx0+4*fx1+fx2)*(b-a)/(6*n);
inum=sum(si)
integrate=int(fx,0,1);
integrate=double(integrate)
fprintf('抛物线法的相对误差为:%e\n',abs((inum-integrate)/integrate))
情况记录
1、 梯形法和抛物线法程序设计较为顺利。但要注意使用for循环函数和求和函数时的不同matlab命令,避免混淆出错。使用函数trapz(),quad()是要注意被积函数是数值形式,应使用数组计算,应用点除否则将出错,不能调试出结果。
2、 使用函数trapz(),quad()和附录程序求解,均不能调试出获得正确答案。最后尝试用matlab命令中的符号求积分才得出正确结果。
3、 参照附录B中的求和函数程序设计顺利该变了附录A和C。发现使用求和函数时,inum不需要赋初值,应用了积分理论中分割、近似、求和
4、 取极限的思想方法,避免了for循环的冗杂性,较容易理解。
实验结果报告及实验总结
2、 结果:梯形法 inum=0.69315152080005
抛物线法 inum=0.69314718056936
使用函数trapz()
ans=0.69315152080005
使用函数quad()
Ans=0.69314719986297
将题中的近似计算结果相比较,发现运用不同的方法,计算结果会有不同。而梯形法误差较大,抛物线法急死计算定积分,接近于实际值,精确度高
3、 结果:只有使用matlab命令时才能计算出结果
I=1/2*pi
矩形法、梯形法、抛物线法是主要研究定积分的三种近似计算算法。trapz(),quad()也是用于定积分的近似数值计算。对于不定积分,由于积分区间无限大,故不能试过那个该分割方法
思考与深入:
通过本实验加深理解了积分理论中分割、近似、求和、取极限的思想方法。学习并掌握了用mablab求定积分的方法,了解了定积分近似计算的矩形法、梯形法和抛物线法。并认识到对于不同的题目,采取不同的运算方法,结果会不同,且精确度也不同。
同时,对于自身,要深刻理解不定积分、定积分概念,熟悉matllab数学软解的求不定积分
定积分的命令,了解简单的编程语句,以更快更准确且熟练的设计出程序。
教师评语
第二篇:MATLAB综合实验报告
实验七 综合实验
一.实验目的
能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理
(1) 熟练对信号进行时域和频域分析;
(2) 熟练进行滤波器设计和实现;
(3) 掌握对信号的滤波处理和分析。
二.实验原理
设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。
(1)离散时间信号与系统的时域分析
Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。
(2)信号的频域分析
信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。
(3) 滤波器设计
滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。
另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。
(1)对信号进行时域和频域分析,确定信号x的频率分量。
程序设计:
subplot(2,1,1); plot(x);
title('time domain of x ');
[X,w]=freqz(x);
subplot(2,1,2);plot(w/pi,abs(X));
title('freqency domain of x ');
实验结果:
分析:从信号的频谱可以看出 X的频率分量有 0.2pi,0.5 pi和0.9 pi
(2)用Matlab实现滤波器。
1设计低通滤波器,滤出低频分量:
程序设计:
rp=1;rs=60;
wp=0.3*pi; ws=0.4*pi; %通带和阻带的截止频率
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2lp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器得到数字滤波器
%bz,az 为分子分母系数。
[h,w]=freqz(bz,az,256,Fs);
subplot(2,2,2);plot(w,abs(h)); %滤波器频域图
title('frequency domain of lowpass filter');
h1=impz(bz,az); %滤波器时域图
subplot(2,2,1); plot(h1);
title('time domain of lowpass filter');
y=filter(bz,az,x); %验证
y1=freqz(y);%时域转频域
subplot(2,2,4);plot(abs(y1)); %过滤图(频域)
title('x frequency domain out of lowpass filter');
subplot(2,2,3);plot(y);
title('x time domain out of lowpass filter');%过滤图时域
实验结果:
分析:通过滤波得到了略有衰减的清晰的低频信号。
2设计高通滤波器,滤出高频分量:
程序设计:
rp=1;rs=80; %参数设置
wp=0.8*pi;ws=0.6*pi;
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2hp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器 得到数字滤波器
[h,w]=freqz(bz,az,256,1);
h3=impz(bz,az);
subplot(2,2,1);plot(h3);
title('time domain of filter');%滤波器时域图
subplot(2,2,2); plot(w,abs(h));
title('frequency domain of filter'); %滤波器频域图
y=filter(bz,az,x);
subplot(2,2,3);plot(y);
title('x time domain out of filter'); %过滤图时域
y1=freqz(y);
subplot(2,2,4);plot(abs(y1)); %?w
title('x frequency domain out of filter');%过滤图(频域)
实验结果:
分析:通过滤波得到了清晰的高频信号。
3设计带通滤波器,滤出中频分量。
程序设计:
wn=[0.4,0.6]; %cut-off frequency 范围
b2=fir1(34,wn,'bandpass'); %带阻滤波器 默认是函数自动取hamming。
%f=[0 0.4 0.4 0.65 0.65 1];
%m=[1 1 0 0 1 1]; %设定带阻的范围为0.4pi-0.65pi
%b1=fir2(34,f,m,chebwin(35,60)) %为求取频率响应系数。分子为b,分母为1
h2=impz(b2,1); %滤波器时域图
subplot(2,2,1);plot(h2);
title('time domain of filter');
y2=freqz(b2,1,100);
subplot(2,2,2); plot(abs(y2)); %滤波器频域图
title('frequecy domain of filter');
y=filter(b2,1,x); %验证
subplot(2,2,3);plot(y);
title('x time domain out of filter');%过滤图时域
y1=freqz(y);
subplot(2,2,4); plot(abs(y1)); %过滤图频域
title('x frequency out of filter');
实验结果:
分析:通过滤波,很好的从复合信号X中得到了稳定且基本没有衰减的中频信号。
实验总结:
通过本实验,我充分掌握了滤波器的分析,设计过程,对滤波器在时域和频域的图形有了一定的了解,会使用MATLAB分析信号的频谱情况,并设计相应的滤波器滤出有用信号。
信号处理实验是对信号理论课程的实践和补充,能让同学们更好的理解和掌握课本的枯燥的理论。我通过实验对课本里没认识清楚的部分,有了一个认识,让我去补充学习相关重要的理论知识,更好的掌握了本科程的知识。