U201315130 王超 第三次上机实验报告
上机实验内容
实验一模型描述在第一个模型里,由一条生产线处理三种物料。
每种物料按正态分布随机到达,之后进入队列等待检验。
检验机1检验物料类别1,检验机2检验物料类别2,检验机3检验物料类别3。
检验之后,物料被输送机运往出口。
整个模型如下图所示:模型数据:物料到达: 正态分布N(20,2)队列容量: 25检验时间: 指数分布l(30)输送机速度: 1米/秒物料路线: 物料1到检验机1, 物料2到检验机2, 物料3到检验机3实验二模型描述在第二个模型里,我们使用由两个人组成的一个工作团队来执行检验机的启动程序。
检验机一旦启动,则不在需要操作人员在场。
同时,在启动之前,操作者必须把物料搬运到检验机所在位置。
当物料检验完毕后直接移动到输送机,不再需要操作人员的帮助。
当物料达到输送机的末端时,将被置于一个队列中,之后由叉车送到出口处。
整个模型如下图所示:模型数据:检验机启动时间: 10秒产品处理: 操作者从队列到检验机,叉车从输送机队列到出口输送机队列容量: 10实验三模型描述在模型3中,出口将有3个货架取代,用于产品出厂前的存放。
采用一个表格进行定义,将物料1送到货架2,物料2送到货架3,物料3送到货架1。
再者,使用网络节点设置叉车搬运路线。
整个模型如下图所示:Figure 3-1. Model 3 diagram模型数据:输送机1、2、3将物料输送到输送机队列。
输送队列到货架的路线:采用一个表格定义以下的物料路线——将物料1送到货架2,物料2送到货架3,物料3送到货架1。
设置叉车从输送队列到货架搬运路线的网络节点。
实验4:多产品单阶段制造系统仿真与分析模型描述某工厂加工三种类型产品的过程。
这三类产品分别从工厂其他车间达到该车间。
这个车间有3台机床,每台机床可以加工一种特定的产品类型。
一旦产品在相应的机床上完成加工,所有产品都必须送到一个公用的检验台进行质量检测。
检测合格送往下一个车间,不合格则必须送回相应的机床进行再加工。
数值分析上机实验报告3
实验报告三题目:函数逼近——曲线拟合目的:掌握曲线拟合基本使用方法数学原理:[P,S]=polyfit(x,y,3)其中x,y为取样值,3为得出的结果的最高次数。
P为对应次数的系数,S为误差值向量,其中x,y是等长的向量,P是一个长度为m+1的向量。
结果分析和讨论:23.观察物体的运动,得出时间t与距离s的关系如表,求运动方程。
t=[0,0.9,1.9,3.0,3.9,5.0];s=[0,10,30,50,80,110];[P,S]=polyfit(t,s,5)P =-0.5432 6.4647 -26.5609 46.1436 -13.2601 -0.0000S =R: [6x6 double]df: 0normr: 1.2579e-012所以得到方程为:-13.2601x46.1436x-26.5609x6.4647x-0.5432x2345++24.在某化学反应堆里,根据实验所得分解物的质量分数y与时间t的关系,用最小拟合求y=F(t);>> x=0:5:55;y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.62,4.64];>> [P,S]=polyfit(x,y,5)P =0.0000 -0.0000 0.0002 -0.0084 0.2851 0.0082S =R: [6x6 double]df: 6normr: 0.0487所以得到方程为:0082.02851.00084.00002.023++-xxx结论:在23题中计算的结果误差为4.5769,而在24中计算的结果误差为0.0487,说明对于曲线拟合来说,总会有误差,因为取样点并不是都过拟合的曲线的。
上机操作4实验5数据统计与分析
第二十六届校运会跳高比赛1997年11月15日编号姓名高度第一次第二次第三次编号姓名成绩188王克南 1.60成功免免064陈晓宁108李海儿 1.60成功免免108李海儿188王克南 1.65成功免免188王克南108李海儿 1.65成功免免202王斯雷328伍翔 1.65成功免免328伍翔202王斯雷 1.65成功免免361宋成城188王克南 1.70成功免免328伍翔 1.70成功免免202王斯雷 1.70失败成功免361宋成城 1.70成功免免064陈晓宁 1.70成功免免提示如下:188王克南 1.72失败成功免①筛选出所有某一次试跳成功的108李海儿 1.72失败成功免(提示:“所有某一次”的意思是“至少有一次”328伍翔 1.72成功免免②对所得到的新数据库按运动员的编号分类,求出202王斯雷 1.72成功免免③将所得到的结果复制到区域J5:J10中。
188王克南 1.74失败失败放弃108李海儿 1.74失败成功免328伍翔 1.74成功免免202王斯雷 1.74失败失败成功361宋成城 1.74成功免免188王克南 1.76无权无权失败108李海儿 1.76失败成功免328伍翔 1.77失败成功免202王斯雷 1.77失败失败成功361宋成城 1.77成功免免108李海儿 1.77失败失败失败328伍翔 1.78失败失败成功202王斯雷 1.78失败失败失败361宋成城 1.78失败成功免064陈晓宁 1.78失败失败失败328伍翔 1.80失败失败失败361宋成城 1.80失败失败成功065宋成城1.82失败失败失败题目:根据左面表格中的数据,求出各运动员的最存放到区域J5:J10中(注:区域H5:J10内的的运最后结果请参看样张。
(15分)样张:成功的记录,将其复制到区域A40中;某一次”的意思是“至少有一次”,或“不是三次都失败”)运动员的编号分类,求出各类中的最大值;区域J5:J10中。
第三次上机实习作业及指导
第三次上机检索实习指导书外文数据库(二)本次实习目的是使学生对以下四个外文数据库:美国PQDD博士论文全文数据库、美国ACM数据库、WorldSciNet全文期刊数据库和美国ASP+BSP数据库的使用方法有所了解。
通过题目,使学生分别掌握每个数据库所提供的各种获取文献的方法,包括浏览和检索的方法,并通过各种算符的组配,以达到获取正确检索结果的目的。
一、美国PQDD博士论文全文数据库:1、用“学科导航”方式,检索有关经济历史方面的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导2、查找“斯坦福大学”有关你所学专业方面的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导3、检索”哈佛”大学有关你所学专业的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导二、ACM数据库:1、自选一个题目,检索“美国ACM全文数据库”有关会议方面的文献, 记下第一条记录的篇名,载此文章的刊物的名称、年、卷。
实习指导2、查找作者“Alberto Faro”发表的计算机网络方面的文献,记下第一条记录的篇名,载此文章的刊物的名称、年、卷。
浏览全文,说明全文浏览器中的文本复制和位图复制的功能是什么?实习指导3、请找出该系统使用的逻辑算符、位置算符和截词算符分别用哪些词汇和符号表示。
实习指导三、WorldSciNet全文期刊数据库:1、查找一篇有关环境科学方面的文献,记下篇名,刊名、年、卷。
实习指导2、检索“计算机软件”方面的文献(时间限定为2000——2004年,检索字段为摘要,其他选项为默任状态),列出第一条记录的篇名。
浏览一下全文,说明全文浏览器中的文本选择的功能是什么?四、使用美国ASP+BSP数据库检索:中美双方关于中国参加世贸组织的谈判成功以后,美国企业对中国市场越发关注。
在著名期刊《哈佛商业评论》2000年的某一期中,有一篇文章重点介绍了美国柯达公司是如何在中国建立西方模式的股份公司的。
计算方法第三次上机实习报告
计算方法第三次上机实习报告实验报告课程名称: 计算方法 指导老师: 郑太英 成绩:__________________实验名称: 第三次上机作业 实验类型: matlab 同组学生姓名: 一、实验目的和要求(必填) 二、实验内容和原理(必填)三、主要仪器设备(必填) 四、操作方法和实验步骤五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得一、实验目的用龙贝格算法计算积分,要求误差不超过ε=×105二、实验原理龙贝格算法是由递推算法得来的。
由梯形公式得出辛普森公式得出柯特斯公式最后得到龙贝格公式。
设将求积区间[a ,b]分为n 个等分,则一共有n+1个等分点,k x a kh =+,0,1,b ah k n-==,n 。
这里用n T 表示复化梯形法求得的积分值,其下标n 表示等分数。
先考察下一个字段[1,k k x x +],其中点()11212k k k x x x ++=+,在该子段上二分前后两个积分值 ()()112k k hT f x f x +=+⎡⎤⎣⎦ ()()21124k k k h T f x f x f x ++⎡⎤⎛⎫=++⎢⎥ ⎪⎢⎥⎝⎭⎣⎦显然有下列关系 2112122k h T T f x +⎛⎫=+ ⎪⎝⎭将关系式关于k 从0到n-1累加求和,即可得递推公式12102122n n n k k h T T f x -+=⎛⎫=+ ⎪⎝⎭∑需要强调指出的是,上式中的b a h n -=代表二分前的步长,而1212k x a k h +⎛⎫=++ ⎪⎝⎭根据梯形法的误差公式,积分值n T 的截断误差大致与2h 成正比,因此步长减半后误差将减至四分之一,即有21114n n T T -≈- 将上式移项整理,知 2211()3n n n T T T -≈-按上式,积分值2n T 的误差大致等于21()3n n T T -,如果用这个误差值作为2n T 的一种补偿,可以期望,所得的()222141333n n n n n T T T T T T =+-=-应当是更好的结果。
数值分析上机实践报告
数值分析上机实践报告一、实验目的本次实验主要目的是通过上机操作,加深对数值分析算法的理解,并熟悉使用Matlab进行数值计算的基本方法。
在具体实验中,我们将实现三种常见的数值分析算法:二分法、牛顿法和追赶法,分别应用于解决非线性方程、方程组和线性方程组的求解问题。
二、实验原理与方法1.二分法二分法是一种常见的求解非线性方程的数值方法。
根据函数在给定区间端点处的函数值的符号,不断缩小区间的长度,直到满足精度要求。
2.牛顿法牛顿法是求解方程的一种迭代方法,通过构造方程的泰勒展开式进行近似求解。
根据泰勒展式可以得到迭代公式,利用迭代公式不断逼近方程的解。
3.追赶法追赶法是用于求解三对角线性方程组的一种直接求解方法。
通过构造追赶矩阵,采用较为简便的向前追赶和向后追赶的方法进行计算。
本次实验中,我们选择了一组非线性方程、方程组和线性方程组进行求解。
具体的实验步骤如下:1.调用二分法函数,通过输入给定区间的上下界、截止误差和最大迭代次数,得到非线性方程的数值解。
2.调用牛顿法函数,通过输入初始迭代点、截止误差和最大迭代次数,得到方程组的数值解。
3.调用追赶法函数,通过输入追赶矩阵的三个向量与结果向量,得到线性方程组的数值解。
三、实验结果与分析在进行实验过程中,我们分别给定了不同的参数,通过调用相应的函数得到了实验结果。
下面是实验结果的汇总及分析。
1.非线性方程的数值解我们通过使用二分法对非线性方程进行求解,给定了区间的上下界、截止误差和最大迭代次数。
实验结果显示,根据给定的输入,我们得到了方程的数值解。
通过与解析解进行比较,可以发现二分法得到的数值解与解析解的误差在可接受范围内,说明二分法是有效的。
2.方程组的数值解我们通过使用牛顿法对方程组进行求解,给定了初始迭代点、截止误差和最大迭代次数。
实验结果显示,根据给定的输入,我们得到了方程组的数值解。
与解析解进行比较,同样可以发现牛顿法得到的数值解与解析解的误差在可接受范围内,说明牛顿法是有效的。
CAAC实验报告第3次参考答案
计算机辅助电路分析第3次上机报告1.采用Multisim 设计实验, 求解下图电路的戴维宁等效模型。
要求画出实验接线图, 写出计算过程, 画出戴维宁等效电路。
分析调节 为何值时 。
提示:(1)利用“parameter sweep ”功能。
(提示:在“more option ”中设置“DC Operating Point ”, 分析范围1-150V ) (2)利用“DC sweep ”功能。
求解戴维宁等效模型的电路图(见3-1a.msm ):V11 VR11R22R33V20.3333 V1I12 A/AI235XMM14V U oc 1= A I SC 2.0= Ω==52.01eq R2) 绘制戴维宁等效模型(见3-1b.msm )Uoc 1 VReq 5213)parameter sweep: (见3-1c.msm)4)“DC sweep”: (见3-1c.msm)注: 本题在求解戴维宁模型时也可以采用图3-1c.msm, 这时需要对4Ω电阻设置开路故障(fault>open)Conditions ”设置为“User-Defined ”, 仿真时间[0 2])图1解: Multisim 电路模型如下: (见3-2.msm )ANSI 符号标准:I14 AL12 HR14 V110123DIN 符号标准:I14 AV110IL12 HR14231i L (t )仿真波形如下:注: 波形图可以直接在仿真窗口右键Copy或Edit菜单Copy后粘贴得到本题点评:1)动态元件初始值的设定方法。
分析时初始条件的选择。
User defined 或??2)电流控电压源的连接3)仿真时间的设置, 一般4~5τ即可。
(1) 3.电路如图所示, R1=6.2ohm, R2=2.0ohm, C1=1.8uF, L1=30mH。
(2)f=50Hz, 用示波器观测电路的性质(电容性, 电感性, 电阻性)。
(3)用“AC Analysis”作出幅频和相频特性图, 找出并联谐振频率。
数字信号处理上机实验 作业结果与说明 实验三、四、五
上机频谱分析过程及结果图 上机实验三:IIR 低通数字滤波器的设计姓名:赵晓磊 学号:赵晓磊 班级:02311301 科目:数字信号处理B一、实验目的1、熟悉冲激响应不变法、双线性变换法设计IIR 数字滤波器的方法。
2、观察对实际正弦组合信号的滤波作用。
二、实验内容及要求1、分别编制采用冲激响应不变法、双线性变换法设计巴特沃思、切贝雪夫I 型,切贝雪夫II 型低通IIR 数字滤波器的程序。
要求的指标如下:通带内幅度特性在低于πω3.0=的频率衰减在1dB 内,阻带在πω6.0=到π之间的频率上衰减至少为20dB 。
抽样频率为2KHz ,求出滤波器的单位取样响应,幅频和相频响应,绘出它们的图,并比较滤波性能。
(1)巴特沃斯,双线性变换法Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radians frequency in pi unitsa r g (H [e x p (j w )](2)巴特沃斯,冲激响应不变法(3)切贝雪夫I 型,双线性变换法(4)切贝雪夫Ⅱ型,双线性变换法综合以上实验结果,可以看出,使用不同的模拟滤波器数字化方法时,滤波器的性能可能产生如下差异:使用冲击响应不变法时,使得数字滤波器的冲激响应完全模仿模拟滤波器的冲激响应,也就是时域逼急良好,而且模拟频率和数字频率之间呈线性关系;但频率响应有混叠效应。
frequency in Hz|H [e x p (j w )]|Designed Lowpass Filter Magnitude Response in dBfrequency in pi units|H [e x p (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [e xp (j w )]|frequency in pi unitsa r g (H [e x p (j w )]Ideal And Designed Lowpass Filter Magnitude Responsefrequency in Hz|H [e x p (j w )]|frequency in pi units|H [ex p (j w )]|Designed Lowpass Filter Phase Response in radiansfrequency in pi unitsa r g (H [e x p (j w )]使用双线性变换法时,克服了多值映射的关系,避免了频率响应的混叠现象;在零频率附近,频率关系接近于线性关系,高频处有较大的非线性失真。
数值分析第三次上机练习实验报告
2 1 , k 0,1, 2...n. 这里唯一需要注意的就是 n 1 Pn ( xk ) Pn'1 ( xk )
还需要一个多项式微分运算(使用的是polyder函数) ,求解出这两项之后,剩下的 就是 I n ( f ) 2.
A
k 0
n
k
f ( xk ) 。
Romberg积分公式计算 函数主体是Romberg.m文件,以下只分析这个函数文件的结构: 第一部分是赋初值,对于积分表T还赋值T(1,1):
实现方法说明
程序语言采用Matlab语言,运行环境为Matlab R2009b。
注:主程序文件是First.m和Second.m,其他都是对应的自编函数文件。
1.
复化Guass-Legendre求积公式运算 这个程序主体是First.m文件,在里面定义了变量x和函数f f=sym(100*sin(10*(2+x)^(-1))*(2+x).^(-2));由于Legendre多项式的使用条件是[-1,1], 因此对积分区间做了变换,函数体本身也就变成了f(x)=(100*sin(10/(x + 2)))/(x + 2)^2。其他都是调用自己编写的函数计算。 ① Legendre多项式生成函数:Legendre.m
2/5
水利系
2008010249
程国安
这个函数主要用于生成 Legendre 多项式,比较简短,最重要的就是一个迭代 关系 P=((2*n-1)*x*Legendre(n-1)-(n-1)*Legendre(n-2))/(n);最后输出一个多项式, 如果需要整合,另外加一句 expand(P)即可。 ② Guass-Legendre积分函数:Guass-Legendre.m 这个函数的相关输入输出说明见函数文件注释。 积分实现主要需要求出 f ( xk ) 和 Ak , 对于 f ( xk ) , 重点就是建立内联函数 f ( x) 和 变量序列 xk ,变量序列 xk 主要使用利用Legendre求出对应次数的Legendre多项式 的零点(使用sym2poly求出系数,之后利用roots求零点) 。 对于 Ak ,利用 Ak
胶体实验报告——王超
L/O/G/O
2016年5月9日
目录
1. 卡拉胶BLK1060的性质研究 2. 卡拉胶RMD-102的性质研究 3. 魔芋胶的性质研究 4.瓜尔豆胶的性质研究 5. 金属离子对卡拉胶BLK1060的影响 6. 金属离子对卡拉胶RMD-102的影响
卡拉胶BLK1060的基本性质研究
1 复水时所需最大水量
卡拉胶RMD-102的耐酸实验
做500g样品,不考虑糖度,胶体添加 量均为1%,设置pH梯度:2.2到4(一 水柠檬酸调节),剪切温度100℃,时 间5min,速度8000r/min.
实验数据及结论
2.2 2.5 2.8 3.5 4.0
卡拉胶 5949 RMD-102 黏度(cp)
2天后测量 3579
1%
20min
状态:轻微凝胶 黏度:30194
S64、12RPM
30min
状态:轻微凝胶 黏度:35043
复水完毕加热5min后的魔芋胶状态
加热完毕冷却至室温后魔芋胶的状态
高温对胶体的影响
状态:轻微凝胶 黏度:11747
0min
状态:轻微凝胶
10 黏度:11148 min
S64、12RPM
1%
20min
卡拉胶BLK1060的极限浓度是3%,最佳打胶温度100℃,最佳打胶时间 5min。
糖度对卡拉胶BLK1060的影响
50% 55% 60%
65%
70%
轻微凝胶 凝胶(不够硬,硬度无法测量)
凝胶(不够硬,硬度无法测量)
凝胶(不够硬,硬度无法测量)
凝胶(硬度5kg)
结论: 随着糖度的升高,胶体的凝胶状态增强,硬度增大,黏度无影响。
投入后 出现少量絮状凝胶
第三次实验报告
第三次试验报告杨晗 23120121152896一.测量的整形前后的光斑数据:2D、3D图最好用Origin或者类似软件画出来,写出x、y方向的大小,并计算x方向的放大率。
图 1 整形前光斑2D图图2 整形前光斑3D图从图1中可以读出整形前光斑的大小。
X轴方向大约是1.664×103um,Y轴方向大约是3.744×103um.图3 整形后光斑2D图图4 整形后光斑3D图由图3可读出整形后光斑的大小。
X轴方向的大小是4.16×103um,Y轴方向的大小是3.9×103um.所以,X轴方向的放大率为M=4.16×103/1.664×103=2.5二.用折射定律计算,利用一个45角K9棱镜进行光束整形时,若使得输出光束在x方向放大率分别为2和1/2时,光束在第一个面上的入射角度是多少。
(见下图,M=L3/L1)sinθ1=n sinθ2 sinθ4=n sinθ3L3 cosθ4=L2cosθ3L1 cosθ1=L2cosθ2θ2+θ3=45°L3=2L1整理得到,sinθ1=1.5sinθ2sinθ4=1.5sinθ3θ2+θ3=0.785M=sinθ4∗sinθ2sinθ1∗sinθ3令M=2,利用matlab求解,得到θ1=67.1°再令M=0.5,用matlab求解,得到θ1=10.7°三.调研M2因子的定义、应用和测量方法1.M2因子的定义及应用M2因子用于量化激光束的光束质量参数,也称为光束质量因子或者光束传输因子或者衍射极限因子。
M2因子=实际光束的空间×光束宽度理想高斯光束的空间×光束宽度也可表示为M2=实际光束的光腰半径×远场发散角理想高斯光束的光腰半径×远场发散角对于理想高斯光束,有M2=1,光束质量最好。
实际光束M2均大于1,表征了光束衍射极限的倍数。
上机实验报告实验总结
上机实验报告实验总结
当撰写上机实验报告的实验总结时,需要从多个角度全面回答。
首先,总结实验的目的和背景,说明实验的重要性和意义。
然后描
述实验的步骤和方法,包括所用的仪器和材料。
接着,详细讨论实
验的结果,包括数据和观察到的现象。
分析实验结果,讨论可能的
误差来源和对结果的影响。
最后,总结实验的主要发现,讨论实验
过程中遇到的问题以及可能的改进方法。
在总结中,可以指出实验
的局限性和未来的研究方向。
总之,实验总结需要全面、详细地描
述实验过程和结果,并对实验的意义和可能的改进进行讨论。
第三次上机作业实验报告
学号:19020132202847 姓名:于劭炜第三次上机作业1 学习目标本次上机实习的主要目标为:1.编写Simpson公式(逐次分半法抛物线公式)计算数值积分的程序,计算题目中的积分。
并用MATLAB的自带函数[Q,fcnt]=quad(FUN,A,B,TOL) 计算积分,改写程序使其也能返回积分点的个数,比较自编的函数和quad在相同精度下哪个使用的积分点更少。
2.编写一个函数使用Romberg求积法计算数值积分,比较Romberg求积法和Simpson公式求积法在相同精度下的使用的积分点的个数,并解释结果。
2 第一题:Simpson公式2.1 问题描述请编写一个函数使用逐次分半法抛物线公式(Simpson)计算数值积分。
请自行设计输入输出参数。
(注意编程规范,包括函数名、变量名、注释、缩进等,这些将计入评分项)a) 使用你编写的函数分别计算积分òp20sinxdx、òxdx、ò-112310010sindx。
1x2x3b) matlab自带的函数[Q, fcnt] = quad(FUN,A,B,TOL) 使用自适应Simpson公式计算积分,其中返回值Q为数值积分值,fcnt为被积函数被调用的次数(也即积分点的个数)。
修改你前面编写的函数使其也能返回积分点的个数,比较你的函数和quad在相同精度下哪个函数使用的积分点更少?2.2 Simpson 公式的数学原理对抛物线求积公式可以用逐次分半法来处理,计算S1,S2,…,Sn,S2n,…????=其中, ???=(2)?????2??(1)???(1)(2) ?? ?? +?? ?? +2????+4???? ,??=1,2,4…,sn 是原分点上函数值之和????1=?? ??2 +?? ??4 +?+?? ??2???2 而sn 是在新分点上函数值之和 ????2=?? ??1 +?? ??3 +?+?? ??2n?1????=??+?????,??=1,2,…,2???1再利用复化抛物线公式的误差估计式,可得?????2??≈15(??2???????) 因此,抛物线公式的逐次分半法以 ??2??????? <15?? 为停步准则,此时 I≈s2n 为满足精度要求的积分近似值。
数值分析上机实验报告
一、实验目的通过本次上机实验,掌握数值分析中常用的算法,如二分法、牛顿法、不动点迭代法、弦截法等,并能够运用这些算法解决实际问题。
同时,提高编程能力,加深对数值分析理论知识的理解。
二、实验环境1. 操作系统:Windows 102. 编程语言:MATLAB3. 实验工具:MATLAB数值分析工具箱三、实验内容1. 二分法求方程根二分法是一种常用的求方程根的方法,适用于连续函数。
其基本思想是:从区间[a, b]中选取中点c,判断f(c)的符号,若f(c)与f(a)同号,则新的区间为[a, c],否则为[c, b]。
重复此过程,直至满足精度要求。
2. 牛顿法求方程根牛顿法是一种迭代法,适用于可导函数。
其基本思想是:利用函数在某点的导数值,求出函数在该点的切线方程,切线与x轴的交点即为方程的近似根。
3. 不动点迭代法求方程根不动点迭代法是一种迭代法,适用于具有不动点的函数。
其基本思想是:从初始值x0开始,不断迭代函数g(x)的值,直至满足精度要求。
4. 弦截法求方程根弦截法是一种线性近似方法,适用于可导函数。
其基本思想是:利用两点间的直线近似代替曲线,求出直线与x轴的交点作为方程的近似根。
四、实验步骤1. 二分法求方程根(1)编写二分法函数:function [root, error] = bisection(a, b, tol)(2)输入初始区间[a, b]和精度要求tol(3)调用函数计算根:[root, error] = bisection(a, b, tol)2. 牛顿法求方程根(1)编写牛顿法函数:function [root, error] = newton(f, df, x0, tol)(2)输入函数f、导数df、初始值x0和精度要求tol(3)调用函数计算根:[root, error] = newton(f, df, x0, tol)3. 不动点迭代法求方程根(1)编写不动点迭代法函数:function [root, error] = fixed_point(g, x0, tol)(2)输入函数g、初始值x0和精度要求tol(3)调用函数计算根:[root, error] = fixed_point(g, x0, tol)4. 弦截法求方程根(1)编写弦截法函数:function [root, error] = secant(f, x0, x1, tol)(2)输入函数f、初始值x0和x1,以及精度要求tol(3)调用函数计算根:[root, error] = secant(f, x0, x1, tol)五、实验结果与分析1. 二分法求方程根以方程f(x) = x^2 - 2 = 0为例,输入初始区间[a, b]为[1, 3],精度要求tol 为1e-6。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计4
函数与程序结构实验
一、实验目的
(1)熟练和掌握函数的定义、声明,函数调用与参数传递方法,以及函数返回值类型的定义和返回值使用。
(2)熟悉和掌握不同存储类型变量的使用。
(3)熟悉多文件编译技术。
二、实验任务
1.源程序改错
在计算机上对计算s=1!+2!+3!+…+n!的源程序进行调试修改,使之能够正确完成指定任务。
#include <stdio.h>
long sum_fac(int n);
int main(void)
{
int k;
for(k=1;k<6;k++){
printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));
}
return 0;
}
long sum_fac(int n)
{
long s=0;
int i;
long fac=1;
for(i=1;i<=n;i++){
fac*=i;
s+=fac;
}
return s;
}
2.源程序修改替换
(1)修改上述源程序中的sum_fac函数,使其计算量最小。
(2)修改上述源程序中的sum_fac函数,计算S=1+1/2!+1/3!+…+1/n!(1)
#include <stdio.h>
long sum_fac(int n);
long fac(int n);
int main(void)
{
int k;
for(k=1;k<6;k++){
printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));
}
return 0;
}
long sum_fac(int n)
{
if(n == 1)
return 1;
else{
return sum_fac(n-1) + fac(n);
}
}
long fac(int n)
{
if(n == 1)
return 1;
else{
return n*fac(n-1);
}
}
(2)
#include <stdio.h>
double sum_fac(int n);
int main(void)
{
int k;
scanf("%d",&k);
printf("k=%d the sum is %lf\n",k,sum_fac(k));
return 0;
}
double sum_fac(int n)
{
double s=0;
int i;
long fac=1;
for(i=1;i<=n;i++){
fac*=i;
s+=(1.0/fac);
}
return s;
}
3.跟踪调试
源程序:
#include<stdio.h>
long fabonacci(int);
int main(viod)
{
int i,k;
long sum=0,*p=∑
scanf("%d",&k);
for(i=1;i<=k;i++)
{
sum+=fabonacci(i);
printf("i=%d\tthe sum is %ld\n",i,*p);
}
return 0;
}
long fabonacci(int n)
{
if(n==1||n==2)
return 1;
else
return fabonacci(n-1)+fabonacci(n-2);
}
(1)刚执行完“scanf("%d",&k);”语句时,p,i值是(如图):
(2)从fabonacci函数返回后,光条停留在哪条语句上?(如图):
(3)进入fabonacci函数时,watches窗口显示的是(如图):
(4)当i=3时,从调用fabonacci函数到返回,n值如何变化?(如图):
4.程序设计
(1)
#include <stdio.h>
#include <stdlib.h>
int gcd(int a,int b);
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("the greatest common divisor is:%d\n ",gcd(a,b));
return 0;
}
int gcd(int a,int b)
{
if(a>b) return gcd(b,a-b);
else if(a<b) return gcd(a,b-a);
else return a;
}
运行结果:
逐过程:
(2)
#include<stdio.h>
int isprime(int x);
int main()
{
int a,b;
for (a=4;a<=100;a+=2)
{
for (b=2;b<=97;b++)
{
if((a-b)&&isprime(b)&&isprime(a-b))
printf("%d=%d+%d\t",a,b,a-b);
}
}
return 0;
}
int isprime(int x)
{
int i;
for (i=2;i*i<x;i++)
if(!(x%i))return 0;
return 1;
}
(3)
#include <stdio.h>
int judge (int x);
int main()
{
int BEGIN,END,a,r,i;
printf("Input two edge numbers of a range(like a b ,a<b):\n");
scanf("%d%d",&BEGIN,&END);
printf("GOLDBACH'S CONJECTURE:\n");
printf("Every even number n>=4 is the sum of two primes.\n");
a=BEGIN%2?BEGIN+1:BEGIN;
for (;a<=END;){
for (i=2;2*i<=a;){
if(judge(i)){
r=a-i;
if(judge(r))printf("%d=%d+%d\n",a,i,r);
}
if(judge(r))break;
i++;
}
a+=2;
}
return 0;
}
int judge (int x)
{
int a=2,b;
if (x==2) return 1;
else{ for (;a<x;){
b=x%a;
if (b==0)return 0;
a++;
}
return 1;
}
}
5.选做题
多源文件C程序的建立(如图):
1)创建一个工程
2)删除文件
3)添加文件
4)保存工程或文件
5)编译
6)运行
运行结果如图:
四、实验体会
经过本次实验,我对C语言中函数的应用有了更深的了解,还学到了用递归函数解决问题的一些方法,但还不能完全掌握,对递归的理解不够深入,同时,
我还了解了多文件编译技术,知道了一些基础的多源文件C程序的建立步骤。