实验六 函数(1)

合集下载

matlab实验六

matlab实验六

实验六M-文件结构与编写、函数文件格式、编写与调用、程序结构与流程控制一、实验目的:Matlab文件类型及其编写、程序结构、流程控制认识二、实验原理:1、建立M文件将多个可执行的系统命令,用文本编辑器编辑后并存放在后缀为 .m 的文件中,若在MATLAB命令窗口中输入该m-文件的文件名(不跟后缀.m!),即可依次执行该文件中的多个命令。

这个后缀为.m的文件,也称为Matlab的命令文件(Script File)。

注意:文件存放路径必须在Matlab能搜索的范围内。

2、建立函数文件对于一些特殊用户函数,系统提供了一个用于创建用户函数的命令function,以备用户随时调用。

(1).格式:function [输出变量列表]=fun_name(输入变量列表)用户自定义的函数体(2).函数文件名为:fun_name,注意:保存时文件名与函数名最好相同;(3).存储路径:最好在系统的搜索路径上。

(4). 调用方法:输出参量=fun_name (输入变量)例1:计算s = n!,在文本编辑器中输入:function s=pp(n);s=1;for i=1:ns=s*i;ends;在MATLAB命令窗口中输入:s=pp(5)结果为s = 1202、无条件循环当需要无条件重复执行某些命令时,可以使用for循环:for 循环变量t=表达式1 : 达式2 : 表达式3语句体end说明:表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。

例2:如:矩阵输入程序m=input('矩阵行数:m=');n=input('矩阵列数:n=');for i=1:mfor j=1:ndisp(['输入第',num2str(i),'行,第', num2str(j),'列元素'])A(i, j) = input ('')endend生成3×4阶的Hiltber矩阵。

matlab实验六报告

matlab实验六报告

实验六MATLAB数据可视化实验者:祝松年级:机设092 学号:09405701002一、实验目的掌握 MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。

二、实验内容(1) 二维图形绘制。

(2) 三维曲线和三维曲面绘制。

(3) 图像文件的读取和显示。

三、实验步骤1 .二维图形绘制(1) 二维图形绘制主要使用函数 plot 。

>>clear all;>> x=linspace(0,2*pi,100);>> y1=sin(x);>> plot(x,y)>> hold on % 保持原有的图形>> y2=cos(x)>> plot(x,y)注: hold on 用于保持图形窗口中原有的图形, hold off 解除保持。

(2) 函数 plot 的参数也可以是矩阵。

>>close all % 关闭所有图形窗口>>x=linspace(0,2*pi,100);>> y1=sin(x);>> y2=cos(x);>> A=[y1 ; y2]'; % 把矩阵转置>> B=[x ; x]'>> plot(B,A)(3) 选用绘图线形和颜色。

>> close all % 关闭所有图形窗口>> plot(x,y1,'g+',x,y2, 'r:')>> grid on % 添加网格线(4) 添加文字标注。

>> title(' 正弦曲线和余弦曲线 ')>> ylabel(' 幅度 ')>> xlabel(' 时间 ')>> legend('sin(x)', 'cos(x)')>> gtext('\leftarrowsinx') % 可用鼠标选择标注的位置,%\leftarrow 产生左箭头,‘\’为转义符(5) 修改坐标轴范围。

06实验六 Leaky ReLU激活函数

06实验六 Leaky ReLU激活函数

06实验六Leaky ReLUs激活函数周常欣2019-9-1ReLU简介ReLU函数代表的的是“修正线性单元”,它是带有卷积图像的输入x的最大函数(x,o)。

ReLU函数将矩阵x内所有负值都设为零,其余的值不变。

ReLU函数的计算是在卷积之后进行的,因此它与tanh函数和sigmoid函数一样,同属于“非线性激活函数”。

这一内容是由Geoff Hinton首次提出的。

ReLU 的缺点训练的时候很”脆弱”,很容易就”死(die)”了。

例如,一个非常大的梯度流过一个ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是0。

如果学习率(learning rate) 很大,那么很有可能网络中的40% 的神经元都”dead”了。

为了解决Relu函数这个缺点,在Relu函数的负半区间引入一个泄露(Leaky)值,所以称为Leaky Relu函数,如下图所示:Leaky ReLU简介ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。

Leaky ReLU激活函数是在声学模型(2013)中首次提出的。

以数学的方式我们可以表示为:a i是(1,+∞)区间内的固定参数。

带泄露修正线性单元(Leaky ReLU)函数是经典(以及广泛使用的)的ReLu激活函数的变体,该函数输出对负值输入有很小的坡度。

由于导数总是不为零,这能减少静默神经元的出现,允许基于梯度的学习(虽然会很慢),解决了Relu函数进入负区间后,导致神经元不学习的问题。

吴恩达(Andrew Ng)说:1、Leaky ReLU函数比ReLU函数效果好,但实际中Leaky ReLU并没有ReLU用的多。

2、除了输出层是一个二元分类问题外,基本不用Sigmoid函数3、Relu是最常用的默认激活函数,若不确定用哪个激活函数,就使用Relu或者Leaky Relu。

leaky_relu.m%########################################################################## function result = leaky_relu(x, leak)if (nargin < 2)leak = 0.2;%a i=5endresult = x;result(x<0) = result(x<0) * leak;end%##########################################################################main.m%######################################################################## clc;clear;x=linspace(-10.0,10.0);y=leaky_relu(x);plot(x,y);fontSize=10;title('leaky relu函数','FontSize',fontSize)xlabel('x','FontSize',fontSize)ylabel('leaky relu(x)','FontSize',fontSize)grid on%######################################################################## 调试:。

《C语言与程序设计》实验06---函数

《C语言与程序设计》实验06---函数

实验六函数一、实验目的1. 熟练掌握函数的定义、函数的类型和返回值。

2. 熟练掌握形式参数与实际参数、参数值的传递。

3. 掌握函数的嵌套调用与递归调用。

4.学会使用指向函数的指针变量。

5.了解指向指针的指针的概念及带参数的main函数。

6. 掌握局部变量和全局变量。

7. 掌握变量的存储类型。

8. 了解内部函数和外部函数。

二、实验学时:8课时三、预习知识1.标准库函数标准库函数是C系统提供的,这些库函数定义了一些基本的、常用的功能,用户可以使用这些库函数,但是在使用库函数之前需要用预编译命令# include将该库函数所在的头文件包含进来。

2.自定义函数定义函数一般有两种形式形式1:存储类型类型符函数名(类型符形参1,类型符形参2 ,… ) { 说明语句执行语句}形式2:存储类型类型符函数名(形参1,形参2 ,……)形参类型说明{ 说明语句执行语句}说明:①形参表中即使没有参数,函数名后的一对圆括号也不能省略。

②函数名前的类型符是用来说明函数返回值的数据类型(也作为函数的数据类型) 。

当函数值为整型时,类型符可以省略。

③当函数只完成某一特定操作不需要返回值时,可用类型标识符 void 说明,将函数定义成空类型。

④C 规定:不允许在一个函数内部再定义另外一个函数,即函数不允许嵌套定义。

⑤函数的存储类型:函数的存储类型有 extern 和 static 两种。

extern 型的函数除了可以被本程序中其它函数调用外,还可以被其它文件中的函数调用,这种函数称为外部函数,如果定义函数时省略 extern ,则隐含为外部函数。

static 型的函数只能被本源程序文件中的函数调用,称为内部函数(静态函数)。

3.函数的参数(1)在定义函数时函数名后面括号中的变量称为形参(形式参数),如果有两个以上形参,形参之间以逗号分隔。

形参是函数的内部变量,只在函数内部才有意义。

在未出现函数调用时,形参不占内存。

对每个形参必须指明其名字和数据类型。

C语言上机实验1-18

C语言上机实验1-18

实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。

2.了解在该系统上如何编辑、编译、连接和运行一个C程序。

3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。

参考公式V=4/3πr3.。

2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。

运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。

2.掌握格式输入/输出函数的用法。

3.学会简单顺序程序的设计。

4.养成良好的程序设计习惯。

二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。

Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。

Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。

二、实验内容1.编写一个程序,确定一个数的位数。

Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。

提示:利用if语句进行数的判定。

例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。

[VIP专享]C程序设计实验题目(上)

[VIP专享]C程序设计实验题目(上)

实验一 简单的C/C++程序练习1.编程序求某位学生的平均分。

要求输入该生4门课的成绩,程序即可输出其平均分。

运行结果示例:练习2.编程序求半径为r 、高为h 的圆柱体的体积。

要求输入r 和h 的值,程序即可输出体积。

要求:将π值定义为符号常量,例如:# define PI 3.14运行结果示例:练习3.编写程序,求函数 的值。

要求输入x ,程序即可输40cos 2)3lg(2⨯++=πx y 出y 的值。

要求:将π值定义为符号常量,例如:# define PI 3.14运行结果示例:练习4.输入一字符,编程序判断输入字符的种类(字母、数字、其它)。

要求:利用if 条件语句编程。

运行结果示例:*练习5.编写程序,输入一个3位整数,依次输出该数的正(负)号和百位、十位、个位数字。

运行结果示例:实验二 顺序与分支程序设计练习1.编写程序,求函数 的值。

要求输入x ,程序即可输出︒⨯++=30sin 53x e x y πy 的值。

要求:将π值定义为符号常量,例如:# define PI 3.14159运行结果示例:练习2.编写程序,实现下列分段函数的求值:| x |x<5y = 3x2-2x+15≤x<20x /5x≥20要求:利用if条件语句(嵌套)编程。

练习3.编写程序,将输入的3个整数按降序输出。

运行结果示例:要求:利用条件表达式进行判别。

练习4.编写程序,输入上网的时间计算上网费用,计算的方法如下:25元<10小时费用= 每小时2.5元10~50小时每小时2元≥50小时同时,为了鼓励多上网,每月收费最多不超过130元。

要求:使用switch语句编程。

*练习5.编写程序,能够计算两个数的+、-、*、/ 的简易计算器。

提示:利用switch条件语句编程。

运行结果示例:实验三循环程序设计一.实验目的1.掌握各种循环语句的程序设计。

三.实验内容练习1.输出50-100之间所有奇数的累加和。

信号系统实验六

信号系统实验六

实 验 报 告 学 院:信息工程系 别:电子信息工程 课程名称:信号与系统 姓 名:xxx 学 号:0000011 日 期:111111实验名称:实验6 连续时间系统的频域特性分析一、实验目的(1) 掌握连续时间系统频域分析的基本方法。

(2) 掌握利用freqs 函数求解连续时间系统频率响应的方法。

(3) 掌握连续周期信号通过系统响应的频域分析方法。

(4) 熟悉无失真传输系统及抽样定理的基本原理。

二、主要函数简介信号)(1t f 和)(2t f 如下图所示。

(1)取25.0:05.0:0=t ,计算 )50cos()()()(21t t f t f t f +=的值并画出波形图。

(2)有一可实现的实际系统的)(ωj H 为:432234410)(106131.2)(104142.3)(131.26)(10)(+⨯+⨯++=ωωωωωj j j j j H 用freqs 画出)(ωj H 的幅度响应和相位响应曲线。

(3)用lsim 函数求出信号)(t f 和)50cos()(t t f 通过系统的响应)(1t y 和)(2t y ,并根据理论知识解释所得的结果。

三、实验程序(1)取25.0:05.0:0=t ,计算)50cos()()()(21t t f t f t f +=的值并画出波形图。

t=0:0.05:0.25;f1=1;f2=t;f=f1+f2.*cos(50*t);plot(t,f);xlabel('时间(t)');ylabel('幅值f(t)');title('连续信号的和');(2)432234410)(106131.2)(104142.3)(131.26)(10)(+⨯+⨯++=ωωωωωj j j j j H 用freqs 画出)(ωj H 的幅度响应和相位响应曲线。

w=linspace(0,5,200);b=[10^4];a=[1 26.131 3.4142*10^2 2.6131*10^3 10^4];H=freqs(b,a,w);subplot(2,1,1);plot(w,abs(H));set(gca,'xtick',[0 1 2 3 4 5]);set(gca,'ytick',[0 0.4 0.707 1]);grid;xlabel('\omega');ylabel('|H(j\omega)|');subplot(2,1,2);plot(w,angle(H));set(gca,'xtick',[0 1 2,3 4 5]);set(gca,'ytick',[-4 -2 0 2 4]);grid;xlabel('\omega');ylabel('\phi(\omega)');(3)用lsim 函数求出信号)(t f 和)50cos()(t t f 通过系统的响应)(1t y 和)(2t y ,四、实验小结连续LTI 系统的频率特性又称频率响应特性,是指系统在正弦信号激励下稳态响应随激励信号频率的 变化而变化的情况,又称系统函数)(ωj H 频率特性不仅可用函数表达式表示,还可用随频率f(或 ω)变化曲线来描述,当频率特性曲线采用对数坐标描述时,又称为波特图。

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。

形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。

请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。

MATLAB实验

MATLAB实验

MATLAB 实验报告班级:14通信1班 学号:201424124124 姓名:林启铭实验一 MATLAB 运算基础(一)一、实验目的1、掌握建立矩阵的方法。

2、掌握MATLAB 各种表达式的书写规则以及各种运算方法。

二、实验内容1、求下列表达式的值。

(1)20185sin 21ez += MATLAB 代码:z1=2*sin(85*pi/180)/(1+exp(2))%将角度化为弧度z1 =0.2375(2)()x x z ++=1ln 212,其中⎢⎣⎡-=45.02x ⎥⎦⎤+521i (可以分别对矩阵和元素群运算)MATLAB 代码:>> x=[2,1+2i;-0.45,5]x =2.0000 + 0.0000i 1.0000 + 2.0000i-0.4500 + 0.0000i 5.0000 + 0.0000i>> z2=1/2*log(x+sqrt(1+x))z2 =0.6585 + 0.0000i 0.6509 + 0.4013i-0.6162 + 0.0000i 1.0041 + 0.0000i(3)()3.0sin 232.03.0+⋅-=a e e z aa , 0.3,9.2,8.2,...,8.2,9.2,0.3---=a (结果请用图形表示)(提示:利用冒号表达式生成a 向量;求各点的函数值时用点乘运算)MATLAB 代码:>> a=-3.0:0.1:3.0;%利用冒号表达式生成a 向量,加分号结尾避免大量数据刷屏 >> z3=(exp(0.3.*a)-exp(0.2.*a)).*sin(a+0.3)/2;>> plot(a,z3);%绘制出以a 为自变量,z3为因变量的曲线>>曲线图:2、已知⎢⎢⎢⎣⎡=33412A 65734⎥⎥⎥⎦⎤-7874 和 ⎢⎢⎢⎣⎡=321B 203-⎥⎥⎥⎦⎤-731 求下列表达式的值:(1)A+6*B 和A-B+I (其中I 为单位矩阵)。

操作系统实验六

操作系统实验六

实验六时间片轮转调度一、实验目的·调试EOS 的线程调度程序,熟悉基于优先级的抢先式调度。

·为EOS 添加时间片轮转调度,了解其它常用的调度算法。

二、实验内容1、执行了实验指导书3.2的步骤,学习了“rr”命令是如何测试时间片轮转调度的。

算法实现原理是,按进程到达顺序(FCFS 原则)将进程依次加入就绪队列当中,然后将CPU 分配给位于队首的进程,确定一个时间片,让该进程执行一个时间片。

当该进程执行时间到时,该进程可能已经执行完毕(可能在时间片未到时就以及执行完毕),或者未执行完毕,如果是前者只需将进程弹出队列即可,如果是后者则将该进程加入队尾,并将CPU 分配给新的队首进程,如此循环。

在没有时间片轮转调度时的执行结果如下图所示。

2、执行了实验指导书3.3的步骤,对EOS 的线程调度程序PspSelectNextThread 函数进行调试,学习了就绪队列、就绪位图以及线程的优先级是如何在线程调度程序中协同工作的。

调试当前线程不被抢先的情况:基于优先级的抢先式调度算法,新建的第0 个线程会一直运行,而不会被其它同优先级的新建线程或者低优先级的线程抢先。

通过调试可以观察到“rr”命令新建的第0 个线程始终处于运行状态,而不会被其它具有相同优先级的线程抢先。

对在EOS 内核中实现这种调度算法进行调试,刷新“就绪线程队列”窗口,观察到如下图结果。

在“监视”窗口中添加表达式“/t PspReadyBitmap”,以二进制格式查看就绪位图变量的值,此时就绪位图的值为100000001,表示优先级为8 和0 的两个就绪队列中存在就绪线程。

在“快速监视”对话框的“表达式”中输入表达式“*PspCurrentThread”,查看当前正在运行的线程(即被中断的线程)的线程控制块中各个域的值。

通过以上调试线程调度函数PspSelectNextThread 的执行过程,“rr”命令新建的第0个线程在执行线程调度时没有被抢先的原因可以归纳为两点:(1) 第0个线程仍然处于“运行”状态;(2) 没有比其优先级更高的处于就绪状态的线程。

C语言程序设计实验六函数答案《西北民大电气学院》

C语言程序设计实验六函数答案《西北民大电气学院》

实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。

c语言知识点实验总结

c语言知识点实验总结

c语言知识点实验总结(一)实验目的C语言作为一种通用的高级程序设计语言,被广泛用于系统软件、应用软件、驱动程序、网络通信以及嵌入式系统的开发。

本次实验旨在通过对C语言知识点的实际操作,巩固学生对C语言编程基础知识的掌握,提高学生对C语言程序设计的理解和运用能力,培养学生的程序设计思维和编程实践经验。

(二)实验内容本次实验涉及的C语言知识点包括数据类型、控制语句、循环语句、数组、指针、函数等基本概念和用法。

通过实验,学生将学会如何定义变量、赋值、输入输出、运算、条件判断、循环控制、数组访问、指针使用、函数调用等基本的C语言编程操作。

具体实验内容如下:1. 数据类型:学生需了解C语言的基本数据类型(int、float、char等),并能够正确地声明和初始化各种数据类型的变量。

2. 控制语句:学生需掌握if-else语句和switch-case语句的用法,并能够正确地使用这些控制语句来实现条件判断和分支选择的功能。

3. 循环语句:学生需掌握for循环、while循环和do-while循环的用法,并能够正确地使用这些循环语句来实现重复执行的功能。

4. 数组:学生需了解一维数组和多维数组的定义和使用方法,并能够正确地声明、初始化和访问数组元素。

5. 指针:学生需了解指针的基本概念和使用方法,并能够正确地定义指针变量、进行指针运算、访问指针所指向的变量。

6. 函数:学生需了解函数的定义和调用方法,并能够正确地编写和调用自定义函数,以及理解函数参数传递和返回值的概念。

(三)实验环境本次实验的编程环境为C语言集成开发环境(IDE),可以选择Visual Studio、Dev C++、Code::Blocks等开发工具进行实验。

实验过程中,学生需要使用C语言编译器来编译和执行自己编写的程序代码,以验证程序的正确性和功能实现。

(四)实验步骤1. 实验一数据类型实验目的:了解C语言的基本数据类型和变量定义方法,掌握数据类型之间的转换和运算规则。

实验六 简单正弦交流电路的研究

实验六 简单正弦交流电路的研究

实验六简单正弦交流电路的研究实验目的:1、理解正弦交流电路基本概念和相关计算方法;2、学习正弦交流电路的基本组成和特点;3、通过实验了解正弦交流电路的工作原理和基本参数。

实验仪器:正弦交流信号发生器、多用示波器、交流电压表、电阻箱、万用表等。

实验原理:正弦交流电路是指交流电流或电压大小、正负周期和相位都随时间按正弦规律周期性变化的电路。

正弦电压与正弦电流的关系可以用欧姆定律解释:U = I × R (式一)其中,U为电势差或电压,I为电流,R为电阻。

欧姆定律可以用于所有电路中,在交流电路中也同样可以适用。

因此,在深入研究正弦交流电路之前,我们先了解交流电压的基本性质:(1) 交流电压的特点u(t)= Vm sin(ωt+φ) (式二)其中,Vm为交流电压的幅值,ω为角频率,φ为相位角,t为时间,sin为正弦函数。

(2) 交流电阻理论交流电路中的电阻也称交流电阻,是指电阻对于交流电流的阻力。

交流电路中,电阻对交流电流的阻抗与电阻对直流电流的电阻是不同的,最常用的是交流电阻,即所谓的“阻抗”。

阻抗的计算式为:其中,R为电阻,L为电感,ω为角频率,j为单位虚数。

交流电路中的电感和电容都是随着时间周期性变化的被动元件。

在电路中,它们对于交流电流的阻抗值分别是:Xl = ωL (式四)Xc = 1/(ωC) (式五)交流电阻的大小取决于电阻、电容、电感等电路元件,同时也与电流的频率有关。

一个简单的正弦交流电路由以下几个基本部分组成:(1) 信号源正弦交流电路的信号源一般为交流电源,它会产生正弦波形的交流电。

(2) 负载负载是在正弦交流电路中转换电能并将其用于加热、照明等工作的部分。

负载可以是灯泡、电磁铁、电动机等。

(3) 阻抗实验步骤:1、测量交流电压源的电压并记录下来;2、接通电路并且打开示波器观测交流电压源和负载的电压大小,能够观测到依次变化的电压大小及相位差;3、根据示波器上的波形,测量出交流电压源和负载的电压幅值、频率和相位差;4、更改电压源的电压频率,重新测量交流电路的各种参数,记录下来并计算出传输功率,观察波形对应的变化,分析实验结果。

c++实验六

c++实验六

实验六1.实验目的通过本次实验(1)初步掌握函数的定义方法,及函数的三种调用方法;(2)理解参数传送过程中,值传送与传地址的过程与区别;(3)初步学会用递归编写程序方法;(4)学会用数组作为函数参数的编程方法。

2.实验要求(1)编写实验程序(2)在VC++运行环境中,输入源程序;(3)编译运行源程序;(4)输入测试数据进行程序测试;(5)写出运行结果。

3.实验内容(1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。

再定义一个输出数组元素值的函数print()。

在主函数中定义一维整型数组a[N](N=10),用键盘输入10个整数给a[N]数组。

依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。

输入十个实验数据:10,25,90,80,70,35,65,40,55,5(2)编写一个函数px(float x,int n)用递归的方法求下列级数前n项的和s。

在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和s。

最后输出s的值。

输入实验数据:x=1.2 n=10(3)编写一个字符串连接函数str_cat(char s[],char s1[],chars2[]),完成s=s1+s2的字符串连接工作。

具体要求为,先将字符串s1复制到s中,然后再将字符串s2连接到s后面。

在主函数中定义三个字符串数组str[80]、str1[40]、str2[40],将两个字符串输入到str1与str2中,调用字符串连接函数str_cat(),将str1与str2连接到str中,最后输出连接后的字符串str。

要求用两种方法编写str_cat()函数。

方法一,用字符串复制与连接函数。

方法二,用while语句编程实现。

数值分析实验报告--实验6--解线性方程组的迭代法

数值分析实验报告--实验6--解线性方程组的迭代法

1 / 8数值分析实验六:解线性方程组的迭代法2016113 张威震1 病态线性方程组的求解1.1 问题描述理论的分析表明,求解病态的线性方程组是困难的。

实际情况是否如此,会出现怎样的现象呢?实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(),,,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。

通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。

实验要求:(1)选择问题的维数为6,分别用Gauss 消去法、列主元Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数(至少到100),仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么?(3)讨论病态问题求解的算法1.2 算法设计首先编写各种求解方法的函数,Gauss 消去法和列主元高斯消去法使用实验5中编写的函数myGauss.m 即可,Jacobi 迭代法函数文件为myJacobi.m ,GS 迭代法函数文件为myGS.m ,SOR 方法的函数文件为mySOR.m 。

1.3 实验结果1.3.1 不同迭代法球求解方程组的结果比较选择H 为6*6方阵,方程组的精确解为x* = (1, 1, 1, 1, 1, 1)T ,然后用矩阵乘法计算得到b ,再使用Gauss 顺序消去法、Gauss 列主元消去法、Jacobi 迭代法、G-S 迭代法和SOR 方法分别计算得到数值解x1、x2、x3、x4,并计算出各数值解与精确解之间的无穷范数。

Matlab 脚本文件为Experiment6_1.m 。

迭代法的初始解x 0 = (0, 0, 0, 0, 0, 0)T ,收敛准则为||x(k+1)-x(k)||∞<eps=1e-6,SOR方法的松弛因子选择为w=1.3,计算结果如表1。

实验六 调制定理

实验六 调制定理
sin( t)/( t) sin( t)/( t) 1.5 1 0.5 0 -0.5 -10
0 2 4 6 8 10 t 1/2/ abs((w-2 ) heaviside(w-2 )+(w+2 ) heaviside(w+2 )-2 w heaviside(w)) 1.5
-8
-6
sin( t)/( t) 1.5 1 0.5 0 -0.5 -10
-8
-6
0 2 4 t abs(-heaviside(w+ )+heaviside(w-))
-4
-2
6
8
10
1.5
1
0.5
0
-80
-60
-40
-20
0 w
20
40
60
80
图 6.1.1 调制信号时域和频域图
sin( t)/( t) cos(10 t) 1 0.5 0 -0.5 -1 -10
-4
-2
1
0.5
0
-80
-60
-40
-20
0 w
20
40
60
80
图 6.2.1 调制信号时域和频域图
sin( t)/( t) sin( t)/( t) cos(20 t) 1 0.5 0 -0.5 -1 -10
0 2 4 6 8 10 t e(w+20 )+(w+22 ) heaviside(w+22 )+(40 -2 w) heaviside(w-20 )+w heaviside(w-18 )+18 heav 1
-8
-6
-4
-2

实验六控制系统的根轨迹.

实验六控制系统的根轨迹.

实验六控制系统的根轨迹.控制系统的根轨迹是指系统极点随控制参数变化而在复平面上运动的轨迹。

根轨迹图常常用于控制系统的设计与分析。

设计中,通过根轨迹图来选择合适的系统参数,使系统的稳定性、响应速度和误差等性能指标达到要求;分析中,可以根据根轨迹的形态来判断系统的稳定性、响应性能和抗干扰性能等。

1.根轨迹的定义控制系统的根轨迹指随一个参数(一般为控制器增益K)变化时,所对应的系统极点在复平面上运动的轨迹。

根轨迹为实轴上的点和极点连线的轨迹。

在复平面内,实轴被称为根轨迹的实轴,虚轴被称为根轨迹的虚轴。

实轴上的点代表系统极点为实数的情况,而虚轴上的点则代表系统极点为纯虚数的情况。

2.根轨迹的基本特性(1) 根轨迹始于开环传递函数零点:根轨迹起点的位置位于开环传递函数零点处,即K=0时的根轨迹通过零点。

因为在开环传递函数的零点处,极点和零点个数相等,系统是临界稳定的。

(2) 根轨迹终止于实轴或两个共轭极点相会的位置:K趋向于无穷大时,根轨迹的终点位于实轴上且有限极点处,即系统趋于稳定。

当两个共轭极点相遇时,根轨迹终点在相遇点处。

(3) 根轨迹穿过虚轴的次数等于开环传递函数零点个数减去极点个数:当根轨迹穿过虚轴时,极点和零点必须成对出现,因此穿过虚轴的次数等于零点个数减去极点个数的差。

(4) 根轨迹离虚轴越近,系统的稳定性越好:当根轨迹靠近虚轴时,系统的阻尼比较小,振动较大,系统的稳定性较差;当根轨迹离虚轴较远时,阻尼比较大,振动较小,系统的稳定性较好。

3. 根轨迹的绘制流程(1) 确定系统开环传递函数(2) 根据传递函数分母和分子分别得到系统的极点和零点(3) 根据极点和零点的数量关系确定开环传递函数的特性(4) 明确所需要考察的控制器增益K的变化范围(5) 利用根轨迹图绘制原则画出根轨迹根据根轨迹绘制原则,先从跨越实轴的部分开始绘制,再进行相邻根线、根轨迹绘制。

绘制完成后对根轨迹进行分析,并通过调整增益K的值得到稳定、快速响应和小误差的性能指标。

大学数学实验题目及解答3

大学数学实验题目及解答3

实验六1、分别用fzero 和fsolve 程序求方程02/sin 2=-x x 的所有根,准确到1010-,取不同的初值计算,输出初值、根的近似值和迭代次数,分析不同根的收敛域;自己构造某个迭代公式(如2/1)sin 2(x x =等)用迭代法求解,并自己编写牛顿法的程序进行求解和比较。

解:选择方程2/1)sin 2(x x =(1)迭代法n=10; x=1:n; for k=1:(n-1)x(k+1)=(2*sin(x(k)))^0.5; end x(2)牛顿法 对于x x x f ==sin 2)(,其牛顿法迭代公式为xx x x x x sin 2cos sin 2cos )(--=ϕ程序为:n=10; x=1:n; for k=1:(n-1)x(k+1)=(x(k)*cos(x(k))-2*sin(x(k)))/(cos(x(k))-(2*sin(x(k)))^0.5); end x (3)两种方法比较则可看出,牛顿法的迭代公式收敛速度快于普通迭代法。

3、(1)小张夫妇以按揭方式贷款买了1套价值20万的房子,首付5万,每月还款1000元,15年还清。

问贷款利率为多少?(2)某人欲还贷款50万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15年还清;第二家银行开出的条件是每年还45000元,20年还清。

从利率方面看,哪家银行更优惠?(假设年利率=12*月利率) 解:(1)设月利率为x ,则根据题意可列公式:021215112151215)1(1.0)1(1.0)1(1.018)1(15x x x x ++++++=-+-⨯-⨯⨯化简得:xx x 101)1(18)1(15180180-+=-+解得:x=0.22%(2)设第一家银行月利率为x ,第二家银行月利率为y (年利率为12y )。

则有下列方程:xx x 451)1(81)1(50180180-+=-+yy y 121)121(5.481)121(502020-+=-+解得x=0.6092%,y=0.5325%。

实验六参考答案

实验六参考答案

第一套1、程序填空题1)【参考答案】第一处:* 第二处:'Z' 第三处:tt2)【参考答案】第一处:char 第二处:ch<='9' 第三处:'0'2、程序改错题【参考答案】第一处:c=c-32;改为c=c+32; 第二处:c=c-5;改为c=c+5;2、程序设计题【参考答案】void fun(char *s){ int i=0;/*假如s[i]不为字符串结束符,则继续循环,否则退出循环*/while (s[i]!='\0')/*假如s[i]为大写字母Z 且在字符串中下标为奇数的位置上,则转换成小写字母z*/{ if ((s[i]=='Z') && (i%2==1))s[i]='z';/*假如s[i]为除大写字母Z 以外的字母,则直接转换成该字母的小写字母状态的下一个字母*/else if ((s[i]>='A' && s[i]<'Z') && (i%2==1))s[i]=s[i]+33;i++;}}【解题思路】将s 所指字符串中下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母,若该位置上是小写字母,则不转换;若该位置上是大写字母Z,则仅转换成小写字母z。

判断字符为大写字母的方法是:判断字符的ASCII 值是否大于A小于Z。

判断下标为奇数,用i%2 等于1 来判断。

1、程序填空题1)【参考答案】第一处:n >0 第二处:n%10+'0' 第三处:str[i]= ′\0′2)【参考答案】第一处:s[i] >= ′0′ &&s[i]< = ′9′第二处:s[i]- ′0′第三处:n2、程序改错题【参考答案】第一处:if(('a'<=tt[i]) || (tt[i]<='z'))改为if(('a'< =tt[i]) && (tt[i]< ='z'))第二处:tt[i]+=32;改为tt[i]-=32;3、程序设计题【参考答案】long fun(char *p){ long n=0;攀枝花学院计算机基础教研室第1页共3页int flag=0;/*通过循环语句移动指针,取出指针所在位置上的字符*/while(*p!='\0'){ if(*p=='-') /*判断其是否为负号*/flag=1;else if (*p=='+') /*判断其是否为正号*/flag=0;else /*判断其是否为数字字符*/n=n*10+(*p-'0'); /*将数字字符转化为相应的数值*/p++;}if (flag==1) n=-n;return n;}【解题思路】通过循环语句移动指针,取出指针所在位置上的字符,先判断其为正负号还是为数字字符,如果为数字字符则将其转化为相应的数值,否则作正负标记。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 编制另一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。
说明:
用梯形法求定积分,梯形公式为
s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n
3. 用递归方法编写程序,求n阶勒让德多项式的值,递归公式为
1 (n=0)
pn(x)=x (n=1)
((2n-1)xpn-1(x)-(n-1)pn-2(x))/n (n>1)

[ 分析讨论]
1. 小结函数的定义及调用方法。
2. 小结函数中形参和实参的结合规则。
读书以过目成诵为能,最是不济事。——郑板桥
2. 用梯形法求函数的定积分。
实验步骤与要求:
(1) 编制一个函数sab(a,b,n),其功能是求函数f(x)在[a,b]上的定Байду номын сангаас分,其中n为区间[a,b]的等分数。要求该函数在一个独立的文件中。
(2) 编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。
读书以过目成诵为能,最是不济事。——郑板桥
实验六 函数(1)
[实验目的]
1.理解和掌握多模块的程序设计与调试的方法。
2.掌握函数的定义和调用的方法。
3.学会使用递归方法进行程序设计。
[实验内容和步骤]
1. 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。
实验步骤与要求:
(1) 编写一个函数prime(n),返回给定整数n是否为素数。
(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。
(3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。
相关文档
最新文档