计算方法实验5参考
- 格式:doc
- 大小:62.00 KB
- 文档页数:6
数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
实验5-9 电位滴定法测食醋的总酸度实验原理:电位滴定法是以电位的变化为指标进行滴定的一种方法。
测定食醋的总酸度,可以采用电位滴定法进行测定。
所谓总酸度,一般是以乙酸为主的糖分酸、有机酸、无机酸等,包括了全部的酸度。
测定的原理是将试样与一定量的标准碱溶液滴定,根据化学反应的物质平衡及电位变化的规律,求出总酸度。
实验仪器:酸度计、滴定管、量筒、电子天平等。
实验试剂:0.1mol/L NaOH标准溶液、食醋。
实验步骤:1. 用电子天平称取10.0g食醋溶入100mL的烧杯中,加入约50mL的去离子水,振荡均匀。
2. 将试样吸入酸度计中,进行酸度测定,记录下初始电位值。
3. 在试样中用滴定管加入0.1mol/L NaOH标准溶液,不断搅拌,继续加入直至电位发生较大变化,表明试样中的全部酸度被中和完毕。
记录下终点电位值。
4. 计算总酸度。
以食醋中的乙酸为例,由中和反应:CH3COOH + NaOH → CH3COONa + H2O可以看出,每1mol的NaOH可以中和1mol的CH3COOH,而NaOH的摩尔浓度已知,所以可以通过滴定体积求出CH3COOH的摩尔数,从而计算出食醋的总酸度。
总酸度(g/L)=(NaOH滴定体积 x NaOH浓度 x 60.05)/ 食醋取样量(g)实验注意事项:1.酸度计应校准好再进行测定。
采用的NaOH标准溶液应精确。
2.实验过程中需注意反应完全。
3.实验设备和试剂等必须保持干燥,避免试剂受到污染。
实验结果:实验结果可根据实验步骤中的计算公式进行计算,得到食醋的总酸度。
实验提示:1.实验中滴定管、量筒等物品的清洗应注意,使用前应清洗干净。
2.使用NaOH标准溶液时,应使用干燥器干燥,避免溶液受到潮气影响。
最新实验5实验报告实验目的:本次实验旨在探究[具体实验主题]的基本原理和应用,通过实际操作加深对[相关科学概念]的理解,并学会使用[相关实验设备或技术]进行科学探究。
实验原理:[在此部分详细描述实验的理论基础,包括涉及的科学概念、公式、定律等。
例如,如果是物理实验,可以解释相关的物理原理和计算方法。
]实验材料:- [实验设备1]- [实验设备2]- [实验设备3]- [其他辅助材料]实验步骤:1. 准备阶段:确保所有实验设备和材料齐全,并按照安全规范进行初步设置。
2. 操作阶段:详细描述实验的具体步骤,包括设备的组装、调试、样品的准备和实验的操作流程。
3. 数据收集:记录实验过程中的所有关键数据和观察结果。
4. 结果分析:对收集到的数据进行整理和分析,使用适当的图表或计算方法来展示结果。
5. 结论总结:根据实验结果,得出结论并讨论其与理论预期的一致性或差异。
实验结果:[在此部分展示实验数据和结果,可以使用图表、曲线等形式来直观地呈现。
]实验讨论:- 分析实验结果与预期的差异及其可能的原因。
- 探讨实验过程中遇到的问题和解决方案。
- 讨论实验结果对相关领域的潜在影响和应用前景。
实验结论:[总结实验的主要发现,以及这些发现对理解相关科学概念和技术发展的意义。
]建议与反思:- 对实验方法或过程提出改进建议。
- 反思实验过程中的学习经验,包括成功的做法和需要改进的地方。
参考文献:- [列出实验报告中引用的所有文献和资料来源。
]附录:- [包括实验过程中的额外数据、计算过程、图表等补充材料。
]。
日期实验报告实验5 C++函数、重载与函数模板应用 姓名学号•实验目的(1) 学习函数定义、调用、参数对应关系及传递方法。
(2) 学习重载的定义与应用。
C3)学习函数模板的定义与应用。
• 实验项目1 (项目1:学号lab3_l )⑴编写求2整数m 、n 最大公约数gcd ()和最小公倍数Lcm ()函数;⑵主程 序键盘输入2整数a 、b 作为分数的分子和分母,以a/b 形式输出显示,调 用gcd ()函数做化简运算,再输出显示2整数a 、b 的最大公约数、最小公 倍数和化简后的分式a'/b'。
主程序可重复计算运行。
•实验方法最大公约数(辗转算法):设m>n,⑴k=m%n,若k=0,则n 为最大公约 数;⑵否则,用n 做被除数,k 做除数,回⑴处循环继续。
最小公倍数 1cm : lcmXgcd=mXn, lcm=mXn/gcd•程序代码 ttinclude <iostream> using namespace std; int gcd (int m, int n){ int t;if(m<n) {t=m ;m=n;n=t;} do {t=m%n;m=n;n=t;}while(t!=0);return m; }C++程序设计语言int lcm(int m, int n){ int t;t二m1n/gcd (m, n);return t;}int main (){return 0;•实验结果•结果分析与收获T middl(T a, T b, T c){ T temp;if (b>a) {temp=a;a=b;b=temp;}if(c>a) {temp=a;a=c;c=temp;} if (b>c) return b;else return c;}1 实验项目2(项目2名:学号lab3_2)编写函数模板mid(),用于从3个数据同类型(整/单/双精度数/字符)数据中返回中间数。
实验五绪论--误差分析【实验目的】1、了解数值计算中的误差种类,及避免误差危害的几种手段,2、深刻体会”数学上恒等,数值上不一定恒等”的含义3、为本课程的学习准备良好的数值思想【实验内容】1、误差的来源与分类2、数值计算中避免误差危害的若干方法3、数值实验举例4、根据要求,完成实验报告中的内容【实验指导】1)误差的来源与分类误差的来源是多方面的,通常误差主要由以下4个方面的因素引起:⑴模型误差vModeling Error )------ 把实际问题向数学问题转化的过程中,忽略了一些对问题影响不是很大的因素,我们称这种忽略了的因素为模型误差;b5E2RGbCAP(2)观测误差vMeasurement Error)------ 在一般的数学模型中,往往含有比较多的参数,而这些参数的值一般都需要通过观测得到,而观测得到的结果由于受到观测设备、观测方法等因素的影响往往都有误差,我们称这种由于观测引起的误差为观测误差。
p1Ea nqFDPw(3)截断误差<Truncation Error )------ 当我们不能得到数学模型的精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差。
例如:在计算机上直接使用公式计算时,会出现无穷过程的计算,不能在有限时间内得到需要的结果,因此,Lrl通常需要将上述无穷过程近似为有穷过程:—,由此可以得到近似的计算结果,这样用数值方法中的有穷过程替代数学模型中的无限过程时,就会产生上述截断误差。
截断误差又称为方法误差。
DXDiTa9E3d(4)舍入误差<Roundof Error )------ 由于计算机的字长有限,在使用计算机进行数据处理时,计算机表示的数据或计算结果会与原始数据或理论上的计算结果有差异,这种误差就是舍入误差。
比如说,在计算机上表示时,只能表示成二的形式,这里与的误差就是舍入误差。
RTCrpUDGiT由于误差是不可避免的,我们只能尽可能的减少它对计算结果的影响。
五. 讨论分析当初始值选取离零点较远时将导致算法无法使用,例如第三题,将初始值改为2就无法计算出结果了,显示如下例如求020sin 35=-+-x x e x 的根,其中控制精度1010-=eps ,最大迭代次数40=M ,在steffensen 加速迭代方法的程序中,我们只需改动:it_max=40; ep=1e-10, 其余不变 。
利用以上程序,我们只需输入:phi=inline('exp(5*x)-sin(x)+(x)^3-20');[x_star,index,it]=steffensen(phi,0.5)可得:x_star = 0.637246094753909index = 0it = 41观察上述结果,index = 0,it = 41表明迭代失败,所以使用以上方法估计的时候,应该尽量估计出解的范围,偏离不应过大,距离增加迭代次数增加,也有可能迭代失败六. 改进实验建议根据上述分析,我认为,应该先对函数作一个简图,方便知道解的大概位置,然后我们才将这个大概值代入Newton 法或者Steffensen 中进行求解。
当然,我们可以用其他数学软件实现Newton 迭代法,我们可以用z-z 超级画板,其操作流程为:牛顿迭代法的公式是:x n+1=x n-f(x n)/f'(x n)。
下面我们就用牛顿迭代法设计程序求方程f(x)=ln(x)+2*x-6的近似解。
(一)观察方程f(x)=0的零点位置(1)显示坐标系的坐标刻度。
(2)作出函数y=ln(x)+2*x-6的图像,如下图所示:可以观察到方程的根在区间[2,3]上,我们可以设定近似解的初始值为2。
(二)设计求方程近似解的程序(1)在程序工作区中输入:f(x){ln(x)+2*x-6;}执行后,返回结果为:>> f(x) #这表示在计算机已经完成了函数f(x)的定义。
(2)定义f(x)的导函数g(x),在程序工作区中输入:Diff(f(x),x);执行后,返回结果为:>> 2+1/x #得到了f(x)的导函数。
数值计算方法实验报告5―温度分布的曲线拟合本报告是关于温度分布的曲线拟合的,望对大家有所帮助!!!数值计算方法实验报告标题:温度分布的曲线拟合1.实验描述:在科学技术工程和实验中,经常需要从大量的实验数据中寻找拟合曲线,最简单的是一维情形(一元函数),此时数据的形式为x和y坐标的有序对,如:(x1,y1),...,(xN,yN),这里的横坐标{x}是明确的。
数值计算方法的目的之一是求解一个将自变量与因变量联系起来的拟合函数。
求解拟合函数的方法有多种,常见的方法有:线性最小二乘拟合、多项式拟合(最小二乘抛物线拟合)、样条插值拟合(三次样条拟合)、三角多项式拟合、贝塞尔曲线拟合这五种方法。
本次实验分别利用上述五种方法对一组温度数据进行拟合,通过拟合的结果比较这五种方法的优缺点(主要考虑误差)。
2.实验内容:已知某地区一天的温度数据如下:时间,p.m***-**********午夜***-********-********-*****温度时间,a.m***-**********正午***-********-********-*****温度分别利用:线性最小二乘拟合、多项式拟合(最小二乘抛物线拟合)、样条插值拟合(三次样条拟合)、三角多项式拟合、贝塞尔曲线拟合这五种方法对这组温度数据进行拟合,通过拟合的结果比较这五种方法的优缺点。
3.实验原理及分析:本报告是关于温度分布的曲线拟合的,望对大家有所帮助!!!①线性最小二乘拟合法:设{(x,y)}有N个点,其中横坐标{x}是确定的。
最小二乘拟合曲线为:kkk=1kk=1y=Ax+B,其系数满足如下正规方程:(∑x)A+(∑xk)B=∑xkyk 2kNNNNNk=1k=1(∑xk)A+NB=∑yk k=1k=1N解得:A=N∑xk=1Nk=1Nkyk Nxy2k∑xkNxN2=∑(xNNkx)(yk y),B=y Axk∑(xk=1kx)2其中:x=∑xk=1N,y=∑yk=1N线性最小二乘法的本质是:多元函数(均方根误差函数)求极值问题。
实验五 MATLAB 数值计算一、实验目的1.掌握求数值导数和数值积分的方法。
2.掌握代数方程数值求解的方法。
3.掌握常微分方程数值求解的方法。
二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。
三、实验内容1.线性系统方程:分别使用左除(\)和求逆(inv )求解下面系统方程的解:⎪⎩⎪⎨⎧=+=+=++377251463c b b a c b a2. 数值积分:使用quad 和trapz 求解⎰-503/dx xe x 的数值积分,并与其解析解9243/5+--e 相比较;3. 请完成教材P154页中实验指导环节的实验内容第2题4. 请完成教材P155页中思考练习的第3题(1),并绘制解在该求解区间(即[0,5])上的图像;。
5、请完成教材P164页实验指导环节的实验内容第5题。
(提示:该函数的符号导数,可以通过函数diff 求得。
首先定义符号变表达式,如求sin(x)的一阶符号导数,可以先定义f=’sin(x)’;df=diff(f);可求得df=cos(x)。
其中df 即为函数f 的一阶符号导数)。
四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。
6.实验结果及结果分析实验结果要求必须客观,现象。
结果分析是对实验结果的理论评判。
7.实验中出现的问题及解决方法8. 思考题的回答五、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: *******************(网络工程101提交作业邮箱):E_mail: *******************(注意网络班的M是大写的)下一次课前提交,过期不收!六、参考文献参考教材和Matlab帮助文件。
理学院《计算方法》实验指导书适合专业:信息与计算科学数学与应用数学贵州大学二OO七年八月前言《计算机数值计算方法》包括很多常用的近似计算的处理手段和算法,是计算科学与技术专业的必修课程,为了加强学生对该门课程的理解,使学生更好地掌握书中的计算方法、编制程序的能力,学习计算方法课程必须重视实验环节,即独立编写出程序,独立上机调试程序,必须保证有足够的上机实验时间。
在多年教学实践基础上编写了《计算机数值计算方法》上机实习指南,目的是通过上机实践,使学生能对教学内容加深理解,同时培养学生动手的能力.本实习指南,可与《计算机数值计算方法》课本配套使用,但是又有独立性,它不具体依赖哪本教科书,主要的计算方法在本指南中都有,因此,凡学习计算方法课的学生都可以参考本指南进行上机实习。
上机结束后,按要求整理出实验报告。
实验报告的内容参阅《计算机数值计算方法》上机实验大纲。
目录第一章解线性方程组的直接法实验一 Gauss列主元素消去法实验二解三对角线性方程组的追赶法第二章插值法与最小二乘法实验三 lagrange插值法实验四分段插值法实验五 曲线拟合的最小二乘法第三章 数值积分实验六 复合求积法实验七 变步长法第四章 常微分方程数值解法实验八 Euler 方法第五章 解线性方程组和非线性方程的迭代法实验九 Jacobi 迭代法、Gauss-Seidel 迭代法实验十 Newton 迭代法实验一 : Gauss 列主元素消去法实验学时:2实验类型:验证实验要求:必修一、实验目的用gauss 消去法求线性方程组AX=b. 其中一、 实验内容二、 实验条件PC 机,tc2.0,Internet 网。
三、 实验步骤1.根据算法事先写出相应程序。
2.启动PC 机,进入tc 集成环境,输入代码。
3.编译调试。
4. 调试通过,计算出正确结果后。
实验二 解三对角线性方程组的追赶法⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=b b b x x x a a a a a a a a a n n nn n n n n b X A M M 2122122221112111....................................实验学时:2实验类型:验证实验要求:必修一、实验目的二、实验内容三、实验组织远行要求统一进行实验,一人一组四、实验条件PC机,tc2.0,Internet网五、实验步骤a)根据算法事先写出相应程序。
丁丽娟《数值计算方法》五章课后实验题答案(源程序都是自己写的,很详细,且保证运行无误)我做的五章数值实验作业题目如下:第二章:1、2、3、4题第三章:1、2题第四章:1、2题第六章:2、3题第八章:1、2题第二章1:(1)对A进行列主元素三角分解:function [l u]=myfun(A)n=size(A);for k=1:nfor i=k:nsum=0;m=k;for j=1:(k-1)sum=sum+A(i,j)*A(j,k);ends(i)=A(i,k)-sum;if abs(s(m))<abs(s(i))m=i;endendfor j=1:nc=A(m,j);A(m,j)=A(k,j);A(k,j)=c;endfor j=k:nsum=0;for r=1:(k-1)sum=sum+A(k,r)*A(r,j);endu(k,j)=A(k,j)-sum;A(k,j)=u(k,j);endfor i=1:nl(i,i)=1;endfor i=(k+1):nsum=0;for r=1:(k-1)sum=sum+A(i,r)*u(r,k);endl(i,k)=(A(i,k)-sum)/u(k,k);A(i,k)=l(i,k);endend求A的列主元素三角分解:>>A=[1 1 1 1 1;1 2 3 4 5;1 3 6 10 15;1 4 10 20 35;1 5 15 35 70]; >>[L,U]=myfun(A)结果:L =1.0000 0 0 0 01.0000 1.0000 0 0 01.0000 0.5000 1.0000 0 01.0000 0.7500 0.7500 1.0000 01.0000 0.2500 0.7500 -1.0000 1.0000U =1.0000 1.0000 1.0000 1.0000 1.00000 4.0000 14.0000 34.0000 69.00000 0 -2.0000 -8.0000 -20.50000 0 0 -0.5000 -2.37500 0 0 0 -0.2500(2)求矩阵的逆矩阵A-1:inv(A)结果为:ans =5 -10 10 -5 1-10 30 -35 19 -410 -35 46 -27 6-5 19 -27 17 -41 -4 6 -4 1(3)检验结果:E=diag([1 1 1 1 1])A\Eans =5 -10 10 -5 1-10 30 -35 19 -410 -35 46 -27 6-5 19 -27 17 -41 -4 6 -4 1 2:程序:function d=myfun(a,b,c,d,n)for i=2:nl(i)=a(i)/b(i-1);a(i)=l(i);u(i)=b(i)-c(i-1)*a(i);b(i)=u(i);y(i)=d(i)-a(i)*d(i-1);d(i)=y(i);endx(n)=d(n)/b(n);d(n)=x(n);for i=(n-1):-1:1x(i)=(d(i)-c(i)*d(i+1))/b(i);d(i)=x(i);end求各段电流量程序:for i=2:8endb=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2];V=220;R=27;d=[V/R 0 0 0 0 0 0 0];n=8;I=myfun(a,b,c,d,n)运行程序得:I =8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.04773:(1)求矩阵A和向量b的matlab程序:function [A b]=myfun(n)for i=1:nX(i)=1+0.1*i;endfor i=1:nfor j=1:nA(i,j)=X(i)^(j-1);endfor i=1:nb(i)=sum(A(i,:));end求n=5时A1,b1及A1的2-条件数程序运行结果如下:n=5;[A1,b1]=myfun(n)A1 =1.0000 1.1000 1.2100 1.3310 1.46411.0000 1.2000 1.4400 1.72802.07361.0000 1.3000 1.69002.1970 2.85611.0000 1.4000 1.96002.74403.84161.0000 1.50002.25003.3750 5.0625 b1 =6.10517.4416 9.0431 10.9456 13.1875cond2=cond(A1,2)cond2 =5.3615e+005求n=10时A2,b2及A2的2-条件数程序运行结果如下:n=10;[A2,b2]=myfun(n)A2 =1.0000 1.1000 1.2100 1.3310 1.4641 1.6105 1.7716 1.94872.1436 2.35791.0000 1.2000 1.4400 1.72802.0736 2.4883 2.98603.58324.29985.15981.0000 1.3000 1.69002.1970 2.85613.71294.8268 6.2749 8.1573 10.60451.0000 1.4000 1.96002.74403.8416 5.3782 7.5295 10.5414 14.7579 20.66101.0000 1.50002.25003.3750 5.0625 7.5938 11.3906 17.0859 25.6289 38.44341.0000 1.60002.5600 4.0960 6.5536 10.4858 16.7772 26.8435 42.9497 68.71951.0000 1.70002.8900 4.9130 8.3521 14.1986 24.1376 41.0339 69.7576 118.58791.0000 1.8000 3.2400 5.8320 10.4976 18.8957 34.0122 61.2220 110.1996 198.35931.0000 1.9000 3.6100 6.8590 13.0321 24.7610 47.0459 89.3872 169.8356 322.68771.00002.0000 4.0000 8.0000 16.0000 32.0000 64.0000 128.0000 256.0000 512.0000b2 =1.0e+003 *0.0159 0.0260 0.0426 0.0698 0.1133 0.1816 0.2866 0.4451 0.6801 1.0230cond2=cond(A2,2)cond2 =8.6823e+011求n=20时A3,b3及A3的2-条件数程序运行结果如下:n=20;[A3,b3]=myfun(n)A3 =1.0e+009 *Columns 1 through 100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000Columns 11 through 200.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0002 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0003 0.0005 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0003 0.0006 0.0013 0.0000 0.0000 0.0000 0.0000 0.0001 0.0001 0.0003 0.0007 0.0015 0.0032 0.0000 0.0000 0.0000 0.0001 0.0001 0.0003 0.0006 0.0014 0.0032 0.0075 0.0000 0.0000 0.0000 0.0001 0.0002 0.0005 0.0012 0.0029 0.0070 0.0167 0.0000 0.0000 0.0001 0.0001 0.0004 0.0009 0.0023 0.0058 0.0146 0.0364 0.0000 0.0000 0.0001 0.0002 0.0006 0.0017 0.0044 0.0113 0.0295 0.0766 0.0000 0.0001 0.0002 0.0004 0.0011 0.0030 0.0080 0.0215 0.0581 0.1570 0.0000 0.0001 0.0002 0.0007 0.0018 0.0051 0.0143 0.0400 0.1119 0.31330.0000 0.0001 0.0004 0.0010 0.0030 0.0086 0.0250 0.0726 0.2105 0.61030.0001 0.0002 0.0005 0.0016 0.0048 0.0143 0.0430 0.1291 0.3874 1.1623b3 =1.0e+009 *Columns 1 through 100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0002 0.0004 0.0010Columns 11 through 200.0025 0.0059 0.0132 0.0287 0.0606 0.1246 0.2494 0.4874 0.9316 1.7434cond2=cond(A3,2)cond2 =3.2395e+022由上述运行结果可知:它们是病态的,而且随着n的增大,矩阵的病态变得严重。
实验五罗拉法测定棉纤维长度纺织纤维的长度是纤维的形态尺寸指标,与纺织加工及纱布质量有密切关系。
棉、毛、麻等天然纤维的长度一般在25-250 mm;化学短纤维则根据需要切成各种长度。
由于各种纤维的长度差异很大,纺纱加工的机台规格和采用的工艺参数也需随之变化。
因此,在商业贸易或工业生产中,纤维长度都是一项必测的品质指标。
长度对产品质量的关系密切,当其他条件不变时,纤维越长,成纱中纤维之间接触面积越大,抱合力越好,纱的强度越高。
特别当纤维的长度长而且长度整齐时,纱的强度、均匀度较好,纱的外表光洁,毛羽少。
长度对纺纱加工的关系也很密切,纤维越长,开松、梳理时纤维越易缠节而产生棉毛粒等疵点。
因此对长纤维必须采用比较缓和的工艺,在后纺加工中,则长纤维纱条强度不高,不易断头,捻系数可相应取得较低,细纱产量高,不易断头,捻系数可相应取得较低,细纱产量高。
纤维短则在前纺加工中成网困难,断头率高,细纱必须采用较高的捻系数,因而细纱机的产量较低。
表示纤维长度的指标很多,按测试仪器和方法而异。
常用的有表示长度集中性的指标如平均长度、主体长度、有效长度和品质长度等。
还有某些长度特性指标如跨越长度等。
平均长度是纤维长度的平均值。
根据测试方法不同,而又可分为根数平均长度、重量加权平均长度以及截面加权平均长度等。
根数平均长度是各根纤维词典之和的平均数。
重量加权平均长度是各组词典的重量加权平均数。
截面积加权平均长度是各组长度的截面积加权平均数。
一般用电容式长度仪测定。
主体长度是纤维试样中数量最多的一部分纤维的长度。
更根据测试方法的不同,又可分为根数主体长度和重量主体长度两类。
根数主体长度指试样中根数最多的一部分纤维的长度。
重量主体长度指试样用分组称重法测定时,得到的重量最重的一组纤维的长度。
品质长度是确定纺纱工艺参数时作为依据的长度。
棉纤维的品质长度一般表示在某一界限以下的纤维重量〔或根数〕占总重量〔或根数〕的百分率。
数值越大,表示质量越差。
实验5标准蓄积量的计算实验5 森林蓄积量的调查与计算1.实验⽬标:森林经理的中⼼内容是编制森林经营⽅案。
编制森林经营⽅案是在森林区划的基础上,进⾏⼆类调查,即把森林资源数据落实到⼩班。
为使学⽣真正掌握⼩班调查的⼀整套技术和实际操作技能,必须通过⼩班调查的实习,以达到应知、应会的⽬的。
2.实验场所:具有⼀定数量林地和林⽊的林场3.实验形式:实习学⽣按⼩班调查需要划分若⼲调查⼩组,每组⼀般按仪器1⼈、前测1⼈、记录1⼈配备。
⼈员分⼯各负其责,由组长详细记载调查⼯作⽇志,样地调查卡、⼩班调查卡填写必须由调查者签名,⽆签名⼀律视为作废。
4.实验备品与材料(1)仪器:罗盘仪、计算机、⾃动改平⾓规、海拔仪、⽣长锥、⼿持罗盘、轮尺(或围尺)、测绳、⽪尺、标杆等。
(2)⽤品、⽤具:三⾓板、量⾓板、铅笔、砍⼑、粉笔、记录板、聚脂薄膜、地形图、森林调查常⽤数表等。
(3)表格:样地调查表、⼩班调查登记表。
5.实验内容与⽅法(1)实验内容①对⼀个林场(或局部)进⾏分层抽样调查,以控制林场(或局部)的总体蓄积量;②对⼩班进⾏调查和记载;③进⾏⼩班蓄积量累计同总体抽样调查蓄积量对⽐,按有关规定修正或重新调查⼩班蓄积。
(2)⽅法步骤:本次实习采⽤⽬测调查与分层抽样相结合的⽅法。
⾸先,在总体(如林场)范围内统⼀布点,然后再进⾏⼩班调查的同时测设样地,最后⽐较两种⽅法即⼩班调查总蓄积和样地调查总蓄积,根据其差值的⼤⼩,再确定各⼩班(计算蓄积的有林地、蔬林地)的蓄积。
由此可见,此法只需1次外业抽样调查和⼩班调查同时进⾏。
①分层抽样调查a确定调查总体范围,求算总体⾯积。
b确定总体⽅案。
确定分层⽅案的原则,其原则为:遵循林业⽣产与科研调查的要求;依据总体内森林结构特征;缩⼩层内⽅差、扩⼤层间⽅差;充分利⽤图⾯材料或航空相⽚判读等原则。
分层因⼦的选择及级距的划分分层⽅案有3因素⽅案(优势树种、龄组、郁闭度)和单因素⽅案(蓄积量)之分。
本次实习,分层抽样的⽬的是控制⼩班调查蓄积,并提供总体调查理论精度。
C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。
例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。
参考答案:includevoid main()double score[30]。
sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。
aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。
算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。
可利用两个下标变量i和XXX。
参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。
i++,j--)//逐一向中,交换。
直到已没有元素没交换t=a[i]。
a[i]=a[j]。
a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。
实验5:线性方程组的数值解法化学工程系分2 安振华2012011837【实验目的】1、掌握线性方程组的常用数值解法,包括高斯消去法、LU分解法以及校正法。
2、体验数值计算的时间复杂度和计算规模的关系。
3、加深对数值计算误差的理解。
4、学习使用迭代法等算法,求解非线性方程。
5、学习如何使用MATLAB解非线性方程组和方程组。
【实验容】【实验五:习题9】种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应保持不变,种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。
种群年龄记作k=1,2,…,n,当年年龄k的种群数量记作x k,繁殖率记作b k(每个雌性个体在1年繁殖的数量),自然存活率记作s k(s k=1-d k,d k为1年的死亡率),收获量记作h k,则来年年龄k的种群数量k x应为:111,(1,2,,1)n k k k k k k k x b x x s x h k n +===-=⋅⋅⋅-∑要求各个年龄的种群数量每年维持不变就是要使(1,2,,)k k x x k n ==⋅⋅⋅(1) 若b k ,s k 已知,给定收获量h k ,建立求各年龄的稳定种群数量x k 的模型(用矩阵向量表示)(2) 设n=5,b 1=b 2=b 5=0,b 3=5,b 4=3,s 1=s 4=0.4,s 2=s 3=0.6,如果要求h 1~h 5为500,400,200,100,100,求x 1~x 5 (3) 要使h 1~h 5均为500,如何达到? 【分析】为方便起见以下种群数量均指其中的雌性。
我们并且有以下的假设:(1)雌性个体的繁殖率和存活率在特定的时间是不变的。
(2)人工饲养的种群在质量和数量上是不受外界环境和资源的限制的。
(3)模型中不考虑人为的或是自然的灾害所造成的种群数量、繁殖率和存活率的变动。
实验五 局部阻力系数测定实验流体在流过局部阻力装置时出现速度的重新分布和漩涡运动,这是产生局部阻力的基本原因。
局部阻力的一般计算公式为:22j 2h 2gυ=ζ。
j h 局部阻力装置水头损失 (m);2ζ 局部阻力系数,绝大部分通过实验确定,它是一个无量纲数。
2υ 局部阻力装置后的平均流速 (m/s);本实验中的局部阻力系数2ζ,是相对于局部阻力装置之后的平均流速而言。
2υ一、实验目的要求:利用本装置的实验管B (见图1),可完成渐扩管和渐缩管等局部阻力装置的局部阻力系数测定实验。
本实验指导书着重介绍渐缩管的局部阻力系数测定的实验原理、方法和步骤。
渐扩管局部阻力系数的测定与渐缩管完全类似,可由学生自己完成实验的设计。
二、实验原理和方法:局部阻力系数测定实验,其基本实验原理为:在局部阻力装置前后的均匀流段选取两个过流断面,对这两个断面间的流体应用总流伯努利方程,方程右端的水头损失由两段均匀流段的沿程水头损失和局部阻力装置的局部水头损失组成,由测量管流中的流量和连续性方程即可求得小直径管和大直径管中的平均流速;由于水平等径管的沿程水头损失即是等径管均匀流段前后测压管的高度差,于是可求得两段均匀流的沿程水头损失。
据此,即可通过伯努利方程求得局部装置的局部阻力系数2ζ。
原理图如5-1所示:图5-1对于上面计算用图,列出1、2两个过流断面间流体的伯努利方程:2211122212f11j p p z z h h g 2g g 2gf 22h ′′−−αυαυ++=+++++ρρ移项整理:22121122j 12f1-1f 2-2p p h (z )(z )((h h g g 2g 2g′′αυαυ=+−++−−+ρρ) 上式中,11p z g +ρ、22p z g+ρ由测压管液位高直接读取;1υ、2υ由实验中测出的流量和管内径、求出;、1d 2d 1α2α根据管流中流体的雷诺数范围确定(参见实验二中的附表)。
回溯法实验
一、实验目的
(1)理解回溯法的思想。
(2)掌握回溯递归原理。
(3)了解回溯法典型问题。
二、实验内容
(1)编写一个简单的程序,解决8皇后问题;
(2)批处理作业调度;
(3)回溯法解决0-1背包问题。
举例:0-1背包问题
问题描述
给定n 种物品和一背包。
物品i 的重量是0i w >,其价值为0i v >,背包的容量为c 。
问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大?
回溯法思想
回溯法就是一种有组织的系统化搜索技术, 可以看作是穷举搜索的改进。
回溯法每次只构造可能解的一部分(深度优先), 然后评估这个部分解, 如果这个部分解有可能导致一个完整解, 则对其进一步构造, 否则, 就不必继续构造这个部分解了。
回溯法常常可以避免搜索所有的可能解。
问题分析
0-1背包问题用回溯法实现就是要枚举其所有的解空间(二叉
树),时间复杂度为(2)n
O左右。
搜索的具体方法如下:
对于每一个物品i,对于该物品只有选与不选2个决策,总共有n个物品,可以顺序依次考虑每个物品,这样就形成了一棵解空间树:
基本思想就是遍历这棵树,以枚举所有情况,最后进行判断,如果重量不超过背包容量,且价值最大的话,该方案就是最后的答案。
利用回溯算法写还可以加入一些优化,进行剪枝,因为很多情况是没有意义的,例如当重量大于背包容量的时候,没有必要对剩下的物品再来决策了。
或者将剩下的所有物品都选取其总价值也没有目前已经求得的方案的价值还大的话,也是可以剪枝的。
时间复杂度估计:(2)n
O;因为物品只有选与不选2个决策,而总共有n个物品,所以时间复杂度为(2)n
O。
源程序
#include<iostream>
using namespace std;
class Knap
{
friend int Knapsack(int p[],int w[],int c,int n );
public:
void print()
{
for(int m=1;m<=n;m++)
{
cout<<bestx[m]<<" ";
}
cout<<endl;
};
private:
int Bound(int i);
void Backtrack(int i);
int c;//背包容量
int n; //物品数
int *w;//物品重量数组
int *p;//物品价值数组
int cw;//当前重量
int cp;//当前价值
int bestp;//当前最优值
int *bestx;//当前最优解
int *x;//当前解
};
int Knap::Bound(int i)
{
//计算上界
int cleft=c-cw;//剩余容量
int b=cp;
//以物品单位重量价值递减序装入物品
while(i<=n&&w[i]<=cleft)
{
cleft-=w[i];
b+=p[i];
i++;
}
//装满背包
if(i<=n)
b+=p[i]/w[i]*cleft;
return b;
}
void Knap::Backtrack(int i)
{
if(i>n)
{
if(bestp<cp)
{
for(int j=1;j<=n;j++)
bestx[j]=x[j];
bestp=cp;
}
return;
}
if(cw+w[i]<=c) //搜索左子树
{
x[i]=1;
cw+=w[i];
cp+=p[i];
Backtrack(i+1);
cw-=w[i];
cp-=p[i];
}
if(Bound(i+1)>bestp)//搜索右子树
{
x[i]=0;
Backtrack(i+1);
}
}
class Object
{
friend int Knapsack(int p[],int w[],int c,int n); public:
int operator<=(Object a)const
{
return (d>=a.d);
}
private:
int ID;
float d;
};
int Knapsack(int p[],int w[],int c,int n) {
//为Knap::Backtrack初始化
int W=0;
int P=0;
int i=1;
Object *Q=new Object[n];
for(i=1;i<=n;i++)
{
Q[i-1].ID=i;
Q[i-1].d=1.0*p[i]/w[i];
P+=p[i];
W+=w[i];
}
if(W<=c)
return P;//装入所有物品
//依物品单位重量排序
float f;
for( i=0;i<n;i++)
for(int j=i;j<n;j++)
{
if(Q[i].d<Q[j].d)
{
f=Q[i].d;
Q[i].d=Q[j].d;
Q[j].d=f;
}
}
Knap K;
K.p = new int[n+1];
K.w = new int[n+1];
K.x = new int[n+1];
K.bestx = new int[n+1];
K.x[0]=0;
K.bestx[0]=0;
for( i=1;i<=n;i++)
{
K.p[i]=p[Q[i-1].ID];
K.w[i]=w[Q[i-1].ID];
}
K.cp=0;
K.cw=0;
K.c=c;
K.n=n;
K.bestp=0;
//回溯搜索
K.Backtrack(1);
K.print();
delete [] Q;
delete [] K.w;
delete [] K.p;
return K.bestp;
}
void main()
{
int *p;
int *w;
int c=0;
int n=0;
int i=0;
cout<<"请输入背包个数:"<<endl;
cin>>n;
p=new int[n+1];
w=new int[n+1];
p[0]=0;
w[0]=0;
cout<<"请输入个背包的价值:"<<endl; for(i=1;i<=n;i++)
cin>>p[i];
cout<<"请输入个背包的重量:"<<endl; for(i=1;i<=n;i++)
cin>>w[i];
cout<<"请输入背包容量:"<<endl;
cin>>c;
cout<<Knapsack(p,w,c,n)<<endl;
}。