《01数值分析实验指导书》由会员分享,可在线阅读,更多相关《01数值分析实验指导书(16页珍藏版)》请在金锄头文库上搜索。
1、数值分析课程实验指导书计算机科学与技术专业06级本科网络工程专业06级本科胡明 龙滩 编写佛山科学技术学院计算机系2008年10月摘 要本实验指导书包含九个上机实验:1.误差分析;2. Lagrange插值;3.高斯消去法解方程组;4. 非线性方程求根;5. 龙贝格算法;6.解线性方程组的迭代法;7.矩阵特征值问题计算;8.常微分初值问题的数值解法;9.最小二乘法。前面三个实验为必开实验,实验学时4学时;后面的实验学生可以根据实验指导书在课外自己学习。通过这些实验,使学生掌握计算机算法设计与分析的实现;同时也是加深对前修课程程序设计语言、数据结构和高等数学的理解,帮助学生提升程序设计及调试的能
2、力。目 录实验一 误差分析 1实验二 Lagrange插值 2实验三 高斯消去法解方程组 3实验四 非线性方程求根 4实验五 龙贝格算法 6实验六 解线性方程组的迭代法 7实验七 矩阵特征值问题计算 9实验八 常微分初值问题的数值解法 11实验九 最小二乘法 13参考文献1李庆扬. 数值分析. 华中科技大学出版社, 误差分析一、实验目的及要求1了解误差分析对数值计算的重要性。2掌握避免或减小误差的基本方法。二、实验设备安装有C、C+或MATLAB的计算机。三、实验原理根据不同的算法,得到的结果的精度是不一样的。四、实验内容及步骤求方程ax2+bx+c=0的根,其中a=1,b= -(5108+1
3、),c=5108采用如下两种计算方案,在计算机上编程计算,将计算结果记录下来,并分析产生误差的原因。方案一: 方案二: 要求:编写程序实现该算法;调试程序,检查输出结果。五、实验报告内容1二次方程求根二种计算方案的公式、源程序、计算结果、结果分析。2思考题:为了防止误差危害现象的产生,以保证计算结果的可靠性,数值运算中应注意哪些原则?试举例说明。实验二 Lagrange插值一、实验目的及要求1掌握利用Lagrange插值法及Newton插值法求函数值并编程实现。2程序具有一定的通用性,程序运行时先输入节点的个数n,然后输入各节点的值(),最后输入要求的自变量x的值,输出对应的函数值。二、实验设
4、备和实验环境安装有C、C+或MATLAB的计算机。三、算法描述1 插值的基本原理(求解插值问题的基本思路)构造一个函数y=f(x)通过全部节点,即 (i=0、1、 n)再用f(x)计算插值,即2 拉格朗日(Lagrange)多项式插值Lagrange插值多项式:3牛顿(Newton)插值公式五、实验内容1给定,构造Lagrange插值函数计算。2已知4个点的函数值如下表,用Newton插值法求x=0.596时的函数值。i0123xi0.400.550.650.80yi0.410750.578150.696750.88811六、实验报告内容实验报告应包括以下几个部分:计算方案的公式、源程序、计算
5、结果、结果分析。实验三 高斯消去法解方程组一、实验目的及要求1掌握求解线性方程组的高斯消去法-列选主元在计算机上的算法实现。2程序具有一定的通用性,程序运行时先输入一个数n表示方程含有的未知数个数,然后输入每个线性方程的系数和常数,求出线性方程组的解。二、实验设备和实验环境安装有C、C+或MATLAB的计算机。三、算法描述1高斯消去法基本思路设有方程组,设是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵,将其中的变换成一个上三角矩阵,然后求解这个三角形方程组。2列主元高斯消去法计算步骤 将方程组用增广矩阵表示。步骤1:消元过程,对(1) 选主元,找使得(2) 如果,
6、则矩阵奇异,程序结束;否则执行(3)。(3) 如果,则交换第行与第行对应元素位置,。(4) 消元,对,计算对,计算步骤 2:回代过程:(1) 若则矩阵奇异,程序结束;否则执行(2)。(2) 对,计算四、实验内容利用列选主元高斯消去法求解线性方程组实验四 非线性方程求根一、实验目的1掌握二分法、牛顿迭代法等常用的非线性方程迭代算法;2培养编程与上机调试能力。二、实验要求1用C语言设计出二分法和牛顿法的程序,并且选择不同的初值,观察所需的迭代次数和迭代结果。2分析二分法和牛顿法在非线性方程求根中的优缺点和收敛速度,二分法简单易行,但只有线性收敛,且仅限于求实根;牛顿法也是一种简单的迭代法,具有二阶
7、收敛速度(在单根邻近处)的特点,但对初值的选择比较苛刻,否则可能不收敛。三、算法步骤1二分法计算f(x)=0的二分法如下: 输入求根取间a,b和误差控制量,定义函数f(x)。 如果 ,转;否则退出选用其它求根方法 当|a-b|时,计算中点x=(a+b)/2以及f(x)的值; 分情况处理 :停止计算,转:修正区间 :修正区间 输出近似根2牛顿迭代法给定初始值,为根的容许误差,为的容许误差,N为迭代次数的容许值。 如果或迭代次数大于N,则算法失败,结束;否则执行 计算 若或,则输出,程序结束;否则执行 令,转向四、实验内容1.用二分法求方程在区间1.0,1.5内的一个实根,要求精确到小数点后2位。
8、2.用牛顿迭代法求方程在1.5 附近的一个实根。五、思考题1何为二分法和迭代法?2怎样比较迭代法收敛的快慢?何为收敛阶数?六、实验报告实验报告应包括以下几个部分:计算方案的算法、源程序、计算结果、思考题。实验五 龙贝格算法一、实验目的1掌握龙贝格算法的基本思路和迭代步骤;2培养编程与上机调试能力。二、 算法描述1龙贝格算法基本思路龙贝格算法利用外推法,提高了计算精度,加快了收敛速度。 对每一个从2做到,一直做到小于给定的精度是停止计算。其中(复化梯度求积公式),2龙贝格算法计算步骤步骤1:输入区间端点,精度控制值,循环次数,定义函数,取, 步骤2:for to 步骤3:数据积分近似值。三、实验
9、内容用龙贝格算法计算:实验六 解线性方程组的迭代法一、实验目的1掌握解线性方程组的雅可比迭代和高斯-塞德尔迭代算法;2培养编程与上机调试能力.二、算法步骤1迭代法的基本思想根据方程组设计出一个迭代公式,然后将任意选取的一初始向量代入迭代公式,求出,再以代入同一迭代公式,求出,如此反复进行,得到向量序列.当收敛时,其极限即为原方程组的解.2雅可比(Jacobi)迭代法解方程组设方程组的系数矩阵对角线元素,为最大迭代次数,为容许误差. 雅可比(Jacobi)迭代法解方程组算法步骤如下: 取初始向量,令. 对,计算 . 如果,则输出,结束;否则执行 如果,则不收敛,终止程序;否则,转3高斯-塞德尔(
10、Gauss-Seidel)迭代法在雅可比(Jacobi)迭代法中,如果当新的分量求出后,马上用它来代替旧的分量,则可能会更快地接近方程组的准确解.基于这种设想构造的迭代公式称为高斯-塞德尔(Gauss-Seidel)迭代法. 算法可相应地从雅可比(Jacobi)迭代法改造得到.三、实验题目及参考结果应用雅可比迭代和高斯-塞德尔迭代算法解线性方程组参考结果:雅可比迭代法迭代次数20次,结果如下:四、实验要求 1选择一种计算机语言设计出雅可比(Jacobi)迭代法的算法程序,并且选择不同的迭代次数,观察输出结果; 2利用Matlab求方程组的解步骤如下: 调用格式: %得到线性方程组的解向量Mat
11、lab6.1环境下操作如下:; %输入系数矩阵; %输入常数项 %方程组求解五、思考:1判别迭代法收敛的充分必要条件及充分条件是什么?2雅可比(Jacobi)迭代法和高斯-塞德尔(Gauss-Seidel)迭代法收敛性的各种判别条件是什么?实验七 矩阵特征值问题计算一、实验目的掌握求矩阵的特征值和主特征向量的幂法;培养编程与上机调试能力.二、幂法算法描述 设有个线性无关的特征向量,而相应的特征值满足,则对任意非零初始向量,按下列公式构造向量序列: 其中表示中模最大的分量并有 ,幂法求矩阵的特征值和主特征向量步骤如下:任给维初始向量;按计算;若从某个数以后分量之比 (常数)()则,而即是与对应的
12、一个近似特征向量.三、实验题目:题目已知矩阵 ,计算该矩阵主特征值和相应的特征向量.参考结果主特征值为6;相应的特征向量为四、实验要求(1) 选择一种计算机语言设计出幂法求主特征值和相应特征向量的程序,并且选择不同的初值,观察所需的迭代次数和迭代结果.(2) 利用Matlab求特征值和特征向量 调用格式1: eig(A) %得到特征值列向量调用格式2:,其中为由特征列向量构成的方阵,为由特征值构成的对角阵. %得到特征值和所对应的特征向量 Matlab6.1环境下操作如下: A=4 -1 1;-1 3 -2 ;1 -2 3; %输入矩阵A D,X=eig(A) %求矩阵特征值和对应的特征向量五、思考幂法收敛速度取决于什么?怎样加速收敛?实验八 常微分初值问题的数值解法一、实验目的掌握常微分方程数值解的常用算法;培养编程与上机调试能力.二、算法描述1改进欧拉法 求解 对给定的,用改进的欧拉公式求解常微分方程初值问题的解. 2四阶龙格-库塔法 对