数值分析实验误差分析 下载本文

实 验 报 告 课程名称 数值分析实验 实验项目 误差分析 专业班级 姓 名 学 号 指导教师 成 绩 日 期 一、实验目的 1.了解误差分析对数值计算的重要性。 2.掌握避免或减小误差的基本方法。 二、实验设备 安装有C、C++或MATLAB的计算机。 三、实验原理 根据不同的算法,得到的结果的精度是不一样的。 四、实验内容步骤 求方程ax2+bx+c=0的根,其中a=1,b= -(5×108+1),c=5×108 采用如下两种计算方案,在计算机上编程计算,将计算结果记录下来,并分析产生误差的原因。 方案一: ?b?b2?4ac?b?b2?4acx1?x2?2a2a 方案二: cb?sgn(b)b2?4acx?2x1??ax1 2a 要求:编写程序实现该算法;调试程序,检查输出结果。 五、实验结果及分析 比起方案一,方案二更为精确。 六、思考题 思考题:为了防止误差危害现象的产生,以保证计算结果的可靠性,数值运算中应注意哪些原则?试举例说明。 答:数值运算的时候,要注意运算负号的优先级,模糊的时候要加上括号以避免错误。调用函数的时候,要注意类型的对应。 例如调用 pow ( double , double ) 的时候,里面的参数是 double 型的。 七、心得体会及实验改进建议 通过这次的实验,更加清楚调用函数的时候该注意一些小问题,例如数据的类型和调用函数。同时让我更了解分析误差以及如何去缩小误差。 八、实验代码 #include #include void main() { float a=1,b=-(500000000+1),c=500000000,q; float x1,x2,x3,x4; q=b*b-4*a*c; x1=(-b+sqrt(q))/2; }

x2=(-b-sqrt(q))/2; x3=-(b-sqrt(q))/2; x4=c/x1; printf(\printf(\printf(\printf(\佛山科学技术学院 实 验 报 告 课程名称 数值分析实验 实验项目 Lagrange插值 专业班级 09计算机科学与技术2班 姓 名 张国烽 学 号 2009314215 指导教师 成 绩 日 期 一、实验目的 1.掌握利用Lagrange插值法及Newton插值法求函数值并编程实现。 2.程序具有一定的通用性,程序运行时先输入节点的个数n,然后输入各节点的值(xi,yi),最后输入要求的自变量x的值,输出对应的函数值。 二、实验设备 安装有C、C++或MATLAB的计算机。 三、实验原理 1. 插值的基本原理(求解插值问题的基本思路) 构造一个函数y=f(x)通过全部节点,即f(xi)?yi (i=0、1、… n) 再用f(x)计算插值,即y?f(x) 2. 拉格朗日(Lagrange)多项式插值 Lagrange插值多项式: **