实验七 过程与函数
- 格式:doc
- 大小:338.50 KB
- 文档页数:3
一、实验目的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. 函数的运算通过练习,我们熟练掌握了函数的加法、减法、乘法、除法、复合等基本运算。
实验六 吸收实验(一)丙酮填料吸收塔的操作及吸收传质系数的测定一、实验目的1、了解填料吸收塔的结构和流程;2、了解吸收剂进口条件的变化对吸收操作结果的影响;3、掌握吸收总传质系数Kya 的测定方法。
二、实验内容1、测定吸收剂用量与气体进出口浓度y 1、y 2的关系;2、测定气体流量与气体进出口浓度y 1、y 2的关系;3、测定吸收剂及气体温度与气体进出口浓度y 1、y 2的关系; 三、实验原理吸收是分离混合气体时利用混合气体中某组分在吸收剂中的溶解度不同而达到分离的一种方法。
不同的组分在不同的吸收剂、吸收温度、液气比及吸收剂进口浓度下,其吸收速率是不同的。
所选用的吸收剂对某组分具有选择性吸收。
1、吸收总传质系数K y a 的测定传质速率式: N A =K y a ·V 填·△Ym (1)物料衡算式: G 空(Y 1-Y 2)=L(X 1-X 2) (2) 相平衡式: Y=mX (3)(1)和(2)式联立得: K y a=12()mG Y Y V Y -∆空填 (4)由于实验物系是清水吸收丙酮,惰性气体为空气,气体进口中丙酮浓度y 1>10%,属于高浓度气体吸收,所以: Y 1=111y y - ; Y 2= 221y y - ;G 空—空气的流量(由装有测空气的流量计测定),Kmol/m 2·h ;V 填—与塔结构和填料层高度有关; 其中:22112211ln)()(mX Y mX Y mX Y mX Y Y m -----=∆ (5)02=X ; )(211Y Y LGX -=空 ;L —吸收剂的流量(由装有测吸收剂的流量计测定), Kmol/m 2·h ; m---相平衡常数(由吸收剂进塔与出塔处装的温度计所测温度确定),吸收温度:附:流量计校正公式为:2出进t t t +=G G =, L/h (G N 为空气转子流量计读数) 单位变换:G A =空,Kmol/m 2·h ;(其中,A 为塔横截面积,PG n RT=)o L L M A=,Kmol/m 2·h ;(其中,L 0是水流量l/h ,M 0是水的摩尔质量)2、吸收塔的操作吸收操作的目标函数:y 2 或 η=影响y 2 有:1).设备因素;2).操作因素。
实验训练5:存储过程与函数的构建与使用一、存储过程与函数的概念存储过程和函数都是数据库中的可执行代码,可以被多次调用和重复使用。
存储过程是一组预定义的SQL语句集合,可以在数据库中定义和存储。
而函数是一个独立的代码块,它接收输入参数并返回一个值。
二、存储过程的构建与使用1. 创建存储过程在MySQL中,创建存储过程需要使用CREATE PROCEDURE语句。
例如:CREATE PROCEDURE myproc()BEGINSELECT * FROM mytable;END;这个例子创建了一个名为myproc的存储过程,它会查询mytable表中的所有数据。
2. 调用存储过程使用CALL语句可以调用已经创建好的存储过程。
例如:CALL myproc();这个语句会执行myproc存储过程中定义的SQL语句。
3. 存储过程参数我们可以给存储过程添加参数来使其更加灵活。
例如:CREATE PROCEDURE myproc(IN p1 INT, IN p2 VARCHAR(50)) BEGINSELECT * FROM mytable WHERE column1 = p1 AND column2 = p2;END;这个例子创建了一个带有两个输入参数p1和p2的存储过程,它会查询mytable表中column1等于p1并且column2等于p2的数据。
4. 存储过程变量除了参数之外,存储过程还可以使用变量来存储中间结果。
例如:CREATE PROCEDURE myproc(IN p1 INT)BEGINDECLARE v1 INT;SET v1 = p1 * 2;SELECT * FROM mytable WHERE column1 = v1;END;这个例子创建了一个带有一个输入参数p1和一个变量v1的存储过程,它会将p1乘以2并将结果存储在v1变量中,然后查询mytable表中column1等于v1的数据。
程序设计基础(一)实验实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:*************************Very Good*************************2、计算两个整数的和与积。
3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:实验二简单的C程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
2、输入华氏温度h,输出摄氏温度c。
3、从键盘输入一个3位整数,将输出该数的逆序数。
4、输入并运行以下程序,分析运行结果。
#include <stdio.h>void main( ){ int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}5、输入三角形三条边的边长,求三角形的面积。
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
一、实验目的1. 理解函数的定义和调用过程。
2. 掌握函数参数的传递方式。
3. 学习如何使用函数实现代码的模块化。
4. 提高编程能力和逻辑思维能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容本次实验主要围绕函数的定义、调用和参数传递展开,具体实验内容包括:1. 定义和调用函数2. 函数参数的传递3. 递归函数的应用四、实验步骤1. 定义和调用函数(1)编写一个简单的函数,用于计算两个数的和。
```pythondef sum_of_two_numbers(a, b):return a + b# 调用函数result = sum_of_two_numbers(3, 5)print("The sum of two numbers is:", result)```(2)编写一个函数,用于计算一个数的阶乘。
```pythondef factorial(n):if n == 0:return 1else:return n factorial(n - 1)# 调用函数result = factorial(5)print("The factorial of 5 is:", result)```2. 函数参数的传递(1)使用默认参数传递函数。
```pythondef print_message(message="Hello, world!"): print(message)# 调用函数print_message()print_message("This is a custom message.") ```(2)使用可变参数传递函数。
```pythondef print_numbers(args):for num in args:print(num)# 调用函数print_numbers(1, 2, 3, 4, 5)```3. 递归函数的应用编写一个递归函数,用于计算斐波那契数列的前n项。
操作系统实验报告七一、实验目的1、死锁如何发生,如何在我们的内核中引发死锁。
2、针对情况解决我们程序的死锁,以及了解更科学的死锁解决方式。
二、实验过程(一)死锁的出现首先编辑src/main.rs,在not_main()函数的空循环中调用print!宏:1、loop{}中print!宏与handle_uart0_rx_irq()中print!宏竞争检查src/interrupts.rs中的handle_uart0_rx_irq()函数,可以看到我们之前写了一个输入中断回调函数,在函数中调用了print!宏输出信息。
直接编译并运行,预期在输入时触发死锁。
不停地乱序敲击键盘,此时有概率出现卡死,按键无法再次输入内容,即触发死锁现象。
2、loop{}中print!宏与handle_timer_irq()中print!宏竞争检查src/interrupts.rs中的handle_timer_irq()函数,可以看到我们之前写了一个时间中断回调函数,在函数中调用了print!宏打点。
但它之前被我们注释掉了,因此我们取消注释:然后我们编译并运行,预期在打第一个点时会触发死锁。
(二)死锁的简单处理为了防止出现死锁,一个简单的办法是在使用锁时禁止中断。
但需要注意的是禁用中断会增加中断响应延迟,而中断响应延迟一个非常重要的性能指标。
所以只能在短时间内禁用中断。
1、编辑src/uart_console/mod.rs,引入asm!宏。
2、编辑src/uart_console/mod.rs中的_print()函数,在处理输入时先关闭中断,再打开。
三、测试及分析两种情况下,死锁均已消失四、心得体会在单进程系统中,死锁更多的发生于进程对某一资源的竞争现象。
例如我们在实验中中断等输出函数对uart硬件资源争夺。
而多进程中的死锁更多的发生于两个不同进程发生了相互调用或资源竞争,互相等待对方结束进程的情况。
这时候我们称系统产生了死锁或系统处于死锁状态。
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.求100-200间所有素数。
7.输出三角形的九九乘法口诀表。
8.打印水仙花数。
水仙花数是指一个3位数,其各位数字立方和等于该数本身。
深圳大学实验报告课程名称:程序设计基础实验项目名称:函数应用学院:计算机与软件学院专业:指导教师:朱映映报告人:文成学号:2011150259 班级: 5 实验时间:2011-12-12实验报告提交时间:2011-12-25教务处制一、实验目的与要求:实验目的:1.掌握自定义函数的一般结构及定义函数的方法。
2.掌握形参、实参、函数原型等重要概念。
3.掌握函数声明、函数调用的一般方法。
4.掌握递归函数的设计方法。
实验要求:1.输入数据、输出数据应加以说明(交互性);2.程序应注意使用注释语句(可读性);3.对各种可能的输入情况都要考虑处理方案(健壮性);4.养成好的编程风格;5.在Webcc上提交C++源程序或执行文件、输出界面拷屏实验报告。
6.按报告内容要求完成实验报告。
二、实验环境:地点:D506硬件环境:奔四机器编号:软件环境:操作系统WINDOS XPC++语言环境VC 6.0project类型:WIN32 Console Application三、实验内容:1.设计1个递归函数求斐波那契数列的前n项。
斐波那契数列的第1项和第2项的值都为1,以后各项的值为其前两项值之和。
2.设计求完全平方数的函数,其功能是:在3位整数(100—999)中寻找既是完全平方数(某个数的平方),又有两位数字相同的整数,例如144,676等,并依次从小到大存入数组b中,满足该条件的整数个数通过所设计的函数返回。
3.5个学生,4门课,要求主函数分别调用各函数实现:(1)找出成绩最高的学生序号和课程。
(2)找出不及格课程的学生序号及其各门课的全部成绩。
(3)求全部学生各门课程的平均分数,并输出。
4.设计菜单程序,可将所做的习题和上述实验集中在一个程序中。
例如,运行后首先在屏幕显示如下菜单,当输入数值1后,调用素数判断的函数程序;输入数值2后,调用完全平方数的函数程序;输入数值3后,调用求最大公约数的函数程序;输入数值4后,调用Fibonacci数列的递归函数程序;输入数值5后结束程序。
数值分析课程设计实验七一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握数值分析的基本原理和方法,了解相关数学背景知识。
技能目标则要求学生能够运用数值分析方法解决实际问题,提高解决问题的能力。
情感态度价值观目标则是培养学生的科学精神、创新意识和团队合作能力。
通过本课程的学习,学生将能够:1.掌握数值分析的基本原理和方法,如插值法、逼近法、数值微积分、线性代数的数值方法等。
2.了解相关数学背景知识,如函数、极限、微积分、线性代数等。
3.运用数值分析方法解决实际问题,如数值求解微分方程、线性方程组等。
4.培养科学精神、创新意识和团队合作能力。
二、教学内容本课程的教学内容主要包括数值分析的基本原理、方法和应用。
具体安排如下:1.第一章:数值分析导论。
介绍数值分析的基本概念、误差、稳定性等基本原理。
2.第二章:插值法。
包括一元插值、多元插值、样条插值等方法。
3.第三章:逼近法。
包括最小二乘法、最佳逼近等方法。
4.第四章:数值微积分。
包括数值积分、数值微分等方法。
5.第五章:线性代数的数值方法。
包括线性方程组的求解、特征值问题的求解等。
6.第六章:非线性方程和方程组的求解。
包括迭代法、牛顿法、弦截法等。
7.第七章:常微分方程的数值解法。
包括初值问题的求解、边界值问题的求解等。
三、教学方法本课程的教学方法主要包括讲授法、讨论法、案例分析法和实验法。
1.讲授法:通过教师的讲解,使学生掌握数值分析的基本原理和方法。
2.讨论法:引导学生进行思考和讨论,提高学生的理解能力和解决问题的能力。
3.案例分析法:通过分析实际案例,使学生了解数值分析方法在工程和科研中的应用。
4.实验法:通过上机实验,让学生亲手操作,加深对数值分析方法的理解和掌握。
四、教学资源本课程的教学资源主要包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《数值分析》作为主要教材,辅助以相关参考书。
2.参考书:为学生提供丰富的学习资料,以便深入理解和掌握数值分析的知识。
C语言程序设计实验报告(实验名称:函数)1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。
2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。
要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。
如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。
例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。
3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121 运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
C语⾔实验报告上机要求:禁⽌玩游戏、看视频及从事与课程⽆关的活动。
实验内容按照指导书内容填写,可以把⾃⼰上机编写的程序、遇到的问题、解决办法写上(得到⾼分的条件)。
在有输⼊输出的程序部分,应该写上输⼊输出的结果,以表⽰程序能正确⼯作。
实验⼀编程环境的使⽤⼀、⽬的和要求1.了解编程环境的使⽤。
2.学会处理简单的错误,观察运⾏结果。
3.掌握基本的输⼊输出。
⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。
编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。
三、实验内容及步骤1.编程环境的使⽤。
(1)打开VisualC++6.0开发环境。
(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。
在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。
(3)添加C++源⽂件,输⼊⽂件名。
(4)打开编辑窗⼝,输⼊程序,保存。
(5)编译运⾏程序,找到其错误位置,改正错误。
2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。
3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。
四、思考问题1.如何使⽤不同的数据类型。
2.如何处理输⼊输出。
3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。
2. 掌握switch 的⽤法。
⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。
if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。
【关键字】实验实验七连续时间系统S域零极点分析一、目的(1)掌握连续系统零极点分布与系统稳定性关系(2)掌握零极点分布与系统冲激响应时域特性之间的关系(3)掌握利用MATLAB进行S域分析的方法二、零极点分布与系统稳定性根据系统函数的零极点分布来分析连续系统的稳定性是零极点分析的重要应用之一。
稳定性是系统固有的性质,与激励信号无关,由于系统函数包含了系统的所有固有特性,显然它也能反映出系统是否稳定。
对任意有界信号,若系统产生的零状态响应也是有界的,则称该系统为稳定系统,否则,则称为不稳定系统。
上述稳定性的定义可以等效为下列条件:●时域条件:连续系统稳定充要条件为,即冲激响应绝对可积;●复频域条件:连续系统稳定的充要条件为系统函数的所有极点位于S平面的左半平面。
系统稳定的时域条件和频域条件是等价的。
因此,只要考察系统函数的极点分布,就可判断系统的稳定性。
对于三阶以下的低阶系统,可以利用求根公式方便地求出极点位置,从而判断系统稳定性,但对于告阶系统,手工求解极点位置则显得非常困难。
这时可利用MATLAB来实现这一过程。
例7-1:已知某连续系统的系统函数为:试用MATLAB求出该系统的零极点,画出零极点图,并判断系统是否稳定。
解:调用实验六介绍的绘制连续系统零极点图函数sjdt即可解决此问题,对应的MATLAB命令为:a=[8 2 3 1 5];b=[1 3 2];[p,q]=sjdt(a,b)运行结果为:p =-0.6155 - 0.6674i -0.6155 + 0.6674i 0.4905 - 0.7196i 0.4905 + 0.7196iq =-2 -1绘制的零极点图如图7-1所示。
由程序运行结果可以看出,该系统在S平面的右半平面有一对共轭极点,故该系统是一个不稳定系统。
三、零极点分布与系统冲激响应时域特性设连续系统的系统函数为,冲激响应为,则显然,必然包含了的本质特性。
对于集中参数的LTI连续系统,其系统函数可表示为关于s的两个多项式之比,即(7-1)其中为的M个零点,为的N个极点。
实验七——无约束优化化工系分7陈龙2007011832『实验目的』1.掌握用MATLAB 优化工具箱的基本用法,对不同算法进行初步分析、比较。
2.练习用无约束优化方法建立和求解实际问题模型(包括非线性最小二乘拟合)。
『实验内容』-------------------------------------------------------------------------------------------------------一、问题2.(2):取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、步长搜索、数值梯度与分析梯度等)的结果进行分析、比较。
)32(min 222121x x e z x x +=--。
【问题分析】对于该函数,显然有0≥z ,当且仅当021==x x 时,z=0。
另外,运用分析方法也可以得到极值点的必要条件:04)32(1222112121=++-=∂∂----x e x x e x z x x x x 06)32(2222122121=++-=∂∂----x e x x e x z x x x x 得到方程组的解为08.0,2.12121====x x x x 或,这为之后的分析提供方便。
用MATLAB 绘出该函数的三维图形和等高线图,以获得直观认识:(程序如下)———————————————————————————————————————[x1,x2]=meshgrid(-2:0.1:2,-2:0.1:2);%产生二维数组集合z=exp(1).^(-x1-x2).*(2*x1.^2+3*x2.^2);mesh(x1,x2,z)%画三维网格图pause;contour(x1,x2,z,20)%画等高线图———————————————————————————————————————得到的图形如下所示,可以看出,图形好比平铺在地面上的一块方巾,其中一个角被高高拎起。
C程序设计实验教案一、实验目的1. 掌握C程序的基本结构。
2. 学会使用C语言编写简单的输入输出程序。
3. 熟悉集成开发环境(如Visual Studio、Code::Blocks等)的使用。
二、实验内容1. C程序的基本结构(1)编写一个简单的C程序,输出“Hello, World!”。
(2)理解主函数、变量声明、函数体等基本概念。
2. 输入输出语句(1)使用scanf()函数输入用户输入的数字,并输出该数字的平方。
(2)使用printf()函数输出学生的姓名、成绩和等级。
三、实验步骤1. 打开集成开发环境,创建一个新的C项目。
2. 在主函数中编写输出“Hello, World!”的代码。
3. 编写输入用户输入的数字,并输出该数字的平方的代码。
4. 编写输出学生姓名、成绩和等级的代码。
5. 保存并运行程序,观察输出结果。
四、实验要求1. 每位同学独立完成实验,不抄袭他人代码。
2. 实验过程中,遇到问题要积极思考,可以请教同学或老师。
3. 实验完成后,对照实验目的,检查自己是否达到了预期目标。
五、实验评价1. 代码是否规范、可读性强。
2. 是否能熟练使用C语言的基本语法。
3. 是否能正确使用输入输出语句。
4. 是否能独立完成实验,解决问题。
六、实验六:控制流程(条件判断与循环)1. 实验目的理解C语言中的条件判断语句(if-else)。
掌握C语言中的循环结构(while、do-while)。
2. 实验内容编写程序实现成绩判断,根据分数输出等级(优秀、良好、及格、不及格)。
编写程序计算从1加到指定数字的和。
3. 实验步骤创建新项目,编写判断成绩的程序。
编写一个循环,用于输入分数,并判断等级。
编写另一个循环,用于计算1到指定数字的和。
运行程序,验证结果。
4. 实验要求代码应包含清晰的逻辑判断和循环控制。
要求程序能够处理用户输入的无效数据。
5. 实验评价判断语句和循环结构的正确使用。
程序对于不同输入的适应性和鲁棒性。
实验七过程与函数
一、实验目的
1.掌握PL/SQL的存储过程
2.熟悉PL/SQL的函数的编写
二、实验环境
一台PC机,安装widows xp操作系统,oracle 10g或11g数据库软件。
三、实验内容
1 写存储过程,显示所指定雇员名所在的部门名和位置。
2 定义一个为修改职工表(emp)中某职工工资的存储过程子程序,职工名作为形参,若该职工名在职工表中查找不到,就在屏幕上提示“查无此人”然后结束子程序的执行;否则若工种为MANAGER的,则工资加$1000;工种为SALESMAN,工资加$500;工种为ANALYST,工资加$200,否则工资加$100。
3 定义一个函数子程序,根据输入的职工号计算该职工的年收入总额。
4 编写一个函数以检查所指定雇员的薪水是否有效范围内。
不同职位的薪水范围为:
Designation Raise
Clerk 1500-2500
Salesman 2501-3500
Analyst 3501-4500
Others 4501 and above.
如果薪水在此范围内,则显示消息"Salary is OK",否则,更新薪水为该范围内的最低值。