数值分析实验报告册
数值分析综合实验报告
一、实验目的通过本次综合实验,掌握数值分析中常用的插值方法、方程求根方法以及数值积分方法,了解这些方法在实际问题中的应用,提高数值计算能力。
二、实验内容1. 插值方法(1)拉格朗日插值法:利用已知数据点构造多项式,以逼近未知函数。
(2)牛顿插值法:在拉格朗日插值法的基础上,通过增加基函数,提高逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,通过不断缩小区间来逼近根。
(2)Newton法:利用函数的导数信息,通过迭代逼近根。
(3)不动点迭代法:将方程转化为不动点问题,通过迭代逼近根。
3. 数值积分方法(1)矩形法:将积分区间等分,近似计算函数值的和。
(2)梯形法:将积分区间分成若干等分,用梯形面积近似计算积分。
(3)辛普森法:在梯形法的基础上,将每个小区间再等分,提高逼近精度。
三、实验步骤1. 拉格朗日插值法(1)输入已知数据点,构造拉格朗日插值多项式。
(2)计算插值多项式在未知点的函数值。
2. 牛顿插值法(1)输入已知数据点,构造牛顿插值多项式。
(2)计算插值多项式在未知点的函数值。
3. 方程求根方法(1)输入方程和初始值。
(2)选择求解方法(二分法、Newton法、不动点迭代法)。
(3)迭代计算,直到满足精度要求。
4. 数值积分方法(1)输入被积函数和积分区间。
(2)选择积分方法(矩形法、梯形法、辛普森法)。
(3)计算积分值。
四、实验结果与分析1. 插值方法(1)拉格朗日插值法:通过构造多项式,可以较好地逼近已知数据点。
(2)牛顿插值法:在拉格朗日插值法的基础上,增加了基函数,提高了逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,计算简单,但收敛速度较慢。
(2)Newton法:利用函数的导数信息,收敛速度较快,但可能存在数值不稳定问题。
(3)不动点迭代法:将方程转化为不动点问题,收敛速度较快,但可能存在初始值选择不当的问题。
3. 数值积分方法(1)矩形法:计算简单,但精度较低。
数值分析积分实验报告(3篇)
第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
数值分析实验报告
一、实验目的1. 理解数值分析的基本概念和常用算法;2. 掌握数值方法在求解实际问题中的应用;3. 培养编程能力,提高对数值分析软件的使用熟练度。
二、实验内容本次实验主要涉及以下内容:1. 拉格朗日插值法;2. 牛顿插值法;3. 线性方程组的求解方法;4. 方程求根的数值方法;5. 最小二乘法曲线拟合。
三、实验步骤1. 拉格朗日插值法(1)输入数据:给定一组数据点(x1, y1)、(x2, y2)、...、(xn, yn)。
(2)计算拉格朗日插值多项式L(x)。
(3)利用L(x)计算待求点x0的函数值y0。
2. 牛顿插值法(1)输入数据:给定一组数据点(x1, y1)、(x2, y2)、...、(xn, yn)。
(2)计算牛顿插值多项式N(x)。
(3)利用N(x)计算待求点x0的函数值y0。
3. 线性方程组的求解方法(1)输入数据:给定线性方程组的系数矩阵A和常数向量b。
(2)采用高斯消元法求解线性方程组Ax=b。
4. 方程求根的数值方法(1)输入数据:给定函数f(x)和初始值x0。
(2)采用二分法求解方程f(x)=0的根。
5. 最小二乘法曲线拟合(1)输入数据:给定一组数据点(x1, y1)、(x2, y2)、...、(xn, yn)。
(2)建立线性最小二乘模型y=F(x)。
(3)利用最小二乘法求解模型参数。
四、实验结果与分析1. 拉格朗日插值法与牛顿插值法的比较通过实验,我们发现牛顿插值法的精度高于拉格朗日插值法。
这是因为牛顿插值法在计算过程中考虑了前一项的导数信息,从而提高了插值多项式的平滑性。
2. 线性方程组的求解方法高斯消元法在求解线性方程组时,计算过程较为繁琐,但稳定性较好。
在实际应用中,可根据具体问题选择合适的方法。
3. 方程求根的数值方法二分法在求解方程时,收敛速度较慢,但具有较好的稳定性。
对于初始值的选择,应尽量接近真实根。
4. 最小二乘法曲线拟合最小二乘法在拟合曲线时,误差较小,适用于数据点较多的情况。
数值分析原理实验报告
一、实验目的通过本次实验,掌握数值分析的基本原理和方法,了解数值分析在科学和工程领域的应用,培养动手能力和分析问题的能力。
二、实验内容1. 二分法求方程根(1)原理:二分法是一种在实数域上寻找函数零点的算法。
对于连续函数f(x),如果在区间[a, b]上f(a)f(b)<0,则存在一个根在区间(a, b)内。
二分法的基本思想是将区间[a, b]不断二分,缩小根所在的区间,直到满足精度要求。
(2)实验步骤:① 输入函数f(x)和精度要求;② 初始化区间[a, b]和中间点c=a+(b-a)/2;③ 判断f(c)与f(a)的符号,若符号相同,则将区间缩小为[a, c],否则缩小为[c,b];④ 重复步骤②和③,直到满足精度要求;⑤ 输出根的近似值。
2. 牛顿法求方程根(1)原理:牛顿法是一种在实数域上寻找函数零点的算法。
对于可导函数f(x),如果在点x0附近,f(x0)f'(x0)≠0,则存在一个根在点x0附近。
牛顿法的基本思想是通过泰勒展开近似函数,然后求解近似方程的根。
(2)实验步骤:① 输入函数f(x)和精度要求;② 初始化迭代次数n=0,近似根x0;③ 计算导数f'(x0);④ 求解近似方程x1=x0-f(x0)/f'(x0);⑤ 判断|x1-x0|是否满足精度要求,若满足,则停止迭代;否则,将x0更新为x1,n=n+1,返回步骤③。
3. 雅可比迭代法解线性方程组(1)原理:雅可比迭代法是一种解线性方程组的迭代算法。
对于线性方程组Ax=b,雅可比迭代法的基本思想是利用矩阵A的对角线元素将方程组分解为多个一元线性方程,然后逐个求解。
(2)实验步骤:① 输入系数矩阵A和常数向量b;② 初始化迭代次数n=0,近似解向量x0;③ 计算对角线元素d1, d2, ..., dn;④ 更新近似解向量x1=x0-A/d1, x2=x0-A/d2, ..., xn=x0-A/dn;⑤ 判断|x1-x0|是否满足精度要求,若满足,则停止迭代;否则,将x0更新为x1, x2, ..., xn,n=n+1,返回步骤③。
数值分析实验报告--实验2--插值法
1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。
数值分析实验报告5篇
1.69376699767424 0.92310666706964 0.08471614569741 0.40804026409411
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
讨论:
利用这种方法进行这类实验,可以很精确的扰动敏感性的一般规律。即 当对扰动项的系数越来越小时,对其多项式扰动的结果也就越来越小, 即扰动敏感性与扰动项的系数成正比,扰动项的系数越大,对其根的扰 动敏感性就越明显,当扰动的系数一定时,扰动敏感性与扰动的项的幂 数成正比,扰动的项的幂数越高,对其根的扰动敏感性就越明显。
解线性方程组的直接方法
实验 (主元的选取与算法的稳定性) 问题提出:Gauss消去法是我们在线性代数中已经熟悉的。但由于计算 机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保 Gauss消去法作为数值算法的稳定性呢?Gauss消去法从理论算法到数值 算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它 却是数值分析中十分典型的问题。 实验内容:考虑线性方程组 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的 Gauss消去过程。 实验要求: (1)取矩阵,则方程有解。取n=10计算矩阵的条件数。让程序自动选 取主元,结果如何? (2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最 小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去 过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 (3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析 不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元
数值分析实验报告模板
数值分析实验报告模板篇一:数值分析实验报告(一)(完整)数值分析实验报告12345篇二:数值分析实验报告实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。
本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。
利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。
即若x0 偏离所求根较远,Newton法可能发散的结论。
并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。
前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。
掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收敛,但精度不够。
熟悉Matlab语言编程,学习编程要点。
体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。
数学原理:对于一个非线性方程的数值解法很多。
在此介绍两种最常见的方法:二分法和Newton法。
对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk)产生逼近解x*的迭代数列{xk},这就是Newton法的思想。
当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。
另外,若将该迭代公式改进为xk?1?xk?rf(xk) 'f(xk)其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。
程序设计:本实验采用Matlab的M文件编写。
其中待求解的方程写成function的方式,如下function y=f(x);y=-x*x-sin(x);写成如上形式即可,下面给出主程序。
《数值分析》课程实验报告数值分析实验报告
《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期:20__ 年 _ 月_ 日目录实验一函数插值方法 1 实验二函数逼近与曲线拟合 5 实验三数值积分与数值微分 7 实验四线方程组的直接解法 9 实验五解线性方程组的迭代法 15 实验六非线性方程求根 19 实验七矩阵特征值问题计算 21 实验八常微分方程初值问题数值解法 24 实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。
试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
数据如下:(1) 0.4 0.55 0.65 0.80 0.95 1.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
(提示:结果为, )(2) 1 2 3 4 5 6 7 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange多项式,计算的,值。
(提示:结果为, )二、要求 1、利用Lagrange插值公式编写出插值多项式程序;2、给出插值多项式或分段三次插值多项式的表达式;3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;4、对此插值问题用Newton插值多项式其结果如何。
Newton 插值多项式如下:其中:三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;4、如果绘出插值函数的曲线,观察其光滑性。
四、实验步骤(1) 0.4 0.55 0.65 0.80 0.951.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
数值分析实验报告(插值法)
武汉理工大学学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级2010—2010学年第一学期实验课程名称:数值分析第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)用拉格朗日插值法计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(2)利用二次插值计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(3)用艾尔米特插值法计算时,f(x)的插值多项式H5(x)=(1+4*x)*(x-0.5)*(x-0.5)*(x-2)*(x-2)+(3.90807-6.03838*x)*(x-2)*(x-2)*x*x+(2.34573-4.16674*x)*x*x*(x-0.5)*(x-0.5)(4)各插值算法的精度差异比较经过比较,拉格朗日插值法要比牛顿插值法算法的计算量多一些,拉格朗日插值法后一次计算时用到了前一次计算的结果,提高了运算的效率,但拉格朗日插值法在构造艾尔米特插值法时很方便,将坐标点和对应的导数结合起来的精度比线性插值的精度又要高一些。
但从实验数据来看,在坐标不是很多的情况下,已知的点越多精度也就相对较高。
对于实验要求的第二组数据用拉格朗日插值法(或者牛顿插值法)实验结果如下:一下分别是二阶、三阶、四阶、五阶插值得到的结果以上只是实验结果的一部分,改变插值的位置时,得到的实验结果精度也是有所不同的。
由以上结果分析可知,插值次数并不是越多越好,多了反而会让结果更加偏离真实结果,这充分说明了高次插值存在“病态性质”,在已知点很多的情况下应该采用分段低次插值,将拉格朗日插值法和牛顿插值法运用到分段低次插值法当中,这样得到的结果可能胡更加精确。
数值分析实验报告
数值实验题1实验1.1 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。
对数值方法的研究而言,所谓坏问题是指问题本身对扰动敏感,反之属于好问题。
本实验通过对一个高次多项式方程的求解,初步认识病态问题。
实验内容:考虑一个高次的代数多项式201()(1)(2)(20)()k p x x x x x k ==---=-∏ (E.1.1)显然该多项式的全部根为1,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。
现考虑该多项式的一个扰动 19()0p x x ε+=, (E.1.2)其中,ε是一个非常小的数。
这相当于是对方程(E.1.1)中x 19的系数作一个小的扰动。
比较方程(E.1.1)和方程(E.1.2)根的差别,从而分析方程(E.1.1)的解对扰动的敏感性。
实验步骤与结果分析:(一) 实验源程序function t_charpt1_1% 数值实验1.1病态问题% 输入:[0 20]之间的扰动项及小的扰动常数 % 输出:加扰动后得到的全部根 clcresult=inputdlg({'请输入扰动项:在[0 20]之间的整数:'},'charpt 1_1',1,{'19'}); Numb=str2num(char(result));if((Numb>20)|(Numb<0))errordlg('请输入正确的扰动项:[0 20]之间的整数!');return;endresult=inputdlg({'请输入(0 1)之间的扰动常数:'},'charpt 1_1',1,{'0.00001'}); ess=str2num(char(result)); ve=zeros(1,21); ve(21-Numb)=ess;root=roots(poly(1:20)+ve);x0=real(root); y0=imag(root); plot(x0',y0', '*');disp(['对扰动项 ',num2str(Numb),'加扰动',num2str(ess),'得到的全部根为:']); disp(num2str(root));(二)实验结果分析(1)对于x19项的扰动ess,不同的取值对应的结果如下所示。
华工数值分析实验报告
一、实验名称数值分析实验二、实验目的1. 掌握数值分析的基本概念和方法。
2. 理解并应用插值法、数值积分、数值微分、数值解法等数值分析的基本方法。
3. 提高数值计算能力和编程能力。
三、实验内容1. 插值法1.1 拉格朗日插值法1.2 牛顿插值法1.3 线性插值法1.4 拉格朗日插值法与牛顿插值法的比较2. 数值积分2.1 牛顿-科特斯公式2.2 帕普斯公式2.3 比较牛顿-科特斯公式与帕普斯公式的精度3. 数值微分3.1 前向差分法3.2 后向差分法3.3 中点差分法3.4 比较三种差分法的精度4. 数值解法4.1 线性方程组的迭代法4.2 非线性方程的迭代法4.3 比较不同迭代法的收敛速度四、实验步骤1. 插值法1.1 输入插值点的数据,使用拉格朗日插值法计算插值多项式。
1.2 使用牛顿插值法计算插值多项式。
1.3 使用线性插值法计算插值多项式。
1.4 比较三种插值法的精度。
2. 数值积分2.1 输入被积函数和积分区间,使用牛顿-科特斯公式进行数值积分。
2.2 使用帕普斯公式进行数值积分。
2.3 比较两种数值积分方法的精度。
3. 数值微分3.1 输入函数和求导点的数据,使用前向差分法、后向差分法和中点差分法计算导数。
3.2 比较三种差分法的精度。
4. 数值解法4.1 输入线性方程组或非线性方程,使用迭代法求解方程组或方程。
4.2 比较不同迭代法的收敛速度。
五、实验结果与分析1. 插值法通过比较三种插值法的精度,得出以下结论:- 线性插值法精度最低。
- 拉格朗日插值法与牛顿插值法精度较高,但牛顿插值法在计算过程中需要计算多项式的导数,增加了计算量。
2. 数值积分通过比较牛顿-科特斯公式与帕普斯公式的精度,得出以下结论:- 牛顿-科特斯公式精度较高。
- 帕普斯公式精度较低。
3. 数值微分通过比较三种差分法的精度,得出以下结论:- 中点差分法精度最高。
- 后向差分法次之。
- 前向差分法精度最低。
4. 数值解法通过比较不同迭代法的收敛速度,得出以下结论:- 牛顿迭代法收敛速度最快。
数值分析实验报告册
实验名称:Lagrange插值(实验一)实验目的:掌握Lagrange插值数值算法,能够根据给定的函数值表达求出插值多项式和函数在某一点的近似值。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2.需要一台准备安装Windows XP Professional操作系统和装有数学软件的计算机。
实验内容及要求已知数据如下:要求:试用Lagrange插值多项式求0.5626,0.5635,0.5645x 时的函数近似值.实验过程:编写Matlab函数M文件Lagrange如下:function yy=lagrange(x,y,xi)m=length(x); n=length(y);if m~=n,error('向量x与y的长度必须一致');endfor k=1:length(xi)s=0;for i=1:mz=1;for j=1:nif j~=iz=z*(xi(k)-x(j))/(x(i)-x(j));endends=s+z*y(i);endyy=send在命令窗口调用函数M文件lagrange,输出结果如下:>>x=[0.56160, 0.56280, 0.56401, 0.56521];>>y=[0.82741, 0.82659, 0.82577, 0.82495];>>xi=[0.5626, 0.5635, 0.5645];>>yi= lagrange (x,y,xi)yi=0.8628 0.8261 0.8254实验总结(由学生填写):教师对本次实验的评价(下面的表格由教师填写):实验名称:曲线拟合的最小二乘方法(实验二)实验目的:掌握最小二乘方法,并能根据给定数据求其最小二乘一次或二次多项式,然后进行曲线拟合。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有VC++6.0的计算机。
数值分析实验报告
实验报告实验项目名称函数逼近与快速傅里叶变换实验室数学实验室所属课程名称数值逼近____________ 实验类型算法设计____________ 实验日期____________________________实验概述:实验内容:实验二:编写程序实现[-1,1]上n阶勒让德多项式,并作画(n=0,1,…,x=[-1:0.1:1];A=sym2poly(P n);yn=polyval(A,x);plot (x,yn, '-o');hold onendend在comma nd Win dows 中输入命令:Lege ndre (10),得出的结果为:Lege ndre(10)ans =(46189*xM0)/256 - (109395*x A8)/256 + (45045*xW)/128 (15015*x A4)/128 + (3465*xA2)/256 - 63/256并得到Figure,图像如下:X=cos(((21-2*k)*pi)./22); % 这是切比雪夫的零点Y=1./(1+25*X.A2);[C,D]=lagr1(X,Y);x=-1:0.01:1;y=polyval(C,x);plot(x,y,X,Y,'.');grid on;xp=-1:0.01:1;z=1./(1+25*xp.A2);plot(xp,z,'r')得到Figure,图像如下所示:比较后发现,使用切比雪夫零点做拉格朗日插值不会发生龙格现象。
1实验四:对于给定函数f (x) ——2在区间[-1,1]上取X i 0.2i(i =0,1, ,10),1 +25x试求3次曲线拟合,试画出拟合曲线并打印出方程,与第2章计算实习题2的结果比较第2章计算实习题2的结果如下:牛顿插值多项式:_0 5 ____ I_____ I_____ ___________________________ I_____ I _____ I_________ I ”108 -0 6 -04 -0.2 0 0.2 0 4 0 6 0.8 1三次样条多项式:比较下来可知:三次样条的拟合效果最好,其次是牛顿插值多项式,最次是3次曲线拟合。
《数值分析》实验研究报告
《数值分析》实验报告册
姓名:
学号:
专业:
年级:
武汉科技大学理学院
信息与计算科学系
学年第学期
说明:
1、实验目的要写清楚为什么要做这个实验,其目的是什么,做完这个实验要达到什么
结果,实验的注意事项是什么等;
2、实验题目一栏要填写清楚具体的实验题目;
3、实验原理要将实验所涉及的基础理论、算法原理详尽列出;
4、实验内容列出实验的实施方案、步骤、数据准备、算法流程图以及可能用到的实验
设备(硬件和软件);
5、实验结果应包括实验的原始数据、中间结果及最终结果,复杂的结果可用表格或图
形形式实现,较为简单的结果可以与实验结果分析合并出现;
6、实验结果分析要对实验的结果进行认真的分析,进一步明确实验所涉及的算法的优
缺点和使用范围,要求实验结果应能在计算机上实现或演示,由实验者独立编程实现,程序清单以附录的形式给出;
7、报告填写用“宋体”(小四)格式字体。
实验一
实验二
实验三
实验四
1111
4
5335 111⎥⎥⎥
----⎥
⎥
⎥
实验五 14114⎥⎥--⎥⎥-⎦ 55⎥⎥⎥⎥⎦。
《数值分析》实验报告书
N4(0.895) function [y,R]= newcz(X,Y,x,M) x=0.895; M=4; X=[0.4,0.55,0.65,0.8,0.9]; Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1; 运行结果: ans = 1.0194
实验三、解线性方程组的直接法
解线性方程组的直接法是指经过有限步运算后能求得方程组精确解
的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法 也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形, 即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计 算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消 去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算 量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方 程组可靠而有效的常用方法。
Y=[0.82741,0.82659,0.82577,0.82495]; n=length(X); m=length(x); for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0; for j=1:n if j~=k p=p*(z-X(j))/(X(k)-X(j)); end q1=abs(q1*(z-X(j))); c1=c1*j; end s=p*Y(k)+s; end y(i)=s; end R=M.*q1./c1; 运行结果: ans = 0.8261 2. N3(0.596) function [y,R]= newcz(X,Y,x,M) x=0.596; M=3;
数值_分析实验报告
一、实验目的1. 理解数值分析的基本概念和方法;2. 掌握线性方程组的求解方法,如雅可比迭代法、高斯赛德尔迭代法和SOR迭代法;3. 利用MATLAB软件进行数值计算,并分析结果。
二、实验原理1. 数值分析是研究如何用数值方法求解数学问题的学科,其核心是误差分析和算法设计。
2. 线性方程组是数值分析中的基本问题之一,常见的求解方法有直接法和迭代法。
3. 雅可比迭代法、高斯赛德尔迭代法和SOR迭代法是三种常用的迭代法,它们通过迭代过程逐步逼近方程组的解。
4. MATLAB是一种高性能的科学计算软件,具有强大的数值计算和可视化功能。
三、实验内容1. 实验一:雅可比迭代法(1)原理:雅可比迭代法是求解线性方程组的迭代法之一,其基本思想是将线性方程组分解为多个子方程,然后依次求解子方程,逐步逼近方程组的解。
(2)步骤:a. 输入系数矩阵A和常数向量B;b. 初始化迭代变量X0;c. 计算对角矩阵D、上三角矩阵L和下三角矩阵U;d. 进行迭代计算,直到满足精度要求或达到最大迭代次数;e. 输出解向量X。
(3)MATLAB代码实现:```MATLABfunction [X, K] = JACOBI(A, B, X0, E, N)[n, n] = size(A);D = diag(A);L = tril(A - D, -1);U = triu(A - D);K = 0;for i = 1:NX_new = (B - L \ U \ X0) / D;if norm(X_new - X0) < Ebreak;endX0 = X_new;K = K + 1;endX = X_new;end```2. 实验二:高斯赛德尔迭代法(1)原理:高斯赛德尔迭代法是另一种求解线性方程组的迭代法,其基本思想是在每次迭代中,利用已求得的近似解来更新下一个近似解。
(2)步骤:a. 输入系数矩阵A和常数向量B;b. 初始化迭代变量X0;c. 进行迭代计算,直到满足精度要求或达到最大迭代次数;d. 输出解向量X。
数值分析拟合实验报告(3篇)
第1篇一、实验目的本次实验旨在通过数值分析方法对一组已知数据点进行拟合,掌握线性插值、多项式插值、样条插值等方法的基本原理和实现过程,并学会使用MATLAB进行数值拟合。
二、实验内容1. 线性插值线性插值是一种简单的插值方法,适用于数据点分布较为均匀的情况。
其基本原理是通过两个相邻的数据点,利用线性关系拟合出一条直线,然后通过该直线来估算未知的值。
2. 多项式插值多项式插值是一种较为精确的插值方法,通过构造一个多项式函数来逼近已知数据点。
其基本原理是利用最小二乘法求解多项式的系数,使得多项式在已知数据点上的误差最小。
3. 样条插值样条插值是一种更灵活的插值方法,通过构造一系列样条曲线来逼近已知数据点。
其基本原理是利用最小二乘法求解样条曲线的系数,使得样条曲线在已知数据点上的误差最小。
三、实验步骤1. 线性插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`linspace`生成插值点:xi = linspace(1, 5, 100);(3)使用MATLAB内置函数`interp1`进行线性插值:yi = interp1(x, y, xi, 'linear');(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');2. 多项式插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`polyfit`求解多项式系数:p = polyfit(x, y, 3);(3)使用MATLAB内置函数`polyval`进行多项式插值:yi = polyval(p, xi);(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');3. 样条插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`spline`进行样条插值:yi = spline(x, y, xi);(3)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');四、实验结果与分析1. 线性插值线性插值方法简单易行,但精度较低,适用于数据点分布较为均匀的情况。
数值分析实验报告
数值分析实验报告一、实验目的数值分析是一门研究用计算机求解数学问题的数值方法及其理论的学科。
本次实验的目的在于通过实际操作和编程实现,深入理解和掌握数值分析中的常见算法,提高运用数值方法解决实际问题的能力,并对算法的精度、稳定性和效率进行分析和比较。
二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。
实验所依赖的主要库包括 NumPy、Matplotlib 等。
三、实验内容(一)函数逼近与插值1、拉格朗日插值法通过给定的离散数据点,构建拉格朗日插值多项式,对未知点进行函数值的估计。
2、牛顿插值法与拉格朗日插值法类似,但采用了不同的形式和计算方式。
(二)数值积分1、梯形公式将积分区间划分为若干个梯形,通过计算梯形面积之和来近似积分值。
2、辛普森公式基于抛物线拟合的方法,提高积分近似的精度。
(三)线性方程组求解1、高斯消元法通过逐行消元将线性方程组化为上三角形式,然后回代求解。
2、 LU 分解法将系数矩阵分解为下三角矩阵 L 和上三角矩阵 U,然后通过两次前代和回代求解。
(四)非线性方程求解1、二分法通过不断将区间一分为二,逐步缩小根所在的区间,直到满足精度要求。
2、牛顿迭代法利用函数的切线来逼近根,通过迭代逐步收敛到根的近似值。
四、实验步骤(一)函数逼近与插值1、拉格朗日插值法定义计算拉格朗日基函数的函数。
根据给定的数据点和待求点,计算插值多项式的值。
输出插值结果,并与真实值进行比较。
2、牛顿插值法计算差商表。
构建牛顿插值多项式。
进行插值计算和结果分析。
(二)数值积分1、梯形公式定义积分区间和被积函数。
按照梯形公式计算积分近似值。
分析误差。
2、辛普森公式同样定义积分区间和被积函数。
运用辛普森公式计算积分近似值。
比较与梯形公式的精度差异。
(三)线性方程组求解1、高斯消元法输入系数矩阵和右端项向量。
进行消元操作。
回代求解方程。
输出解向量。
2、 LU 分解法对系数矩阵进行 LU 分解。
工程数值分析实验报告(3篇)
第1篇一、实验目的本次实验旨在通过数值分析的方法,对工程实际问题进行建模、求解和分析。
通过学习数值方法的基本原理和算法,提高解决实际工程问题的能力。
二、实验内容1. 线性方程组的求解2. 矩阵特征值与特征向量的计算3. 函数插值与曲线拟合4. 数值微分与积分三、实验步骤1. 线性方程组的求解(1)编写程序实现高斯消元法、克劳斯消元法和列主元素法(2)设计输入界面,用户输入增广矩阵的行和列,填写系数及常数项(3)分别运用三种方法求解线性方程组,比较求解结果的正确性、数值稳定性和计算效率2. 矩阵特征值与特征向量的计算(1)编写程序实现幂法、QR算法和逆幂法(2)设计输入界面,用户输入矩阵的行和列,填写矩阵元素(3)分别运用三种方法计算矩阵的特征值与特征向量,比较求解结果的准确性和计算效率3. 函数插值与曲线拟合(1)编写程序实现拉格朗日插值、牛顿插值和样条插值(2)设计输入界面,用户输入函数的自变量和函数值,选择插值方法(3)分别运用三种方法进行函数插值,比较插值结果的准确性和光滑性4. 数值微分与积分(1)编写程序实现有限差分法、龙格-库塔法和辛普森法(2)设计输入界面,用户输入函数的导数或积分的上下限,选择数值方法(3)分别运用三种方法进行数值微分和积分,比较求解结果的准确性和计算效率四、实验结果与分析1. 线性方程组的求解通过实验,我们发现列主元素法在求解线性方程组时具有较好的数值稳定性,计算效率也较高。
而高斯消元法和克劳斯消元法在处理大型稀疏矩阵时存在一定的困难。
2. 矩阵特征值与特征向量的计算实验结果表明,QR算法和逆幂法在计算矩阵特征值与特征向量时具有较高的准确性和计算效率。
幂法在处理大型稀疏矩阵时表现出较好的性能。
3. 函数插值与曲线拟合在函数插值和曲线拟合实验中,样条插值方法具有较好的准确性和光滑性。
拉格朗日插值和牛顿插值方法在处理简单函数时表现良好,但在处理复杂函数时可能存在精度问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:Lagrange插值(实验一)实验目的:掌握Lagrange插值数值算法,能够根据给定的函数值表达求出插值多项式和函数在某一点的近似值。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2.需要一台准备安装Windows XP Professional操作系统和装有数学软件的计算机。
实验内容及要求已知数据如下:要求:试用Lagrange插值多项式求0.5626,0.5635,0.5645x 时的函数近似值.实验过程:编写Matlab函数M文件Lagrange如下:function yy=lagrange(x,y,xi)m=length(x); n=length(y);if m~=n,error('向量x与y的长度必须一致');endfor k=1:length(xi)s=0;for i=1:mz=1;for j=1:nif j~=iz=z*(xi(k)-x(j))/(x(i)-x(j));endends=s+z*y(i);endyy=send在命令窗口调用函数M文件lagrange,输出结果如下:>>x=[0.56160, 0.56280, 0.56401, 0.56521];>>y=[0.82741, 0.82659, 0.82577, 0.82495];>>xi=[0.5626, 0.5635, 0.5645];>>yi= lagrange (x,y,xi)yi=0.8628 0.8261 0.8254实验总结(由学生填写):教师对本次实验的评价(下面的表格由教师填写):实验名称:曲线拟合的最小二乘方法(实验二)实验目的:掌握最小二乘方法,并能根据给定数据求其最小二乘一次或二次多项式,然后进行曲线拟合。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有VC++6.0的计算机。
实验内容及要求炼钢是个氧化脱碳的过程,钢液含碳量的多少直接影响冶炼时间的长短,下表是某平炉的生产记录,表中i 为实验次数,i x 为全部炉料熔化完毕时钢液的含碳量,i y 为熔化完毕至出钢所需的冶炼时间(以分为单位).将所数据通过图示方法绘在坐标纸上,观察数据点的分布情况,然后进行曲线拟合.实验过程:编写Matlab 命令文件如下: function t=zxecnh(x,y)x=[-1.00 -0.75 -0.50 -0.25 0];y=[-0.2209 0.3295 0.8826 1.4392 2.0003]; syms sumx sumy sumxy sumx2; sumx=0 sumy=0 sumxy=0 sumx2=0 for i=1:5sumx=sumx+x(1,i); sumy=sumy+y(1,i);sumxy=sumxy+(x(1,i))*(y(1,i)); sumx2=sumx2+(x(1,i))*(x(1,i)); end sumx sumy sumxy sumx2b=(sumy*sumx-sumxy*5)/(sumx*sumx-sumx2*5) a=(sumy-b*sumx)/5 scatter(x,y) hold on plot(x,a+b*x)在命令窗口调用函数M 文件zxecnh ,输出结果如下:b = 2.2208 a = 1.9966实验总结(由学生填写): 教师对本次实验的评价(下面的表格由教师填写):实验名称: Romberg 积分法(实验三) 实验目的:掌握Romberg 算法,并能根据给定的精度要求计算定积分。
实验准备:1. 在开始本实验之前,请回顾教科书的相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有VC++6.0的计算机。
实验内容及要求用Romberg 法求函数积分10sin x I dx x=⎰,精度为0.56e -.实验过程:编写函数M文件Romberg 如下:funciton t=Romberg(fname,a,b,e)%Rom %Romberg 法求函数的积分%fname是被积函数,a是上限,b是下限,e为精度(默认1e-4)If nargin<4,e=1e-4;endi=1; j=1; h=b-a;T(i,1)=h/2*(feval(fname,a)+feval(fname,b));T(i+1,1)=T(i,1)/2+sum(feval(fname,a+h/2:h:b-h/2+0.001*h))*h/2;T(i+1,j+1)=4^j*T(i+1,j)/(4^j-1)-T(i,j)/ (4^j-1);while abs(T(i+1,i+1) -T(i,i))>ei=i+1; h=h/2;T(i+1,1)=T(i,1)/2+sum(feval(fname,a+h/2:h:b-h/2+0.001*h))*h/2;For j=1:iT(i+1,j+1)=4^j*T(i+1,j)/(4^j-1)-T(i,j)/ (4^j-1);endendTt=T(i+1,j+1)>>format long;Romberg(inline( 'sin(x)./x'),eps,1,0.5e-6);format short; T=t=0.94608307038722实验总结(由学生填写):教师对本次实验的评价(下面的表格由教师填写):实验名称:常微分方程的差分方法(一、二)(实验四)实验目的:掌握欧拉方法与改进的欧拉方法、三阶、四阶龙格—库塔方法,能够用三阶和四阶经典公式求解微分方程。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2. 需要一台准备安装Windows XP Professional 操作系统和装有VC++6.0的计算机。
实验内容及要求(1)求初值问题:' (01) 2y(0)=1x y y x -⎧=<<⎪⎨⎪⎩.(2)取步长0.4h =,写出用经典四阶龙格—库塔方法求解初值问题cos()(1)0(14)dyx x y dx y x ⎧=+⎪⎨⎪=≤≤⎩的计算公式.实验过程:(1)编写函数M文件改进的欧拉方法如下:function E=euler(a,b,ya,M)% Input - a and b are the left and right end points % -ya is the initial condition y(a) % -M is the number of steps% Output T is the vector of abscissas and Y is the vector of % ordinates h=(b-a)/M;T=zeros(1,M+1); Y=zeros(1,M+1); Yp=0; Yc=0; T=a:h:b; Y(1)=ya; for j=1:MYp=Y(j)+h*(T(j)-Y(j))/2; Yc=Y(j)+h*(T(j)-Yp)/2; Y(j+1)=(Yp+Yc)/2; end T Y在命令窗口调用函数M 文件euler(0,1,1,10),输出结果:T =0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000 Y = 1.0000 0.9512 0.9098 0.8752 0.8471 0.8253 0.8095 0.7992 0.7944 0.7947 0.7998(2)编写函数M文件4阶龙格-库塔方法如下: function R=rk4(a,b,ya,M)% Input - a and b are the left and right end points% -ya is the initial condition y(a)% -M is the number of steps% Output T is the vector of abscissas and Y is the vector of% ordinatesh=(b-a)/M;T=zeros(1,M+1);Y=zeros(1,M+1);T=a:h:b;Y(1)=ya;for j=1:Mk1=h*(T(j)*(cos(T(j)+Y(j))));k2=h*((T(j)+h/2)*(cos((T(j)+h/2)+(Y(j)+k1/2))));k3=h*((T(j)+h/2)*(cos((T(j)+h/2)+(Y(j)+k2/2))));k4=h*((T(j)+h)*(cos((T(j)+h)+(Y(j)+k3))));Y(j+1)=Y(j)+(k1+k2+k3+k4)/6;endTY在命令窗口调用函数M文件rk4 (1,4,0,10),输出结果:T =1.0000 1.3000 1.6000 .9000 2.2000 2.5000 2.8000 3.1000 3.4000 3.7000 4.0000 Y =0 0.0762 0.0825 0.0071 -0.1447 -0.3596 -0.6225 -0.9187 -1.2357 -1.5635 -1.8949实验总结(由学生填写):教师对本次实验的评价(下面的表格由教师填写):实验名称:Newton方法(实验五)实验目的:掌握Newton迭代算法,能够根据所给方程求出在某一点附近的根。
实验准备:1.在开始本实验之前,请回顾教科书的相关内容;2.需要一台准备安装Windows XP Professional操作系统和装有VC++6.0的计算机。
实验内容及要求公元1225年,Lenardo宣布他求得方程32++-=210200x x x的一个根 1.368808107x*≈.当时颇为轰动,但无人知道他是用什么方法得到的.现在,请你试试用Newton迭代法求解这个结果.实验过程:编写Matlab函数M文件Newton如下:Function x= Newton(fname,dfname,x0,e,N)%用途:Newton迭代法解非线性方程f(x)=0%fname和dfname分别表示f(x)及其导数函数的M函数句柄或内嵌函数表达式,%x0为迭代初值,e为精度(默认值le-4),%x0为返回数值解,并显示计算过程,设置迭代次数上限N以防发散(默认500次)If nargin<5,N=500;endIf nargin<4,e=le-4;endX=x0;x0=x+2﹡e;k=0;Fprintf(‘It.no=%2d x%[2d]=%12.9f\n`,k,k,x)While abs(x0-x)>e£k<NK=K+1X0=x;x=x0-feval(fname,x0)/feval(dfname,x0);Fprintf(It.no=%2d x[%2d]=%12.9f\n`,k,k,x)EndIf k==N,fprintf(`已达到迭代次数上限`);end在命令窗口编写内嵌函数表达式,并调用函数M文件Newton:>>fun=inline(,x^3+2﹡x^2+10﹡x-20`);>>dfun=inline( 3﹡x^2+4﹡x+10);>>Newton(fun,dfun,1.5,0.5e-6);It.no=0 x[0]=1.500000000It.no=1 x[1]=1.373626374It.no=2 x[2]=1.368814820It.no=3 x[3]=1.368808108It.no=4 x[4]=1.368808108五、弦截法例4.15 用弦截法求方程f(x)=x(x+1)2-1=0在0.4附近的一个实根.初始值x0=0.4,x1=0.6,精确指4位有效数字.编写Matlab函数M文件XianjieMethod和chap4-fun如下:Function f=XianjieMethod(x0,x1)X2=x1-chap4-fun(x1)*(x1-x0)/chap4—fun(x1)—chap—fun(x0));Eps=le—4;N==0;rprintf('迭代次数x—n feval(x—n)\n'')rprintf('n=%3.0f x--%d=%10.5f %10.6e\n',n,n,xx0,chap4—fun(x0))while abs(x1—x0)>eps&(n<600)x0=x1;x1=x2;x2=x1—chap4—fun(x1)*(x1-x0)/(chap4—fun(x1)—chap4-fun(x0));n=n+1fprintf('n=%3.0f x--%10.5f %10.6e\n',n,n,x0,chap4—fun(x0))endfprintf('\n迭代次数n=%3.0f x﹡=%10.5f',nx0) function f=chap4—fun(x)f=x*(x+1)^2-1;取x0=0.4, x1=0.6在命令窗口调用函数M文件XianjieMeethod输出结果如下:>>XianjieMethod(0.4,0.6)迭代次数 x-n feval(x-n)n=0 x-0=0.40000 -2.160000e-001 n=1 x-1=0.60000 5.360000e-001 n=2 x-2=0.45745 -2.831381e-002 n=3 x-3=0.46460 -3.410914e-003 n=4 x-4=0.465558 2.698819e-005 迭代次数n=4 x*=0.46558实验总结(由学生填写): 教师对本次实验的评价(下面的表格由教师填写):实验名称: 雅可比迭代方法 (实验六) 实验目的:掌握列主元的高斯消去法思想,能够利用列主元的高斯消去法求解任意阶数的线性方程组。