数值分析报告

合集下载

数值分析实验报告

数值分析实验报告

数值分析实验报告【引言】数值分析是一门研究利用计算机和数学方法解决实际问题的学科,它在工程、科学和经济领域中有着广泛的应用。

在这个实验报告中,我将分享我在数值分析实验中的一些发现和结果。

【实验目的】本次实验的目的是通过数值方法对给定的问题进行求解,并分析数值方法的精确性和稳定性。

我们选择了经典的插值和数值积分问题来进行实验。

【实验过程】在插值问题中,我使用了拉格朗日插值和样条插值两种方法。

通过使用已知的数据点,这些方法能够通过构造多项式函数来逼近原始函数,从而能够在未知点上进行预测。

通过比较两种插值方法的结果,我发现拉格朗日插值在低维数据上表现更好,而样条插值在高维数据上更能保持插值曲线的平滑性。

在数值积分问题中,我使用了复合梯形公式和复合辛普森公式来进行数值积分。

这两种方法可以将复杂的区间上的积分问题转化为对若干个小区间进行数值积分的问题。

实验结果表明,复合辛普森公式在使用相同的步长时,其数值积分结果更为精确。

【实验结果】我以一个实际问题作为例子来展示实验结果。

问题是计算半径为1的圆的面积。

通过离散化的方法,我将圆划分为多个小的扇形区域,并使用数值积分方法计算每个扇形的面积。

最后将每个扇形的面积相加,即可得到圆的近似面积。

通过调整离散化的精度,我发现随着扇形数量的增加,计算得到的圆的面积越接近真实的圆的面积。

在插值问题中,我选择了一段经典的函数进行插值研究。

通过选择不同的插值节点和插值方法,我发现当插值节点越密集时,插值结果越接近原函数。

同时,样条插值方法在高阶导数连续的情况下能够更好地逼近原始函数。

【实验总结】通过这次实验,我对数值分析中的插值和数值积分方法有了更深入的理解。

我了解到不同的数值方法在不同的问题中有着不同的适用性和精确度。

在实际应用中,我们需要根据具体问题选择合适的数值方法,并进行必要的数值计算和分析,以获得准确可靠的结果。

总的来说,数值分析作为一种重要的工具和方法,在科学研究和工程实践中具有广泛的应用,并且不断发展和创新。

数值分析综合实验报告

数值分析综合实验报告

一、实验目的通过本次综合实验,掌握数值分析中常用的插值方法、方程求根方法以及数值积分方法,了解这些方法在实际问题中的应用,提高数值计算能力。

二、实验内容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)矩形法:计算简单,但精度较低。

东北大学数值分析实验报告

东北大学数值分析实验报告

数值分析实验班级 姓名 学号实验环境: MATLAB实验一 解线性方程组的迭代法(1)一、实验题目 对以下方程组分别采用Jacobi 迭代法, Gaaus-Seidel 迭代法求解和SOR 迭代法求解。

(2)线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------------------13682438141202913726422123417911101610352431205362177586832337616244911315120130123122400105635680000121324⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-2119381346323125 (2)对称正定线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----------------------1924336021411035204111443343104221812334161206538114140231212200420424⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡87654321x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---4515221123660(3)三对角线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡------------------4100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----5541412621357 二、实验要求(1)应用迭代法求线性方程组, 并与直接法作比较。

数值分析实验报告--实验2--插值法

数值分析实验报告--实验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),即插值效果越来越好。

数值分析积分实验报告(3篇)

数值分析积分实验报告(3篇)

第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。

通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。

二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。

实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。

2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。

实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。

3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。

实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。

4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。

它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。

实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。

三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。

2. 选取几个不同的函数,对积分区间进行划分。

3. 使用不同方法计算积分近似值,并与实际积分值进行比较。

4. 分析不同方法的精度和效率。

四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。

2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。

3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。

4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。

数值分析实验报告

数值分析实验报告

数值分析实验报告
一、实验背景
本实验主要介绍了数值分析的各种方法。

在科学计算中,为了求解一
组常微分方程或一些极限问题,数值分析是一种有用的方法。

数值分析是
一种运用计算机技术对复杂模型的问题进行数学分析的重要手段,它利用
数学模型和计算机程序来解决复杂的数学和科学问题。

二、实验内容
本实验通过MATLAB软件,展示了以下几种数值分析方法:
(1)拉格朗日插值法:拉格朗日插值法是由法国数学家拉格朗日发
明的一种插值方法,它可以用来插值一组数据,我们使用拉格朗日插值法
对给定的点进行插值,得到相应的拉格朗日多项式,从而计算出任意一个
点的函数值。

(2)最小二乘法:最小二乘法是一种常用的数据拟合方法,它可以
用来拟合满足一定函数的点的数据,它的主要思想是使得数据点到拟合曲
线之间的距离的平方和最小。

(3)牛顿插值法:牛顿插值法是一种基于差商的插值方法,它可以
用来插值一组数据,可以求得一组数据的插值函数。

(4)三次样条插值:三次样条插值是一种基于三次样条的插值方法,它可以用来对一组数据进行插值,可以求得一组数据的插值函数。

三、实验步骤
1.首先启动MATLAB软件。

数值分析实验报告心得(3篇)

数值分析实验报告心得(3篇)

第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。

通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。

以下是我对数值分析实验的心得体会。

一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。

2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。

3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。

4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。

二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。

(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。

最后,我们将插值多项式与原始函数进行比较,分析误差。

2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。

(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。

最后,比较不同方法的收敛速度和精度。

3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。

(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。

最后,比较不同方法的计算量和精度。

4. 实验四:多元统计分析(1)实验目的:掌握多元统计分析的基本方法,能够运用这些方法对数据进行分析。

(2)实验方法:首先,我们收集一组多元数据,然后运用主成分分析、因子分析等方法对数据进行降维。

数值分析原理实验报告

数值分析原理实验报告

一、实验目的通过本次实验,掌握数值分析的基本原理和方法,了解数值分析在科学和工程领域的应用,培养动手能力和分析问题的能力。

二、实验内容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,返回步骤③。

数值分析实验报告5篇

数值分析实验报告5篇

0.03877676439380 0.16256584868280 0.13322664013598 0.02164258317546
0 0 0 0 0 0 0 0 0 0 0
0
0 0 0 0
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
即当对扰动项的系数越来越小时对其多项式扰动的结果也就越来越小即扰动敏感性与扰动项的系数成正比扰动项的系数越大对其根的扰动敏感性就越明显当扰动的系数一定时扰动敏感性与扰动的项的幂数成正比扰动的项的幂数越高对其根的扰动敏感性就越明显
误差分析
实验1.1(问题)
实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对 数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属 于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值 问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究 和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机 器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现 考虑该多项式的一个扰动 其中是一个非常小的数。这相当于是对(1.1)中的系数作一个小的扰 动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的 解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab函 数:“roots”和“poly”。 其中若变量a存储n+1维的向量,则该函数的输出u为一个n维的向量。设 a的元素依次为,则输出u的各分量是多项式方程 的全部根;而函数 的输出b是一个n+1维变量,它是以n维变量v的各分量为根的多项式的系 数。可见“roots”和“poly”是两个互逆的运算函数。 上述简单的Matlab程序便得到(1.2)的全部根,程序中的“ess”即是 (1.2)中的。

数值分析实验报告总结

数值分析实验报告总结

一、实验背景数值分析是研究数值计算方法及其理论的学科,是计算机科学、数学、物理学等领域的重要基础。

为了提高自身对数值分析理论和方法的理解,我们进行了数值分析实验,通过实验加深对理论知识的掌握,提高实际操作能力。

二、实验目的1. 理解数值分析的基本理论和方法;2. 掌握数值分析实验的基本步骤和技巧;3. 培养实验设计和数据分析能力;4. 提高编程和计算能力。

三、实验内容本次实验主要分为以下几个部分:1. 线性方程组求解实验:通过高斯消元法、LU分解法等求解线性方程组,并分析算法的稳定性和误差;2. 矩阵特征值问题计算实验:利用幂法、逆幂法等计算矩阵的特征值和特征向量,分析算法的收敛性和精度;3. 非线性方程求根实验:运用二分法、牛顿法、不动点迭代法等求解非线性方程的根,比较不同算法的优缺点;4. 函数插值实验:运用拉格朗日插值、牛顿插值等方法对给定的函数进行插值,分析插值误差;5. 常微分方程初值问题数值解法实验:运用欧拉法、改进的欧拉法、龙格-库塔法等求解常微分方程初值问题,比较不同算法的稳定性和精度。

四、实验过程1. 线性方程组求解实验:首先,编写程序实现高斯消元法、LU分解法等算法;然后,对给定的线性方程组进行求解,记录计算结果;最后,分析算法的稳定性和误差。

2. 矩阵特征值问题计算实验:编写程序实现幂法、逆幂法等算法;然后,对给定的矩阵进行特征值和特征向量的计算,记录计算结果;最后,分析算法的收敛性和精度。

3. 非线性方程求根实验:编写程序实现二分法、牛顿法、不动点迭代法等算法;然后,对给定的非线性方程进行求根,记录计算结果;最后,比较不同算法的优缺点。

4. 函数插值实验:编写程序实现拉格朗日插值、牛顿插值等方法;然后,对给定的函数进行插值,记录计算结果;最后,分析插值误差。

5. 常微分方程初值问题数值解法实验:编写程序实现欧拉法、改进的欧拉法、龙格-库塔法等算法;然后,对给定的常微分方程初值问题进行求解,记录计算结果;最后,比较不同算法的稳定性和精度。

数值分析实验报告模板

数值分析实验报告模板

数值分析实验报告模板篇一:数值分析实验报告(一)(完整)数值分析实验报告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);写成如上形式即可,下面给出主程序。

数值分析报告

数值分析报告

数值分析报告
数值分析报告是基于数值数据的研究,通过收集、整理、计算和解释数值数据,提供有关特定问题或现象的分析和结论。

数值分析报告通常由以下几个部分组成:
1. 引言:介绍研究问题的背景和目的,阐述研究的重要性和意义。

2. 数据收集和整理:说明数据的来源和收集方法,描述数据的结构和组织方式。

可以包括对数据进行清洗和转换的步骤。

3. 数据分析方法:阐述所采用的数据分析方法和技术的原理和假设。

例如,描述回归分析、方差分析、时间序列分析等方法的使用情况。

4. 数据分析结果:呈现分析的结果和统计指标。

可以使用表格、图表等形式,对数据进行可视化展示。

同时,对分析结果进行解释和讨论,指出结论的可靠性和局限性。

5. 结论和建议:总结分析的结果,回答研究问题,并提出相应的建议。

讨论分析结果对决策或问题解决的影响。

6. 参考文献:列出所有被引用的文献,包括使用的数据源、文献和相关资料。

数值分析报告通常需要具备一定的严谨性和可靠性,需要确保数据的准确性和分析的可信性。

同时,还需要清楚地描述数据
分析过程,使读者能够理解和复制研究过程,进一步扩展或验证研究结果。

数值分析实验报告---高斯消去法 LU分解法

数值分析实验报告---高斯消去法 LU分解法

数值分析实验报告---高斯消去法 LU分解法实验一:高斯消去法一、实验目的1. 掌握高斯消去法的原理2. 用高斯消去法解线性方程组3. 分析误差二、实验原理高斯消去法(又称为高斯-约旦消去法)是一种利用矩阵消元的方法,将线性方程组化为改进的阶梯形式,从而解出线性方程组的解的方法。

具体而言,高斯消去法将线性方程组的系数矩阵化为一个上三角矩阵,再利用回带法求解线性方程组的解。

三、实验内容1.1、用高斯消去法解线性方程组在具体实验中,我们将使用高斯消去法来解决下述的线性方程组。

5x+2y+z=102x+6y+2z=14x-y+10z=25为了使用高斯消去法来解这个方程组,首先需要将系数矩阵A进行变换,消除A矩阵中第一列中的下角元素,如下所示:1, 2/5, 1/50, 28/5, 18/50, 0, 49/28接着使用回代法来计算该方程组的解。

回代法的过程是从下往上进行的,具体步骤如下:第三个方程的解:z=49/28;第二个方程的解: y=(14-2z-2x)/6;第一个方程的解: x=(10-2y-z)/5。

1.2、分析误差在使用高斯消去法求解线性方程组时,一般会出现截断误差,导致得到的解与真实解之间存在一些误差。

截断误差的大小和矩阵的维数有关。

为了估计截断误差,我们使用矩阵B来生成误差,在具体实验中,我们将使用下面的矩阵:我们来计算该矩阵的行列式,如果方程组有唯一解,则行列性不为0。

本例中,行列式的值是 -1,因此方程组有唯一解。

然后我们计算真实解和高斯消去法得到的解之间的误差,具体公式如下所示:误差 = 真实解的范数 - 高斯消去法得到的解的范数其中,范数的定义如下:||x||1=max{|xi|}; ||x||2=sqrt{(|x1|^2 + |x2|^2 + ... + |xn|^2)}四、实验步骤1、将高斯消去法的每一个步骤翻译成代码,并保存为一个独立的函数。

2、将代码上传至 Python 交互式环境,并使用高斯消去法来解线性方程组。

数值分析实验报告三

数值分析实验报告三
plot(x,y)
grid
[k,x,wuca,yx]=erfen (﹣1,1,10^-5)
2)运行结果
ans =
0 -1.0000 1.0000 0 1.0000 -11.6321 10.7183 -1.0000
ans =
1.0000 0 1.0000 0.5000 0.5000 -1.0000 10.7183 4.6487
ans =
11.0000 0.0898 0.0908 0.0903 0.0005 -0.0076 0.0033 -0.0021
ans =
12.0000 0.0903 0.0908 0.0906 0.0002 -0.0021 0.0033 0.0006
ans =
13.0000 0.0903 0.0906 0.0905 0.0001 -0.0021 0.0006 -0.0008
ans =
7.0000 0.1256 0.0008 0.0033 0.0262
ans =
8.0000 0.1240 0.0002 0.0016 0.0129
ans =
9.0000 0.1233 0.0000 0.0007 0.0056
ans =
9.0000 0.1233 0.0000 0.0007 0.0056
(2)、Use the iteration method ,the initial value .
2、The equation has two roots near 0.1.
Determine them by means ofNewton’s method.
(with accuracy )
3、用迭代法求方程 附近的一个根。方程写成下
k = 9

数值分析拟合实验报告(3篇)

数值分析拟合实验报告(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篇)

工程数值分析实验报告(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. 函数插值与曲线拟合在函数插值和曲线拟合实验中,样条插值方法具有较好的准确性和光滑性。

拉格朗日插值和牛顿插值方法在处理简单函数时表现良好,但在处理复杂函数时可能存在精度问题。

数值分析实验报告doc

数值分析实验报告doc

数值分析实验报告篇一:数值分析实验报告(一)(完整)数值分析实验报告12345篇二:数值分析实验报告数值分析实验报告课题一:解线性方程组的直接方法1.实验目的:1、通过该课题的实验,体会模块化结构程序设计方法的优点;2、运用所学的计算方法,解决各类线性方程组的直接算法;3、提高分析和解决问题的能力,做到学以致用;4、通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点。

2.实验过程:实验代码:#include "stdio.h"#include "math.h"#includeusing namespace std;//Gauss法void lzy(double **a,double *b,int n) {int i,j,k;double l,x[10],temp;for(k=0;k {for(j=k,i=k;j {if(j==k)temp=fabs(a[j][k]);else if(temp {temp=fabs(a[j][k]);i=j;}}if(temp==0){cout return;}elsefor(j=k;j {temp=a[k][j];a[k][j]=a[i][j];a[i][j]=temp;}temp=b[k];b[k]=b[i];b[i]=temp;}for(i=k+1;i {l=a[i][k]/a[k][k];for(j=k;j a[i][j]=a[i][j]-l*a[k][j]; b[i]=b[i]-l*b[k];}}if(a[n-1][n-1]==0){cout return;}x[n-1]=b[n-1]/a[n-1][n-1];for(i=n-2;i>=0;i--)temp=0;for(j=i+1;j temp=temp+a[i][j]*x[j]; x[i]=(b[i]-temp)/a[i][i];}for(i=0;i {printf("x%d=%lf\t",i+1,x[i]);printf("\n");}}//平方根法void pfg(double **a,double *b,int n) {int i,k,m;double x[8],y[8],temp;for(k=0;k {temp=0;for(m=0;m temp=temp+pow(a[k][m],2); if(a[k][k] return;a[k][k]=pow((a[k][k]-temp),1.0/2.0); for(i=k+1;i {temp=0;for(m=0;m temp=temp+a[i][m]*a[k][m]; a[i][k]=(a[i][k]-temp)/a[k][k];}temp=0;for(m=0;m temp=temp+a[k][m]*y[m];y[k]=(b[k]-temp)/a[k][k];}x[n-1]=y[n-1]/a[n-1][n-1];for(k=n-2;k>=0;k--){temp=0;for(m=k+1;m temp=temp+a[m][k]*x[m];x[k]=(y[k]-temp)/a[k][k];}for(i=0;i {printf("x%d=%lf\t",i+1(转自:小草范文网:数值分析实验报告),x[i]);printf("\n");}}//追赶法void zgf(double **a,double *b,int n){int i;double a0[10],c[10],d[10],a1[10],b1[10],x[10],y[10];for(i=0;i {a0[i]=a[i][i];if(i c[i]=a[i][i+1];if(i>0)d[i-1]=a[i][i-1];}a1[0]=a0[0];for(i=0;i {b1[i]=c[i]/a1[i];a1[i+1]=a0[i+1]-d[i+1]*b1[i];}y[0]=b[0]/a1[0];for(i=1;i y[i]=(b[i]-d[i]*y[i-1])/a1[i];x[n-1]=y[n-1];for(i=n-2;i>=0;i--)x[i]=y[i]-b1[i]*x[i+1];for(i=0;i {printf("x%d=%lf\t",i+1,x[i]);printf("\n");}}int main(){int n,i,j;double **A,**B,**C,*B1,*B2,*B3;A=(double **)malloc(n*sizeof(double)); B=(double **)malloc(n*sizeof(double));C=(double **)malloc(n*sizeof(double));B1=(double *)malloc(n*sizeof(double));B2=(double *)malloc(n*sizeof(double));B3=(double *)malloc(n*sizeof(double));for(i=0;i {A[i]=(double *)malloc((n)*sizeof(double));B[i]=(double*)malloc((n)*sizeof(double));C[i]=(double*)malloc((n)*sizeof(double)); }cout cin>>n;cout for(i=0;i for(j=0;j篇三:数值分析实验报告(包含源程序)课程实验报告课程实验报告。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB具有高效的数值计算以及符号计算功能,能使用户能够使用户从繁杂的数学运算分析中解脱出来;同时,MATLAB还具有完备的图形处理功能,实现计算结果和编程的可视化;具有友好的界面用户界面和接近数学表达式的自然化语言,更贴近使用者的思路;具有丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便使用的处理工具。
附录
1.newton法计算程序
()
clc,clear
syms x
format long
y1=diff(log(x+sin(x)),x);%对原函数求导
y=log(x+sin(x));
z=input('input');
n=0;
xi=0;
while abs(xi-z)>=1e-8%设置精度
xi=z;
Y1=subs(y1,x,z);%计算函数值
1.000000000000000 0.000016935087808 0.000016933026655
当h=0.2时,
x yΔy
1.0e+03 *
0 0.001000000000000 0
0.000200000000000 0.005000000000000 0.004981684361111
0.000400000000000 0.025000000000000 0.024999664537372
3.3
从上面结果中可以看到,在h=0.1时,绝对误差在逐步变小,因此在这种情况下认为此方法是稳定的。当h=0.2时,绝对误差逐渐扩大,因此在h=0.2时,算法不稳定。
1)用标准的四阶Runge-Kutta算法计算常微分方程时,不同的步长对算法的稳定性有影响。不够稳定的步长下面的计算,误差会越来越大,结果失真严重。
2)从sinx=0的两种方法中可以看出,Newton-Steffensen迭代法明显快于Newton法,且Newton和Newton-Steffensen迭代法在单根附近没有较快的收敛速度,迭代法是否收敛,与初始近似值x0的好坏有重大关系,如在x0=1.6处得到的收敛解很大,这是因为f’(x)=cos(1.6 180/ ) ,很难说明此处的敛散性。
Columns 8 through 14
-18.1566-17.9069-11.0226 2.0284 19.8549 40.3626 61.0840
Columns 15 through 17
79.5688 93.7700 102.3677)
2.2
1)根据题目要求,多项式拟合通过MATLAB提供的polyfit()函数实现,并给出其对应规律的近似多项式。用次数分别为3,4,5,6的多项式进行拟合,根据所编程序,在MATLAB命令窗口输入拟合多项式次数,运行得到结果如下:
X0
NEWTON
Steffensen
迭代次数
收敛解
迭代次数
收敛解
第一问
0.1
6
0.510973429388569
9
0.510973429388569
1
6
0.510973429388569
4
0.510973429388569
1.5
不收敛
6
0.510973429388569
2
24
NaN + NaNi
10
《数值分析上机实习报告》
2015年12月

本次上机实习全部以MATLAB7.0软件作为运算环境进行方程组求解、数值积分、微分的求解。MATLAB(MATrixLABoratory)是1984年MathWork公司研发一种广泛应用于工程计算以及数值分析领域的新型高级语言。经过多年的发展与竞争已经成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率较高,深受广大科技工作者欢迎。
0.000600000000000 0.125000000000000 0.124999993855788
0.000800000000000 0.625000000000000 0.624999999887465
0.001000000000000 3.125000000000000 3.124999999997939
3
6.283185307179580
3
3
3.141592653589790
3
NaN
1.3
1)从Newton和Newton-Steffensen迭代法可以看出,Newton-Steffensen迭代法明显快于Newton法,从计算结果看出x=0.510973429388569为最终精确解,而x0=0.1和1时收敛速度较快,说明牛顿法与基于牛顿法Steffensen加速法在单根附近有较快的收敛速度,迭代法是否收敛,与初始近似值x0的好坏有重大关系。
利用题目中所给对照数据编程与所求多项式近似函数f(x)进行比对,运行MATLAB得到结果如下:
图2.5对照数据与近似函数对比
由图像可知参照数据基本上在六次多项式拟合得到的近似函数上。根据MATLAB程序得到最大相对计算误差为0.0146,说明拟合程度较好。
由2.6图可知,线性插值方法绘制出的曲线较为粗糙,三次样条插值方法与Hermite插值方法绘制出的曲线较为理想,但就精度而言本例样条插值方法略逊于三次Hermite插值方法。
MATLAB具有以下一些优势:(1)友好的工作平台和编程环境;(2)简单易用的程序语言;(3)强大的科学计算机数据处理能力;(4)出色的图形处理功能;(5)应用广泛的模块集合工具箱;(6)使用的程序接口和发布平台;(7)应用软件开发(包括用户界面)。
选用MATLAB作为本次上机实验的实验环境主要有以下原因:(1)MATLAB语言是的运算过程更加贴近于数学语言,运算过程方便学习相关内容的知识点一级公式等;(2)MATLAB的计算结果可以直接显示函数运算图像,直观清晰地分析计算结果;(3)MATLAB对于一些数值运算过程来说,直接提供了运算方法,比如,一些特殊的矩阵和一些特定的函数,可以直接在运算和程序过程中表达,这为计算的简洁化带来很大的帮助;(4)MATLAB语言的数据运算功能较为强大,充分满足计算精度。
图2.1三次多项式拟合结果示意图图2.2四次多项式拟合结果示意图
图2.3五次多项式拟合结果示意图图2.4六次多项式拟合结果示意图
2)插值多项式计算,通过MATLAB提供的interp1()函数来实现。就本例来讲拟分别采用线性插值、三次样条插值,以及三次Hermite插值方法进行曲线拟合,得到曲线如下所示:
Y=subs(y,x,z);
Y1=double(Y1);
Y=double(Y);
z=z-Y/Y1;
n=n+1;
if n>100%通过循环控制迭代步数
n=0;
z=0;
break;
end
end
n
double(z)
(2)
clc,clear
syms x
format long
y1=diff(sin(x),x);
当h=0.1时,
x yΔy
0 1.000000000000000 0
0.100000000000000 0.333333333333333 0.197998050096721
0.200000000000000 0.111111111111111 0.092795472222377
0.300000000000000 0.037037037037037 0.034558284860371
通过本次上机实践,我学习了一定的MATLAB语言技巧,对今后的科学研究有比较大的帮助。同时,掌握一门享有较高认可度的软件的使用方法是解决问题的一大有利武器。提高的对科学研究以及数学计算的热情。使用MATLAB语言可以很大程度上帮助我们解决繁杂的数值计算问题,得到理想的计算结果,同时可以保证较高计算精度和计算效率,极大地提高了工作效率。同时,MATLAB软件有优良的绘图功能,今后一定会继续挖掘其中的新内容,学习更加精髓的部分,并且熟练应用于解决实际问题和科学研究中。
Columns 8 through 14
4.3000 4.7000 5.1000 5.5000 5.9000 6.3000 6.7000
Columns 15 through 17
7.1000 7.5000 7.9000
yi =
Columns 1 through 7
42.1498 41.4620 35.1182 24.3852 11.2732 -1.7813-12.3006
1
1.1
分别用牛顿法,及基于牛顿算法下的Steffensen加速法求:
1)ln(x+sinx)=0的根,初值x0分别取0.1, 1,1.5,2, 4进行计算。
2)sinx=0的根,初值x0分别取1,1.4,1.6,1.8,3进行计算。
分析其中遇到的现象与问题
1.2
求方程ln(x+sinx)=0的解即求方程x+sinx=1的解。使用Newton法,令f(x)=x+sinx-1,则f’(x)=cosx+1,直至|xk+1-xk|<10-8时,结束迭代。使用Newton-Steffensen迭代法在相同精度下迭代结束。其迭代结果与迭代次数如下:
2
2.1
某过程涉及两变量x和y,拟分别用插值多项式和多项式拟合给出其对应规律的近似多项式,已知xi与yi之间的对应数据如下:
xi=1,2,3,4...........10
yi = 34.658840.3719 14.6448 -14.2721-13.3570 24.8234 75.2795
103.5743 97.4847 78.2392
0.510973429388569
4
相关文档
最新文档