实验七 函数
函数的应用实验报告

一、实验目的1. 理解函数的概念及其应用。
2. 掌握函数的基本性质和运算。
3. 应用函数解决实际问题。
4. 提高数学思维能力和解决问题的能力。
二、实验内容本次实验主要围绕以下内容展开:1. 函数的定义及性质2. 常见函数的图像和性质3. 函数的运算4. 函数在实际问题中的应用三、实验步骤1. 函数的定义及性质(1)首先,我们学习了函数的定义:设A、B是两个非空数集,如果按照某种确定的对应关系f,使得对于集合A中的任意一个数x,在集合B中都有唯一确定的数y与之对应,则称这种对应关系f为从集合A到集合B的一个函数,记作f:A→B。
(2)接着,我们探讨了函数的基本性质,如单调性、奇偶性、周期性等。
(3)最后,我们分析了函数的图像,了解函数图像与函数性质之间的关系。
2. 常见函数的图像和性质(1)我们学习了幂函数、指数函数、对数函数、三角函数等常见函数的图像和性质。
(2)通过绘制函数图像,我们观察了函数的增减性、对称性、周期性等特征。
(3)我们掌握了如何根据函数图像分析函数性质的方法。
3. 函数的运算(1)我们学习了函数的加法、减法、乘法、除法、复合等基本运算。
(2)通过练习,我们熟练掌握了函数运算的技巧。
(3)我们了解了函数运算在实际问题中的应用。
4. 函数在实际问题中的应用(1)我们学习了如何利用函数解决实际问题,如优化问题、增长率问题等。
(2)通过实例分析,我们掌握了函数在实际问题中的应用方法。
(3)我们提高了运用数学知识解决实际问题的能力。
四、实验结果与分析1. 函数的定义及性质通过实验,我们掌握了函数的定义和基本性质,如单调性、奇偶性、周期性等。
同时,我们了解了函数图像与函数性质之间的关系。
2. 常见函数的图像和性质通过绘制函数图像,我们直观地观察了函数的增减性、对称性、周期性等特征。
这有助于我们更好地理解函数的性质。
3. 函数的运算通过练习,我们熟练掌握了函数的加法、减法、乘法、除法、复合等基本运算。
DSP实验7

实验七:窗函数及其在谱分析中的作用实验目的:在理论学习的基础上,掌握不同窗函数的性质、特点,并通过实验认识它们在克服FFT 频谱分析的能量泄漏和栅栏效应误差中的作用,以便在实际工作中能根据具体情况正确选用窗函数。
实验任务:1.执行下面例程,分析不同窗函数的特点并比较结果。
2.编程实现汉宁窗。
演示其时域和频域波形。
信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。
下图是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高。
下面是四个常用窗函数的示例程序,可在Matlab下执行,注意比较它们的特点。
1.矩形窗:wp=0.2*pi;ws=0.3*pi;rp=.25;as=50;delta1=(10^(rp/20)-1)/(10^(rp/20)+1);delta2=(1+delta1)*(10^(-as/20));deltah=max(delta1,delta2);deltal=min(delta1,delta2);weights=[delta2/delta1 1];deltaf=(ws-wp)/(2*pi);M=ceil((-20*log10(sqrt(delta1*delta2))-13)/(14.6*deltaf)+1); M=M+4;f=[0 wp/pi ws/pi 1];m=[1 1 0 0];h=remez(M-1,f,m,weights);delta_w=2*pi/1000;wsi=ws/delta_w+1;wpi=wp/delta_w;asd=-max(db(wsi:501));figure(4);subplot(211);stem([0:M-1],h);title('actual impulse response') axis([0 M-1 -0.1 0.3]),xlabel('n');ylabel('h(n)')set(gca,'xtick',[0,M-1])set(gca,'ytick',[-0.1 0 0.1 0.2 0.3]),gridsubplot(212);plot(w/pi,db),title('magnitude response in db'), axis([0 1 -80 10]),xlabel('frequency in pi units')ylabel('decibels')set(gca,'xtick',[0 .2 .3 1])set(gca,'ytick',[-50,0])%set(gca,'YTickLabels',['50';'0'])grid2.汉明窗wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;m=ceil(8*pi/tr_width)+1;n=[0:m-1];wc=(ws+wp)/2;hd=ideal_lp(wc,m);w_ham=(hamming(m))';h=hd.*w_ham;delta_w=2*pi/1000;rp=-(min(db(1:1:wp/delta_w+1)));as=-round(max(db(ws/delta_w+1:1:501)));figure(1)subplot(221);stem(n,hd);title('ideal impuse response')axis([0 m-1 -.1 .3]);ylabel('hd(n)')subplot(222);stem(n,w_ham);title('hamming window')axis([0 m-1 0 1.1]);ylabel('w(n)')subplot(223);stem(n,h);title('actual impulse response')axis([0 m-1 -0.1 .3]);ylabel('h(n)')subplot(224);plot(w/pi,db);title('magnitude response in db');grid axis([0 1 -100 10]);ylabel('decibels')set(gca,'xtickmode','manual','xtick',[0,.2,.3,1])set(gca,'ytickmode','manual','ytick',[-50,0])%set(gca,'yticklabelmode','manual','yticklabels',['50';'0'])3.布莱克曼窗ws1=.2*pi;wp1=.35*pi;wp2=.65*pi;ws2=.8*pi;as=60;tr_width=min((wp1-ws1),(ws2-wp2));m=ceil(12*pi/tr_width)+1;n=[0:m-1];wc1=(ws1+wp1)/2;wc2=(ws2+wp2)/2;hd=ideal_lp(wc2,m)-ideal_lp(wc1,m);w_bla=(blackman(m))'; h=hd.*w_bla;delta_w=2*pi/1000;rp=-min(db(wp1/delta_w+1:wp2/delta_w));as=-round(max(db(ws2/delta_w+1:501)));figure(2)subplot(221);stem(n,hd);title('ideal impulse response')axis([0 m-1 -0.4 0.5]);ylabel('hd(n)')subplot(222);stem(n,w_bla);title('blackman window')axis([0 m-1 0 1.1]);ylabel('w(n)')subplot(223);stem(n,h);title('actual impulse response')axis([0 m-1 -0.4 0.5]);ylabel('h(n)')subplot(224);plot(w/pi,db);title('magnitude response in db');grid ylabel('decibels'),axis([0 1 -150 10])set(gca,'xtickmode','manual','xtick',[0,.2,.35,.65,.8,1])set(gca,'ytickmode','manual','ytick',[-60,0])%set(gca,'yticklabelmode','manual','yticklabels',['60';'0'])4.凯泽窗m=45;as=60;n=[0:m-1];beta=0.1102*(as-8.7);w_kai=(kaiser(m,beta))';wc1=pi/3;wc2=2*pi/3;hd=ideal_lp(wc1,m)+ideal_lp(pi,m)-ideal_lp(wc2,m);h=hd.*w_kai;figure(3)subplot(2,2,1);stem(n,hd);title('ideal impulse response') axis([-1 m -0.2 0.8]);xlabel('n');ylabel('hd(n)')subplot(2,2,2);stem(n,w_kai);title('kaiser window')axis([-1 m 0 1.1]);xlabel('n');ylabel('w(n)')subplot(2,2,3);stem(n,h);title('actual impulse response') axis([-1 m -0.2 0.8]);xlabel('n');ylabel('h(n)')subplot(2,2,4);plot(w/pi,db)title('magnitude response in db');grid;xlabel('frequency in pi units');ylabel('decibels') axis([0 1 -80 10]),set(gca,'xtickmode','manual','xtick',[0,1/3,2/3,1]) set(gca,'ytickmode','manual','ytick',[-60,0])。
实验七连续信号与系统复频域分析的MATLAB实现1

实验七 连续信号与系统复频域分析的MATLAB 实现一、实验目的1. 掌握连续时间信号拉普拉斯变换的MATLAB 实现方法;2. 掌握连续系统复频域分析的MATLAB 实现方法。
二、实验原理1. 连续时间信号的拉普拉斯变换连续时间信号的拉普拉斯正变换和逆变换分别为:⎰∞∞--=dt e t f s F st )()(⎰∞+∞-=j j stds e s F j t f σσπ)(21)(Matlab 的符号数学工具箱(Symbolic Math Toolbox )提供了能直接求解拉普拉斯变换和逆变换的符号运算函数laplace()和ilaplace ()。
下面举例说明两函数的调用方法。
(1)拉普拉斯变换例1.求以下函数的拉普拉斯变换。
)()()2()()()1(221t te t f t e t f t t εε--==解:输入如下M 文件:syms tf1=sym('exp(-2*t)*Heaviside(t)'); F1=laplace(f1) %求f1(t)的拉普拉斯变换 f2=sym('t*exp(-t)*Heaviside(t)'); F2=laplace(f2) 运行后,可得如下结果:F1 = 1/(s+2) F2 = 1/(s+1)^2 (2)拉普拉斯逆变换例2.若系统的系统函数为1]Re[,231)(2->++=s s s s H 。
求冲激响应)(t h 。
解:输入如下M 文件:H=sym('1/(s^2+3*s+2)');h=ilaplace(H) %求拉普拉斯逆变换运行后,可得如下结果:h=exp(-t)-exp(-2*t) 2. 连续系统的复频域分析 若描述系统的微分方程为∑∑===Mj j j Ni i i t f b t ya 0)(0)()()(则系统函数为)()()()()(00s A s B sa sb s F s Y s H Ni ii Mj jj===∑∑== 其中,∑∑====Mj j j Ni i i s b s B s a s A 0)(,)(。
大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
MATLAB实验。

MATLAB实验班级:11电气(2)姓名:幸劲昆学号:201124122201实验一 MATLAB 运算基础(一)一、实验目的1、掌握建立矩阵的方法。
2、掌握MATLAB 各种表达式的书写规则以及各种运算方法。
二、实验内容1、求下列表达式的值。
(1)e=2.73;z1=2*sin((85/360)*2*pi)/(1+e^2) z1 =0.2357 (2)()x x z ++=1ln 212,其中⎢⎣⎡-=45.02x ⎥⎦⎤+521i x=[2 ,1+2i;-0.45,5]x =2.0000 1.0000 + 2.0000i -0.4500 5.0000z2=0.5*log(x+sqrt(1+x)) z2 =0.6585 0.6509 + 0.4013i -0.6162 1.0041 (3)a=[-3.0:0.1:3.0];z3=(exp(0.3*a)-exp(0.2*a))./2.*sin(a+0.3);plot(z3)2、已知⎢⎢⎢⎣⎡=33412A 65734 ⎥⎥⎥⎦⎤-7874 和 ⎢⎢⎢⎣⎡=321B 203- ⎥⎥⎥⎦⎤-731 求下列表达式的值:(1)A+6*B 和A-B+I (其中I 为单位矩阵)。
a=[12 34 -4;34 7 87;3 65 7] b=[1 3 -1;2 0 3;3 -2 7] I=eye(3)a =b = I =12 34 -4 1 3 -1 1 0 02 03 34 7 87 0 1 03 -2 7 3 65 7 0 0 1z1=a+6*b z2=a-b+Iz1 = z2 =18 52 -10 12 31 -346 7 105 32 8 8421 53 49 0 67 1(2)A*B和A.*B。
>> a*b >> a.*bans = ans =68 44 62 12 102 4309 -72 596 68 0 261154 -5 241 9 -130 49(3)A^3和A.^3。
实验7JavaScript

实验七 JavaScript程序设计一、实验目的:深刻理解有关函数中变量的作用域和各类控制语句的功能;理解和灵活运用JavaScript中常用的几个对象及浏览器对象的属性和方法;二、实验要求:回顾和复习以前C语言的基本语法知识;进一步加深理解Javascript语法知识;三、实验器材:Windows 2000 Server计算机系统;安装IIS、Dreamweaver MX 2004、Access 2000数据库系统等。
四、实验内容:1、关于变量的作用域调试下列程序,观察并说明窗口中显示的结果;<scr ipt la ngu age="j ava scr ipt">var x=13,y=29;fun cti on tes t(){var nu m,y=10;num=x+y;x++doc ume nt.wri te("内部的num的值为:"+num+”<br>”);}tes t();docu men t.w rit e("测试x的值为:"+x+”<br>”);docu men t.w rit e("测试y的值为:"+y+”<br>”);docu men t.w rit e("外部的n um的值为:"+n um+”<br>”);</sc rip t>2、控制语句与函数的应用,用3种方式实现(if语句、条件表达式、函数调用);根据时间段的不同,在网页中显示不同的问候语,若小时数在12点以前,则输出“早上好!”的问候语,颜色为绿色;若在12点至18点,则输出“下午好!”颜色为黄色;18点以后输出“晚上好!”颜色为黑色。
[参考代码]方法1:<scr ipt la ngu age="j ava scr ipt">v ar cur day=ne w D ate();h our s=c urd ay.get Hou rs();d ocu men t.w rit e("现在是:"+ho urs+"点,");i f (hou rs<=12) {doc ume nt.wri te("<f ont co lor='00ff00'>早上好!</fo nt>");}e lse if(hou rs<=18){d ocu men t.w rit e("<fo nt col or='ff ff00'>中午好!</fo nt>");}e lse{d ocu men t.w rit e("<fo nt col or='000000'>晚上好!</fon t>");}</sc rip t>3、运用windows对象的属性与方法实现动感网页效果;(1)运用JavaScript和windows对象setTimeout方法编程实现在网页中不断显示不同图片的动画效果,有几个按钮控制该动画的不同效果,分别为:放大、缩小、向前、向后、停止、启动;[参考代码]<bod y><img sr c="" a lt="" nam e="my_ima ge" wi dth="32" hei ght="32" i d="my_ima ge" /><Scr ipt La ngu age="J ava Scr ipt">va r i mag e,i=1func tio n i mag e_c han ge() {i f(i==5) {i=1;}my_ima ge.src="I mag e"+i+".jp g";i=i+1;ima ge=setT imeo ut('ima ge_c hang e()',1000);}imag e_c han ge(); //函数调用;</Sc rip t></bo dy>按钮代码:(2)运用JavaScript和windows对象status属性编程实现网站状态行跑马灯式文字效果的显示:“欢迎光临本站”。
实验七 用Maple解常微分方程

实验七用Maple解常微分方程1. 实验目的本实验旨在通过使用数学建模软件Maple来解常微分方程,加深对常微分方程解法的认识和理解。
通过实际操作和观察结果,提高对Maple软件的运用能力。
2. 实验原理常微分方程是描述物理、化学、工程等领域中的连续变化过程的常见数学工具。
解常微分方程可以帮助我们理解系统的演化规律,从而进行预测和控制。
Maple是一款强大的数学软件,其中包含了丰富的求解常微分方程的函数。
通过输入常微分方程的表达式,Maple可以直接给出解析解或数值解。
在本实验中,我们将使用Maple来解常微分方程。
3. 实验步骤3.1 安装Maple软件3.2 打开Maple软件双击桌面上的Maple图标,打开软件。
3.3 输入常微分方程点击菜单栏中的"输入",选择"数学输入",在弹出的对话框中输入常微分方程的表达式。
例如,我们要解的方程是一阶线性常微分方程`dy/dx + y = 0`,则输入表达式为:diff(y(x),x) + y(x) = 03.4 求解方程点击菜单栏中的"执行",选择"执行工作表",Maple将根据输入的方程进行求解。
3.5 查看解析解或数值解Maple会给出方程的解析解或数值解。
根据实验需求,可以选择相应的解进行查看和分析。
3.6 导出结果点击菜单栏中的"文件",选择"导出为",选择导出格式和保存路径,点击"保存",将结果导出为文档或图像文件。
4. 实验结果根据实验中输入的常微分方程,Maple求解得到如下解析解:y(x) = C exp(-x)其中C为任意常数。
5. 实验总结通过本次实验,我们研究了使用Maple软件求解常微分方程的方法。
Maple的强大功能和简便操作使得解常微分方程变得更加容易。
通过实际操作,我们可以深入理解常微分方程的解法和物理意义。
实验七-运算符重载参考答案

实验七-运算符重载参考答案实验七多态性—函数与运算符重载7.1 实验目的1.理解掌握成员函数方式运算符重载;2.理解掌握友元函数方式运算符重载;3.理解掌握++、--运算符的重载。
7.2 实验内容7.2.1程序阅读1.理解下面的程序,并运行查看结果,回答程序后面的问题。
#include <iostream>using namespace std;class CComplex{public:CComplex(){real = 0;imag = 0;}CComplex(int x,int y){real = x;imag = y;}int real;int imag;CComplex operator + (CComplex obj1)//---------------------------------------------①{CComplex obj2(real - obj1.real, imag - obj1.imag);return obj2;}};int main(){CComplex obj1(100,30);CComplex obj2(20, 30);CComplex obj;obj = obj1+obj2; //------------------------------------------------------------------②cout << obj.real <<endl;cout << obj.imag << endl;return 0;}问题一:①处的运算符重载,为什么该函数的返回值要设计成CComplex类型?答:因为在函数中return obj2,obj2是CComplex 类型,所以函数返回值要与return返回的类型相同,即设计成CComplex类型。
问题二:②处的运算符重载函数调用就相当于“obj=operator+(obj1,obj2);”,但是为什么CComplex类中的运算符重载函数只设计了一个参数?答:因为成员函数经编译后会产生this指针,this指针会指向调用该函数的obj1对象,该obj1对象就是就相当于函数的第一个参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七函数(一)
1.实验目的
(1)熟悉定义函数的方法
(2)熟悉声明函数的方法
(3)熟悉调用函数时实参与形参的对应关系,以及“值传递”的方式
(4)学习对多文件的程序的编译和运行
2.实验内容
编程序并上机调试运行之
(1)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息
本程序应当准备以下测试数据: 17,34,2,1,0。
分别运行并检查结果是否正确。
要求所编写的程序,主函数的位置在其他函数之前,在主函数中对其所调用的函数作声明。
进行以下工作:
<1>输人自己编写的程序,编译和运行程序,分析结果
<2>将主函数的函数声明删掉,再进行编译,分析编译结果
<3>把主函数的位置改为在其他函数之后,在主函数中不含函数声明
<4>保留判别素数的函数,修改主函数,要求实现输出100~200之间的素数(2)写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出
<1>输人程序,编译和运行程序,分析结果
<2>分析函数声明中参数的写法。
先后用以下两种形式
i: 函数声明中参数的写法与定义函数时的形式完全相同,如
void cpy(char s[ ],char c[ ]);
ii:函数声明中参数的写法与定义函数时的形式基本相同,但省略写数组名。
如:
void cpy(char[ ],char[ ]) ;
分别编译和运行,分析结果。
思考形参数组为什么可以不指定数组大小。
<3>如果随便指定数组大小行不行,如:
void cpy(char s[40 ],char [40])
请分别上机试一下。
(3)输人10个学生5门课的成绩,分别用函数实现下列功能:
<1>计算每个学生平均分;
<2>计算每门课的平均分;
<3>找出所有50个分数中最高的分数所对应的学生和课程
(4)用一个函数来实现将一行字符串中最长的单词输出。
此行字符串从主函数
传递给该函数
<1>把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。
<2>把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和
运行。