您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 数值分析实验一误差的影响
内江师范学院数值分析实验报告册编制张莉审定牟廉明专业:班级:级班学号:姓名:数学与信息科学学院2013年9月说明一、学生在做实验之前必须要准备实验,主要包括预习与本次实验相关的理论知识,熟练与本次实验相关的软件操作,收集整理相关的实验参考资料,要求学生在做实验时能带上充足的参考资料;若准备不充分,则学生不得参加本次实验,不得书写实验报告;二、要求学生要认真做实验,主要是指不得迟到、早退和旷课,在做实验过程中要严格遵守实验室规章制度,认真完成实验内容,极积主动地向实验教师提问等;三、各个实验按照学生水平分别设置了A、B、C、D四个等级,其中对应的难度系数为1、0.8、0.7、0.6,也可根据实际完成情况制定相应地的难度系数,但总体保证难度排序为A级难度最大,B级次之,C级较易,D级最简单。四、学生可以根据自己对各个实验涉及到的知识点掌握的程度自由选取A、B、C、D等级的实验题目。五、学生要认真工整地书写实验报告,实验报告的内容要紧扣实验的要求和目的,不得抄袭他人的实验报告;四、根据实验准备、实验态度、实验报告的书写、实验报告的内容进行综合评定,并给出实验成绩评定分。1实验名称:实验一误差的影响指导教师:吴开腾张莉实验时数:4实验设备:安装了Matlab、C++、VF软件的计算机实验日期:2013年9月25日实验地点:第五教学楼北902实验目的:掌握舍入误差的概念,理解数值稳定性。实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2.需要一台准备安装WindowsXPProfessional操作系统和装有数学软件的计算机。实验内容及要求A题已知一元二次方程20axbxc的两个实根2142bbacxa,2242bbacxa,试编写当24bac时求两个实根的算法程序,并用该程序计算二次方程25610xx的两个根,使它至少具有4位有效数字。B题舍入误差在数值计算中是一个很重要的概念,在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果,因此,选取数值稳定性的算法,在数值计算中是十分重要的。对0,1,2,,20n计算定积分110dnxnyxex分别采用下面两个递推公式进行计算,并比较实验结果分析出哪个算法是稳定,并给出具体原因。递推公式(1)11(1,2,,20)nnynyn;递推公式(2)11(20,19,,1)nnyynn。C题序列ny满足递推关系012101(1,2,)nnyyyn,若取021.41y作近似计算,问计算到10y时误差有多大?这个计算过程稳定吗?D题用下列两种方法计算5e的近似值,问哪种方法能提供较好的近似值?(1)95*105(1)!iiiexi;(2)951*205()!iiexi。说明:实验过程应包括对问题的简要分析、求解方法、求解步骤、程序及其必要的图表等内容。2实验过程:A题实验过程一、问题分析本文是针对一元二次方程的解的问题,在本问中的是根据判断方程的关系来进行求解。满足24bac时继续运用一元二次方程的求根公式时会出现大数吃小数的情况,这样就会有一个解就是错误的,但是其中有一个数是正确的。这样在解决此问题时就需要找到那个正确的解,然后运用维达定理求得另一个解。这样就可以避免大数吃小数的情况。二、问题求解方法此问题中的求解方法,就是找到一个正确的解,然后运用维达定理得到另一个解。寻找正确的解的方法:根据系数b的正负可以判断出用求根公式得到的正确解。○1、0b,正确的解为2142bbacxa○2、0b,正确的解为2242bbacxa在用以上方法求得正确的解后,运用维达定理求解得另一个解。三、求解流程和代码求解流程示意图如下:四、结果及解释根据以上的程序输入:[1-561],可以得到其误差为0.173125402902485*e-014,可以得到其精度在有输入一元二次方程系数矩阵符号函数?根据2142bebacxa得一个正确的解1x12/xxba得2x运算结束3效数字为4位的范围内,则可知此算法是有效的。其所给的方程25610xx的解用此算法得到的结果为0.0178628407335566、55.9821371592664。B题的实验过程一、实验中问题的重述舍入误差在数值计算中是一个很重要的概念,在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果,因此,选取数值稳定性的算法,在数值计算中是十分重要的。对定积分110dnxnyxex分别采用递推公式11(1,2,,20)nnynyn和递推公式11(20,19,,1)nnyynn进行计算,并比较实验结果分析出哪个算法是稳定,给出原因。二、对实验的分析2.1对软件的选择对于此题来说,利用Matlab10.0软件编程计算。2.2对算法是否稳定的分析首先,计算两个算法的相对误差值。通过比较相对误差的大小,确定两算法的优劣。然后,通过作图观察其偏差的波动幅度。观察当n分别取1至20的整数时,误差是否稳定在0的附近,来判断算法一、二的稳定性。2.3对结果呈现的分析通过表格,再现出当n分别取1至20的整数时,各个理论值,各个实际值一,各个实际值二,各个实际值一与理论值的偏差以及各个实际值二与理论值的偏差。通过作图,再现出偏差的走势。三、实验求解过程(程序见附录)首先,利用int函数,求出当n分别取1至20的整数时该定积分的理论值。然后,利用递推公式一的算法,计算出当n分别取1至20的整数时的实际值一。并利用plot函数,绘制出结果一的散点图。其次,利用递推公式二的算法,计算出当n分别取1至20的整数时的实际值二。并利用plot函数,绘制出结果二的散点图。再次,利用公式201201][kkkkkiie(理论值))(实际值(理论值)(其中i=1、2表示利用递推公式一、二的算法),计算出利用两个算法的相对误差值。最后,画出当n分别取1至20的整数时,利用递推公式一、二得到的结果与定积分理论值的差值的散点图。4四、实验求解结果利用Matlab10.0软件编程计算。于是得到以下结果:表1求解结果表n的取值利用定积分得到理论值利用公式一得到的实际值一利用公式二得到的实际值二公式一与积分的对应差值公式二与积分的对应差值10.3678790.3678790.3678790020.2642410.2642410.2642410030.2072770.2072770.2072778.32667E-172.77556E-1740.1708930.1708930.170893-3.05311E-16-2.77556E-1750.1455330.1455330.1455331.4988E-152.77556E-1760.1268020.1268020.126802-8.9373E-15070.1123840.1123840.1123846.26443E-14080.1009320.1009320.100932-5.01127E-13090.0916120.0916120.0916124.51014E-120100.0838770.0838770.083877-4.51015E-110110.0773520.0773520.0773524.96116E-100120.0717730.0717730.071773-5.95339E-091.38778E-17130.0669480.0669480.0669487.73941E-080140.0627320.0627310.062732-1.08352E-060150.0590180.0590340.0590181.62528E-050160.0557190.0554590.055719-0.0002600440170.0527710.0571920.0527710.0044207516.93889E-18180.05012-0.029450.05012-0.0795735260190.0477231.559620.0477231.5118969880200.045545-30.19240.045545-30.237939770为了直观的观察出两种算法的稳定性,利用Matlab10.0软件绘出以下结果散点图:02468101214161820-35-30-25-20-15-10-505利用递推公式一计算与定积分值的结果散点图n的取值定积分公式一图1递推公式一与定积分的结果散点图0246810121416182000.050.10.150.20.250.30.350.4利用递推公式二计算与定积分值的结果散点图n的取值定积分公式二图2递推公式二与定积分的结果散点图5并且得到分别利用两种递推公式计算时,递推公式一、二与定积分理论值的结果相对误差值见下表2,递推公式一、二与定积分理论值偏差的走势图见下图3:表2误差值表利用递推公式一计算时产生的相对误差值利用递推公式二计算时产生的相对误差值4.4078e+0054.9304e-03202468101214161820-35-30-25-20-15-10-505n的取值公式一公式二图3利用递推公式时的误差走势图五、实验结果解释通过表1可以看出:利用递推公式一时,在n13时,其结果与定积分理论值的偏差就越来越大。而利用递推公式二时,其结果与定积分理论值都几乎相同。通过图1、2可以明显看出:利用递推公式一时,在n取18、19、20时,其结果与定积分理论值的偏差很大。而利用递推公式二时,其结果与定积分理论值都几乎相同。通过表2可以看出:4.4078e+005(利用递推公式一计算时产生的相对误差值)4.9304e-032(利用递推公式二计算时产生的相对误差值),因此算法二更优。通过图3可以看出:利用递推公式一计算时不稳定。利用递推公式二计算时稳定。因此,得到第二个算法(递推公式二)是稳定的。C题的实验过程一、问题分析该问题主要考察对于一个递推公式,将一个近似值作为其实际值代入此公式进行近似计算。欲求得其近似计算所得的近似值*10y与其实际值10y之间的误差值,可将近似值与实际值都分别代入公式求得*10y与10y,进而运用绝对误差公式求得其绝对误差值。对该计算过程是否稳定的分析,则需考虑该近似计算的绝对误差限。用计算所得的绝对误差值与绝对6误差限进行比较从而得到该计算过程是否稳定的结论。二、求解方法对于序列ny所满足的递推关系012101(1,2,)nnyyyn利用Matlab软件采用迭代的方法将近似值41.1*0y代入求得序列*ny,同理代入实际值20y迭代计算得出实际值所组成的序列ny。利用绝对误差公式计算出*10y与10y之间的相对误差值。通过对该近似计算的分析确定绝对误差限,通过绝对误差值与绝对误差限的比较,得出该计算过程是否稳定的结论。在比较过程中,若绝对误差值绝对误差限,则该计算过程稳定;若绝对误差值绝对误差限,则该计算过程不稳定。三、求解步骤步骤1:确定绝对误差限绝对误差限公式:nmx10*21(其中:m为近似值科学表示法中的10的指数;n为有效数字位数)因为1*010*141.041.1y,且有效数字位数n=3。代入公式得:绝对误差限x=0.005。步骤二:确定绝对误差10(1)求解序列ny及10y通过Matlab中的迭代算法,编写出该递推关系012101(1,2,)nnyyyn的求解程序(见附件中的Matlab程序);将实际值02y作为程序中的初值代入程序进行计算,既可得到序列ny及10y则:1013031024513y(2)求解序列序列ny及*10y将实际值41.1*0y作为程序中的初值代入程序进行计算,既可得到序列*ny及*10y,则:*1012988888889y(3)求解误差值由程序的运算结果即可输出该该算法计算到第十项时所存在绝对误差10为:104
本文标题:数值分析实验一误差的影响
链接地址:https://www.777doc.com/doc-2424390 .html