实验八 函数实验一

合集下载

实验八__差分方程

实验八__差分方程

实验八差分方程[实验目的]1. 掌握差分的性质,多项式求和;2. 差分方程的解法;3. 用差分方程解代数方程;4. 用差分方程分析国民经济。

§1 基本理论1.差分2. 任意数列{x n },定义差分算子Δ如下:Δx n=x n+1-x n对新数列再应用差分算子,有Δ2xn=Δ(Δk x n).性质性质1 Δk(x n+y n)=Δk x n+Δk y n性质2 Δk(cx n)=cΔk x n性质3 Δk x n=∑(-1)jC j k X n+k-j性质4 数列的通项为n的无限次可导函数,对任意k>=1,存在η,有Δk xn=f(k)(η) 差分方程定义8。

1 方程关于数列的k阶差分方程:x n-a1x n-1-a2x n-2-……a B x n-k=b(n=k,k+1,……)其中a1,a2,------ak 为常数,ak≠0. 若b=0,则该方程是齐次方程关于λ的代数方程λk-a1λk-1-------a k-1λ-a k=0为对应的特征方程,根为特征值。

1.实验内容与练习2.1 差分例1Xn={n3可见,{n},三阶差分数列为常数数列,四阶为0。

练习1 对{1},{n},{n 2},{n 4},{n 5}, 分别求各阶差分数列。

练习2 {C 0n-1}{C 1n-1}{C 2n-1},{C 4n-1},分别求各阶差分数列. {Xn}的通项为n 的三次函数, Xn=a 3n 3+a 2n 2+a 1n+a 0 证明它为常数数列。

证明 由Xn=a 3n 3+a 2n 2+a 1n+a 0可直接计算 。

定理8。

1 若数列的通项是关于n 的k 次多项式,则 k 阶差分数列为非零数列,k+1阶差分数列为0。

练习3 证明定理8。

1 。

定理8。

2 若{Xn}的 k 阶插分为非零常数列,则{Xn}是 n 的 k 次多项式,练习4 根据插分的性质证明定理8。

2 例2。

求∑i 3 例3 例4解 设Sn=∑i 3 表设Sn=a 4n4+a 3n 3+a 2n 2+a 1n+a 0, s 1=1,s 2=9,s 3=36,s 4=100,s 5=225,得a 0=0, a 1=0, a 2=1/4, a 3=1/2, a 4=1/4.所以,Sn=(1/4)n 4+(1/2)n 3+(1/4)n 2.练习 {Xn}的通项Xn 为n 的k 次多项式,证明∑x i 为n 的 k+1次多项式;求 ∑i 4.由练习 2 {C r n-1}可得。

高级语言程序设计实验指导书ptf

高级语言程序设计实验指导书ptf

高级语言程序设计实验指导书编者:苑俊英2010.9前言本实验指导书是《高级语言程序设计实验》课程的配套教材,本指导书中的实验内容涉及到高级语言中各个章节的知识点,并对任课教师和学生以指导。

该指导书的实验一至实验十二为专题实验,实验十三为综合实验,除了从各个知识点对学生加以实践外,还以综合项目的形式,让学生体会团队合作、中小型项目的开发过程和方法,锻炼其综合运用所学知识的能力和动手实践的能力。

本实验指导由苑俊英执笔完成,由于作者水平有限,难免有不妥之处,请各位老师和专家指正!目录实验相关 (4)实验一 C程序的运行环境和运行C程序的方法 (6)实验二数据类型、运算符和表达式(1) (8)实验三数据类型、运算符和表达式(2) (11)实验四最简单的C程序设计 (13)实验五逻辑结构程序设计 (15)实验六循环结构程序设计 (16)实验七数组 (17)实验八函数1 (19)实验九函数2 (20)实验十指针 (21)实验十一结构体和共用体 (22)实验十二位运算 (23)实验十三文件 (24)综合实验 (25)实验相关1.每次实验准备(1)了解所用计算机系统的性能和使用方法(2)复习和掌握与本实验有关的教学内容(3)准备好上机所需程序(4)需事先估计运行中可能出现的问题,针对不同的问题进行修改(5)准备好调试和运行时所需的数据2.实验要求(1)一人一组,独立上机(综合实验除外)。

(2)上机过程出现的问题,除了是系统问题外,一般应独立解决,不要轻易举手求助老师。

对出错信息进行分析、判断,学习如何调试程序。

(3)独立完成实验,按时交实验报告。

3.实验步骤(1)进入C工作环境(Turbo C、Turbo C++、Visual C++、Visual Studio 2008、Eclipse、CodeBlocks)(2)编辑程序(3)检查程序的书写错误并修改(4)编译和连接,根据出错信息进行更改,直到编译连接通过为止(5)运行程序并分析运行结果是否合理和正确(6)输出程序清单和运行结果(7)书写实验报告4.实验报告(1)实验报告应包括以下内容:(2)题目(3)程序清单(4)运行结果(5)对运行结果的分析及本次实验取得的经验,如果程序未通过,应分析其原因实验一 C程序的运行环境和运行C程序的方法1.实验目的(1)了解所用计算机系统的基本操作方法,学会独立使用该系统。

C语言实验报告

C语言实验报告

中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。

2,通过调试,运行简单的C程序,初步了解C语言程序的特点。

实验内容:1.编写一个C程序,求一个圆的面积。

我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。

我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。

2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。

c语言第二部分 实验内容

c语言第二部分 实验内容

三、实验内容
1.阅读并输入如下程序,查看运行结果,并分析其功能。 # include "stdio.h" main ( ) { int a, b, c, s ; a = 5; b = 4; c = 6; s = (a+b+c)/ 3; printf (" a = %d, b = %d, c = %d \n, s = %d ", a, b, c, s) ; }
C语言程序设计实验·设计·习题
2.下面是一正方形面积的计算程序,通过输入不同的边长,求 出不同的面积。输入此程序并试运行。 注意:程序中含有输入语句,运行时将会停留在另一窗口中等待 输入数据。 # include"stdio.h" main ( ) { int r, s ; scanf (" %d ",&r) ; s= r*r; printf (" s = %d ", s) ; } 3.在Turbo C中调试并修改以下C程序中的错误。
C语言程序设计实验·设计·习题
三、实验内容
1.改正书中所给的相关程序的错误。 2.程序填空。 (1)按程序中注释的要求填输出语句。 (2)要求运行时必须按如下格式输入数据,请填空。 3.程序编译成功,只是说明没有语法错误,但并不一定能得出 正确结果,因为有可能存在编程逻辑错误。这时,我们需要跟踪变量、 调试程序,找出问题所在。调试的一般方法有: (1)单步跟踪:选择Run菜单下的Step命令,也可以直接按快捷键 F7(可跟踪进函数、过程)或快捷键F8,这样可以每条语句单独运行。 (2)运行至光标处:先将光标移至目标语句,然后选择Run菜单下 的Go to Cursor命令,或按快捷键F4,这样可以连续运行从开始到光 标处的一段程序。

STM8教程实验8-定时器TIM1

STM8教程实验8-定时器TIM1

例程八 TIM1这一节,我们将向大家介绍如何使用STM8的定时器中的基本定时功能,STM8的定时器功能十分强大,有TIM1高级定时器,也有TIM2、TIM3等通用定时器,还有TIM4基本定时器。

在STM8S参考手册里面,定时器的介绍占了1/3的篇幅,足见其重要性。

这一节,我们分别介绍TIM1的基本定时功能16位高级控制定时器(TIM1)简介:TIM1由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。

TIM1有4个通道,分别是1到4。

分别对应于四个不同的捕获/比较通道。

高级控制定时器适用于许多不同的用途:基本的定时测量输入信号的脉冲宽度(输入捕获)产生输出波形(输出比较,PWM和单脉冲模式)对应与不同事件(捕获,比较,溢出,刹车,触发)的中断与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步 高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM的应用,该模式支持互补输出和死区时间控制。

高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。

TIM1的时基单元包括,如下图所示:● 16位向上/向下计数器● 16位自动重载寄存器● 重复计数器● 预分频器16位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件进行读写操作。

自动重载寄存器由预装载寄存器和影子寄存器组成。

可在在两种模式下写自动重载寄存器:● 自动预装载已使能(TIM1_CR1寄存器的ARPE位置位)。

在此模式下,写入自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。

● 自动预装载已禁止(TIM1_CR1寄存器的ARPE位清除)。

在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。

更新事件的产生条件:●计数器向上或向下溢出。

●软件置位了TIM1_EGR寄存器的UG位。

●时钟/触发控制器产生了触发事件。

实验八实验报告电工学

实验八实验报告电工学

中山大学电工原理及其应用实验报告S U N Y A T-S E N U N I V E R S I T Y院(系):移动信息工程学号:审批专业:软件工程实验人:实验题目:实验九:BJT单管共射电压放大电路一、实验目的1. 掌握放大电路静态工作点的测试方法,分析静态工作点对放大器性能的影响。

2. 掌握放大电路动态性能(电压增益、输入电阻、输出电阻、最大不失真输出电压以及幅频特性等)的测试方法。

3. 进一步熟练常用电子仪器的使用二、预习思考题1.阅读教材中有关单管放大电路的内容并估算实验电路的性能指标。

假设:3DG6 的β=100,Rb2=20KΩ,Rb1=60KΩ,RC=2KΩ,RL=2KΩ。

估算放大电路的静态工作点,电压增益AV,输入电阻Ri和输出电阻RO2、阅读实验附录中有关示波器的使用、晶体管特性图示仪简介以及放大电路干扰和自激振荡消除的内容。

3、能否用直流电压表直接测量晶体管的VBE?为什么实验中要采用测VB、VE,再间接算出VBE的方法?答:一般的电压表直接测不准,会引起电路参数变化,因为电表直接接在输入端,形成额外的输入信号。

而测UB、UE时,电压表的一端是接地的,不容易形成额外输入。

4、怎样测量Rb1阻值?答:用万用表电阻档测量。

5、当调节偏置电阻Rb1,使放大电路输出波形出现饱和或截止失真时,晶体管的管压降VCE怎样变化?答:饱和失真时Uce减小Ic增大,截止失真时Uce增大Ic减小。

6、改变静态工作点对放大电路的输入电阻Ri有否影响?改变外接电阻RL对输出电阻RO有否影响?答:因为Ri≈Rbe‖Rb1‖Rb2;Ro≈Rc,所以对输入电阻有影响对输出电阻吴影响。

7、在测试AV,Ri和RO时怎样选择输入信号的大小和频率?为什么信号频率一般选1KHz,而不选100KHz 或更高?答:应该选Ui=10mv作用f=1KHZ左右,因为,试验电路为阻容耦合单管共射放大电路,阻容耦合单管放大电路的下限频率fL越小电路的低频响应越好,所以采用1KHZ而不用更高的8.单管共射级放大电路测试中,如果将函数信号发生器,交流毫伏表,示波器中任一仪器的二个测试端子接线换位,将会出现什么问题?答:对于函数信号发生器:如果有波形输出,例如正弦波,则在示波器端的显示是反相。

实验八(上):SQL-Server用户自定义函数和触发器

实验八(上):SQL-Server用户自定义函数和触发器

实验八(上)用户自定义函数和触发器一、实验目的1、掌握SQLServer中用户自定义函数的使用方法。

2、掌握SQL Server中触发器的使用方法。

二、实验内容和要求1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。

自选2种实例调用该函数。

create function RectangleArea(@a int,@b int)returns intasbeginreturn @a*@benddeclare @area intexecute @area=RectangleArea 3,5print('矩形面积是:')print @areadeclare @area intexecute @area=RectangleArea 7,8print('矩形面积是:')print @area2.创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。

调用这个函数,显示信息系有选课学生的信息。

create function Search (@sdept char(10))returns tableasreturn(select sc.sno 学号,student.sname 姓名,ame 课程名,sc.grade 成绩,student.sdept 系别from sc,student,course where o=o andsc.sno = student.sno and sdept=@sdept)select*from Search('cs')3.创建一个作用在P表上的触发器P_checks,确保用户在插入或更新P表的WEIGHT值时,所提供的WEIGHT值介于20与40之间,否则给出错误提示并回滚此操作。

请测试该触发器,测试方法自定。

create trigger P_checks on p for insertasbegindeclare @weight intselect @weight=weight from insertedif @weight<10 or @weight>20beginRAISERROR('weight 必须在~20之间!',16,1)ROLLBACK TRANSACTIONendendinsert into p(pno,pname,color,weight)values('p7','刀片','红',40)insert into p(pno,pname,color,weight)values('p7','刀片','红',15)select*from p4.创建一个作用在J表上的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。

C语言实验报告 实验八 参考答案

C语言实验报告 实验八 参考答案

实验七八 函 数(一) 参考答案1.请编写程序sy8-1.cpp ,要求:(1)设计一个fun 函数用来计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

(2)在主函数中输入数据,调用fun 函数,输出结果。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

【解题思路】用循环穷举1~n 之间各数,若余5等于0或余9等于0,则将其表示为倒数并累加即可。

注意分式若需要得到实数结果则必须至少有一个操作数是实数类型。

【参考答案】#include <stdio.h>double fun(int n){ double s=0;int i;for(i=1;i<=m;i++)if(i%5==0||i%9==0)s=s+1.0/i;return s;}main( ){ int n;double s;printf("\nInput n: ");scanf("%d",&n);s=fun(n);printf("s=%f\nlf",s);}2.请编写程序sy8-2.cpp ,要求:(1)设计一个fun 函数用来计算下列多项式的值。

(2)在主函数中输入数据,调用fun 函数,输出结果。

例如:若n 的值为11时,函数的值为1.83333【解题思路】根据多项式各项的变化规律可以看出各项的分子为常量1,分母是从1到n 累加和。

【参考答案】#include <stdio.h>float fun(int n){ float sum=0,s=0; //sum 存多项式的累加和,s 存分母的累加和int i;for(i=1;i<=n;i++){ s=s+i; //先求分母的累加sum=sum+1/s;}return sum;}main()n s ⋯++++⋯++++++=321132112111{int n; float s;printf("\nPlease enter n:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s);}3.请编写程序sy8-3.cpp,要求:(1)设计一个fun函数,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

实验八(上):SQL Server用户自定义函数和触发器

实验八(上):SQL Server用户自定义函数和触发器

实验八(上)用户自定义函数和触发器一、实验目的1、掌握SQLServer中用户自定义函数的使用方法。

2、掌握SQL Server中触发器的使用方法。

二、实验内容和要求1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。

自选2种实例调用该函数。

create function RectangleArea(@a int,@b int)returns intasbeginreturn @a*@benddeclare @area intexecute @area=RectangleArea 3,5print('矩形面积是:')print @areadeclare @area intexecute @area=RectangleArea 7,8print('矩形面积是:')print @area2.创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。

调用这个函数,显示信息系有选课学生的信息。

create function Search (@sdept char(10))returns tableasreturn(select sc.sno 学号,student.sname 姓名,ame 课程名,sc.grade 成绩,student.sdept 系别from sc,student,course where o=o andsc.sno = student.sno and sdept=@sdept)select*from Search('cs')3.创建一个作用在P表上的触发器P_checks,确保用户在插入或更新P表的WEIGHT值时,所提供的WEIGHT值介于20与40之间,否则给出错误提示并回滚此操作。

请测试该触发器,测试方法自定。

create trigger P_checks on p for insertasbegindeclare @weight intselect @weight=weight from insertedif @weight<10 or @weight>20beginRAISERROR('weight 必须在~20之间!',16,1)ROLLBACK TRANSACTIONendendinsert into p(pno,pname,color,weight)values('p7','刀片','红',40)insert into p(pno,pname,color,weight)values('p7','刀片','红',15)select*from p4.创建一个作用在J表上的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。

实验八:基于神经网络的优化计算实验

实验八:基于神经网络的优化计算实验

实验八:基于神经网络的优化计算实验一、实验目的掌握连续Hopfield神经网络的结构和运行机制,理解连续Hopfield神经网络用于优化计算的基本原理,掌握连续Hopfield神经网络用于优化计算的一般步骤。

二、实验原理连续Hopfield神经网络的能量函数的极小化过程表示了该神经网络从初始状态到稳定状态的一个演化过程。

如果将约束优化问题的目标函数与连续Hopfield神经网络的能量函数对应起来,并把约束优化问题的解映射到连续Hopfield神经网络的一个稳定状态,那么当连续Hopfield神经网络的能量函数经演化达到最小值时,此时的连续Hopfield神经网络的稳定状态就对应于约束优化问题的最优解。

三、实验条件VC++6.0。

四、实验内容1、参考求解TSP问题的连续Hopfield神经网络源代码,给出15个城市和20个城市的求解结果(包括最短路径和最佳路线),分析连续Hopfield神经网络求解不同规模TSP问题的算法性能。

2、对于同一个TSP问题(例如15个城市的TSP问题),设置不同的网络参数,分析不同参数对算法结果的影响。

3、上交源代码。

五、实验报告1、画出连续Hopfield神经网络求解TSP问题的流程图。

2、根据实验内容,给出相应结果及分析。

(1)15个城市(测试文件TSP15.TXT)tsp15.txt 最短路程 371最佳路线1914861351534712210111→→→→→→→→→→→→→→→(2)20个城市(测试文件TSP20.TXT)tsp20.txt 最短路程349最佳路线→→→→→→→→→→→→→→→→→→→→→1416189713151117351242891916102013、总结连续Hopfield神经网络和遗传算法用于TSP问题求解时的优缺点。

遗传算法易出现早熟收敛和收敛性差的缺点。

Hopfield算法对高速计算特别有效,但网络不稳定。

用Hopfield解TSP问题效果并不理想。

C语言程设计实验与案例周信东主编实验八 指针

C语言程设计实验与案例周信东主编实验八  指针

实验6 指针学号:1700200224姓名:莫新锋实验日期:一、实验目的和要求(1)掌握指针的概念、指针变量定义和引用。

(2)掌握指针的运用方法。

(3)掌握数组的指针和指向数组的指针变量。

(4)掌握指针与函数的关系。

(5)能正确使用字符串的指针和指向字符串的指针变量。

(6)了解指向函数的指针。

(7)了解指向指针变量的指针的概念及其使用方法。

二、实验内容完成实验指导书中的实验八“基础部分”和“增强部分”的题目。

实验九的内容由同学自行选作。

三、实验步骤及结果【基础题】:Ex8-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面源程序代码:请在此粘贴修改后正确的程序代码。

、#include<stdio.h>//#define N 12void main(){int j, a[12],*p=a;//p=&a[N];for(j=1;j<=12;j++)scanf("%d",p);for(j=1;j<=12;j++){printf("%d",p++);if(j%4==0)printf("\n");}}运行结果:请在此粘贴本程序运行结果的截图Ex8-2请在下面插入该程序的运行结果的画面:运行结果:#include<stdio.h>swap(int *pl,int *p2){int p;p=*pl;*pl=*p2;*p2=p;}void main(){int n1,n2,n3;int *p1,*p2,*p3;printf("Input n1,n2,n3: ");scanf("%d,%d,%d",&n1 ,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if (n1>n2)swap(p1,p2);if (n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf("The result is:%d %d %dn",n1,n2,n3);}请在此粘贴本程序运行结果的截图试用解释本程序是如何通过指针参数p1、p2改变主函数main中的变量n1、n2、n3的值的?请回答问题将n1,n2,n3的地址分别给p1,p2,p3,通过对n1,n2,n3两两的比较,调用函数swap进行排序,进而得到新的地址排序后输出【增强题】:Eh8-1请在下面分别完成本题的源程序代码及运行结果的画面:源程序代码:请在此粘贴完成本题的程序源代码。

python程序设计的8个实验内容

python程序设计的8个实验内容

一、概述Python是一种直观、易学、功能强大的计算机编程语言,广泛应用于Web开发、数据分析、人工智能等领域。

本文将介绍Python程序设计的8个实验内容,帮助读者深入了解和掌握Python编程技能。

二、实验一:基础语法1. 学习Python的基本语法,包括变量、数据类型、运算符等。

2. 编写一个简单的Python程序,实现对用户输入的数字进行排序并输出结果。

三、实验二:条件控制和循环1. 掌握Python的条件控制语句,如if-else和switch-case。

2. 熟练运用循环结构,包括for循环和while循环。

3. 编写一个Python程序,实现对用户输入的数字进行判断,输出是否为素数。

四、实验三:函数1. 学习Python函数的定义和调用。

2. 掌握参数传递和返回值的用法。

3. 编写一个Python程序,实现计算两个数的最大公约数和最小公倍数的函数,并进行调用测试。

五、实验四:列表和元组1. 了解Python中列表和元组的概念和用法。

2. 编写一个Python程序,实现对列表和元组的增删改查操作,并输出结果。

六、实验五:字典和集合1. 掌握Python中字典和集合的特点和用法。

2. 编写一个Python程序,实现对字典和集合的遍历和操作,并输出结果。

七、实验六:文件操作1. 学习Python文件的打开、读取和写入操作。

2. 编写一个Python程序,从文件中读取数据并进行处理,然后将结果写入新文件。

八、实验七:异常处理1. 理解Python中异常的概念和分类。

2. 编写一个Python程序,模拟发生异常并进行处理,保证程序正常运行。

九、实验八:面向对象编程1. 学习Python面向对象编程的相关知识,包括类、对象、继承等。

2. 编写一个简单的Python程序,实现一个基本的面向对象应用,并进行测试。

十、结语通过以上8个实验内容的学习,读者可以系统地了解和掌握Python程序设计的基础知识和技能,为进一步深入学习和应用Python打下坚实的基础。

实验八集成运算放大器的基本应用(i)

实验八集成运算放大器的基本应用(i)

40 模拟电子技术实验实验八集成运算放大器的基本应用(I)─模拟运算电路一、实验目的1. 研究由集成运算放大器组成的比例、加法、减法和积分等基本运算电路的功能。

2.了解运算放大器在实际应用时应考虑的一些问题。

二、实验设备与器件三、实验原理集成运算放大器是一种具有高电压放大倍数的直接耦合多级放大电路。

当外部接入不同的线性或非线性元器件组成输入和负反馈电路时,可以灵活地实现各种特定的函数关系。

在线性应用方面,可组成比例、加法、减法、积分、微分、对数等模拟运算电路。

1.理想运放的特性在大多数情况下,运放可被视为理想器件,就是将运放的各项技术指标理想化,理想运放需要满足下列条件:开环电压增益A ud=∞输入阻抗r i=∞输出阻抗r o=0带宽f BW=∞失调与漂移均为零等。

理想运放在线性应用时的两个重要特性:(1)输出电压U O与输入电压之间满足关系式U O=A ud(U+-U-)由于A ud=∞,而U O为有限值,因此,U+-U-≈0。

即U+≈U-,称为“虚短”。

(2)由于r i=∞,故流进运放两个输入端的电流可视为零,即I IB=0,称为“虚断”。

这说明运放对其前级吸取电流极小。

上述两个特性是分析理想运放应用电路的基本原则,可简化运放电路的计算。

2.基本运算电路(1)反相比例运算电路实验八 集成运算放大器的基本应用(Ⅰ) 41电路如图8-1所示。

对于理想运放,该电路的输出电压与输入电压之间的关系为i 1F O U R R U -=为了减小输入级偏置电流引起的运算误差,在同相输入端应接入平衡电阻R 2=R 1 // R F 。

图8-1 反相比例运算电路 图8-2 反相加法运算电路(2)反相加法电路电路如图8-2所示,输出电压与输入电压之间的关系为)(i22F i11F O U R RU R R U +-= R 3=R 1 / / R 2 / / R F (3)同相比例运算电路(a) 同相比例运算电路 (b) 电压跟随器图8-3 同相比例运算电路图8-3(a)是同相比例运算电路,它的输出电压与输入电压之间的关系为i 1F O )(1U R R U += R 2=R 1 / / R F42 模拟电子技术实验当R 1→∞时,U O =U i ,即得到如图8-3(b)所示的电压跟随器。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

实验八-快速傅立叶变换(FFT)实验

实验八-快速傅立叶变换(FFT)实验

实验七 快速傅立叶变换(FFT )实验一 实验目的1. 熟悉CCS 集成开发环境;2. 了解FFT 的算法原理和基本性质;3. 熟悉DSP 中cmd 文件的作用及对它的修改;4. 学习用FFT 对连续信号和时域信号进行频谱分析的方法;5. 利用DSPLIB 中现有的库函数;6. 了解DSP 处理FFT 算法的特殊寻址方式;7. 熟悉对FFT 的调试方法。

二 实验内容本实验要求使用FFT 变换对一个时域信号进行频谱分析,同时进行IFFT 。

这里用到时域信号可以是来源于信号发生器输入到CODEC 输入端,也可以是通过其他工具计算获取的数据表。

本实验使用Matlab 语言实现对FFT 算法的仿真,然后将结果和DSP 分析的结果进行比较,其中原始数据也直接来自Matlab 。

三 实验原理一个N 点序列][k x 的DFT ][m X ,以及IDFT 分别定义为:1,,1,0,][][10-==∑-=N m W k x m X km NN k 1,,1,0,][1][10-==--=∑N k W m X N k x km N N m如果利用上式直接计算DFT,对于每一个固定的m,需要计算N 次复数乘法,N-1次加法,对于N 个不同的m,共需计算N 的2次方复数乘法,N*(N-1)次复数加法.显然,随着N 的增加,运算量将急剧增加, 快速傅里叶算法有效提高计算速度(本例使用基2 FFT 快速算法),利用FFT 算法只需(N/2)logN 次运算。

四 知识要点 .1、 CMD 文件的功能及编写2、 一种特殊的寻址方式:间接寻址间接寻址是按照存放在某个辅助寄存器的16位地址寻址的。

C54x 的8个辅助寄存器(AR0—AR7)都可以用来寻址64K 字数据存储空间中的任何一个存储单元。

3、 TMS320C54x DSPLIB 中关于FFT 变换的一些函数的调用(SPRA480B.pdf )利用DSPLIB 库时,在主程序中要包含头文件:54xdsp.lib4、 FFT 在CCS 集成开发环境下的相关头文件#include <type.h> //定义数据类型的头文件#include <math.h> //数学函数的头文件,如sqrt.#include <tms320.h> //定义数据类型的头文件#include <dsplib.h> // DSPLIB库文件五实验程序说明1、实验主要函数/***************************正变换*************************************/cbrev(x,x,NX/2); //倒序rfft(x,64,0); //实数FFT变换//求频谱由于FFT程序计算得到的数据只是频谱的实部和虚部,不包含计算幅度谱的//成分(所以描述DSP的参数中给出计算N点FFT的时间,是指不含计算幅度谱的时间),//因此要得到幅度频谱,必须另外增加程序语句来实现。

数学分析实验讲义

数学分析实验讲义


2
、已知数列 Fn =
1 5
[(
1+ 2
5
)
n+1

(
1− 2
5
) n+1 ] ,求证极限
lim
n→∞
Fn Fn +1
=
5 −1 2

0.618

3
实验二 收敛速度与无穷小的阶
实验的目的
1、 在掌握极限的基本知识基础上,进一步掌握无穷小的概念; 2、 进一步学习掌握 Matlab 的求极限的命令。
n=1:5:1000; %离散化,n 可以无限增大
y21=1./n;
y22=1./(n.^2);
subplot(2,2,2);
plot(n,y21,n,y22); title('图 b'); %绘出 2)的图像
x=0:0.0001:4;%离散化
syms x; a=sym('x^2*sin(1/x)'); b=limit(a,x,0) 输出结果:
b= 0
再观察其图像在 x → 0 处的特点:
4
其 M 文件程序设计如下:
x=-0.2:0.0001:0.2;
y1=x.^2;
y2=-x.^2;
y3=(x.^2).*sin(1./x);
hold on
x x x→0−
x→0+
为了更好理解在 x = 0 极限状态,现在绘出函数图形如图 1.1。其实验 M 文件程序设计
如下:
x=0.001:0.001:2; t=0.001:-0.001:-2; y1=x/abs(x); y2=t/abs(t); hold on plot(x,y1); plot(t,y2); 以下为求出极限的 M 文件程序: syms x; limit(x/abs(x),x,0,'left') limit(x/abs(x),x,0,'right') limit(x/abs(x),x,0) 输出结果:

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文

《数值分析》课程实验报告范文《数值分析》课程实验报告姓名:学号:学院:机电学院日期:2022年某月某日目录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

实验二函数逼近与曲线拟合一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。

t(分)051015202530354045505501.272.162.863.443.874.154.374.51 4.584.024.64二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;4、另外选取一个近似表达式,尝试拟合效果的比较;5、某绘制出曲线拟合图。

三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系四、实验步骤:第一步先写出线性最小二乘法的M文件functionc=lpoly(某,y,m)n=length(某);b=zero(1:m+1);f=zero(n,m+1); fork=1:m+1f(:,k)=某.^(k-1);enda=f'某f;b=f'某y';c=a\b;c=flipud(c);第二步在命令窗口输入:>>lpoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64],2)回车得到:an=-0.00240.20370.2305即所求的拟合曲线为y=-0.0024某2+0.2037某+0.2305在编辑窗口输入如下命令:>>某=[0,5,10,15,20,25,30,35,40,45,50,55];>>y=-0.0024某某.^2+0.2037某某+0.2305;>>plot(某,y)命令执行得到如下图五、实验结论分析复杂实验数据时,常采用分段曲线拟合方法。

实验八 常微分方程初值问题数值解法报告

实验八 常微分方程初值问题数值解法报告

实验八 常微分方程初值问题数值解法一、基本题科学计算中经常遇到微分方程(组)初值问题,需要利用Euler 法,改进Euler 法,Rung-Kutta 方法求其数值解,诸如以下问题:(1) ()⎪⎩⎪⎨⎧=-='004y xy y x y 20≤<x分别取h=0.1,0.2,0.4时数值解。

初值问题的精确解245x y e -=+。

(2) ()⎩⎨⎧=--='0122y y x y 01≤≤-x用r=3的Adams 显式和预 - 校式求解取步长h=0.1,用四阶标准R-K 方法求值。

(3)()()()100010321331221==-='⎪⎩⎪⎨⎧-='-='='y y y y y y y y y 10≤≤x用改进Euler 法或四阶标准R-K 方法求解取步长0.01,计算(0.05),(0.1y y y 数值解,参考结果 123(0.15)0.9880787,(0.15)0.1493359,(0.15)0.8613125y y y ≈-≈≈。

(4)利用四阶标准R- K 方法求二阶方程初值问题的数值解(I )()()⎩⎨⎧='==+'-''10,00023y y y y y 02.0,10=≤≤h x(II)()()()⎩⎨⎧='==+'--''00,10011.02y y y y y y 1.0,10=≤≤h x(III)()()⎪⎩⎪⎨⎧='=+='00,101y y e y y x 1.0,20=≤≤h x(IV)()()⎩⎨⎧='==+''00,100sin y y y y 2.0,40=≤≤h x二、应用题1. 小型火箭初始质量为900千克,其中包括600千克燃料。

火箭竖直向上发射时燃料以15千克/秒的速率燃烧掉,由此产生30000牛顿的恒定推力.当燃料用尽时引擎关闭。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数实验一
一、目的与要求 1.掌握 C 语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 二、实验例程 例 1:利用函数调用方式实现从键盘输入两个整数,输出较大的数。 int max(int a,int b); void main() {
int max(int a,int b); int x,y,z; printf("input two numbers:\n"); scanf("%d,%d",&x,&y);//输入时注意"," z=max(x,y); printf("maxmum=%d",z); } int max(int a,int b) { if(a>b) return a; else return b; } 例 2:写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数 调用这两个函数并输出结果。两个正数由键盘输入。 源程序如下: #include "stdio.h" hcf(u,v) int u,v; { int a,b,t,r; if(u>v) {
t=u; u=v; v=t; } a=u; b=v; while((r=b%a)!=0) {
b=a; a=r;
} return(a); } lcd(u,v,h) int u,v,h; { return(u*v/h); } main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); } 这是一个十分典型的算法,同学们一定要认真分析、学习。 例 3 用牛顿迭代法求根。方程为 ax3+bx2+cx+d=0,系数 a、b、c、d 由主函 数输入。求 x 在 1 附近的一个实根。求出根后,由主函数输出。(用函数方法实 现)。 源程序如下: /*牛顿迭代法解方程*/ #include “math.h” float solut(a,b,c,d) float a,b,c,d; { float x=1,x0,f,f1; do {
} 在此题目中,方程的系数是未知的,这是与以前我们用牛顿迭代法的时候不 同的地方。但原理、算法是相同的,这里我们用函数来求方程的根。也就是把牛 顿迭代法用函数的形式表现出来。 【作业】 1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 main() {
int x,y; printf("%d\n",sum(x+y)); int sum(a,b); {
int a,b; return(a+b); } } 2.定义一个函数,功能是计算 n 个学生的成绩中,高于平均成绩的人数, 并作为函数值。用主函数来调用它,统计 50 个学生成绩中,高于平均成绩的有 多少人? 3.编写一个对 n 个数据从大到小的排序 C 函数,再编写一个计算最后得分 的 C 函数,计算方法是:去除一个最高分,去除一个最低分,其余的平均分为 参赛选手的最后得分。并在主函数中调用它们对有 n 个评委评分,m 个选手参赛 的x0+b)*x0+c)*x0+d; f1=(3*a*x0+2*b)*x0+c; x=x0-f/f1; }while(fabs(x-x0)>=1e-5); return(x); } main()
{ float a,b,c,d; printf(“\n 输入方程的系数 a,b,c,d\n”); scanf(“%f,%f,%f,%f”,&a,&b,&c,&d); printf(“\n 方程是:%5.2fx^3+%5.2fx^2+%5.2fx+%5.2f=0”,a,b,c,d); printf(“\nX=%10.7f\n”,solut(a,b,c,d));
相关文档
最新文档