上海大学数值方法报告
数值分析综合实验报告

一、实验目的通过本次综合实验,掌握数值分析中常用的插值方法、方程求根方法以及数值积分方法,了解这些方法在实际问题中的应用,提高数值计算能力。
二、实验内容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)矩形法:计算简单,但精度较低。
数值计算方法实验报告

数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
数值分析积分实验报告(3篇)

第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
数值分析实验报告心得(3篇)

第1篇在数值分析这门课程的学习过程中,我深刻体会到了理论知识与实践操作相结合的重要性。
通过一系列的实验,我对数值分析的基本概念、方法和应用有了更加深入的理解。
以下是我对数值分析实验的心得体会。
一、实验目的与意义1. 巩固数值分析理论知识:通过实验,将课堂上学到的理论知识应用到实际问题中,加深对数值分析概念和方法的理解。
2. 培养实际操作能力:实验过程中,我学会了使用Matlab等软件进行数值计算,提高了编程能力。
3. 增强解决实际问题的能力:实验项目涉及多个领域,通过解决实际问题,提高了我的问题分析和解决能力。
4. 培养团队协作精神:实验过程中,我与同学们分工合作,共同完成任务,培养了团队协作精神。
二、实验内容及方法1. 实验一:拉格朗日插值法与牛顿插值法(1)实验目的:掌握拉格朗日插值法和牛顿插值法的原理,能够运用这两种方法进行函数逼近。
(2)实验方法:首先,我们选择一组数据点,然后利用拉格朗日插值法和牛顿插值法构造插值多项式。
最后,我们将插值多项式与原始函数进行比较,分析误差。
2. 实验二:方程求根(1)实验目的:掌握二分法、Newton法、不动点迭代法、弦截法等方程求根方法,能够运用这些方法求解非线性方程的根。
(2)实验方法:首先,我们选择一个非线性方程,然后运用二分法、Newton法、不动点迭代法、弦截法等方法求解方程的根。
最后,比较不同方法的收敛速度和精度。
3. 实验三:线性方程组求解(1)实验目的:掌握高斯消元法、矩阵分解法等线性方程组求解方法,能够运用这些方法求解线性方程组。
(2)实验方法:首先,我们构造一个线性方程组,然后运用高斯消元法、矩阵分解法等方法求解方程组。
最后,比较不同方法的计算量和精度。
4. 实验四:多元统计分析(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 数值计算的误差与有效数字
1.2.1 误差来源与分类:
按来源分,分为固有误差和计算误差。
固有误差:建立模型时已存在。 •模型误差:建立数学模型时所引起的误差; •观测误差:测量工具的限制或在数据的获取时 随机因素所引起的物理量的误差。
•截断误差:用数值方法求解数学模型时,用简单 代替复杂,或者用有限过程代替无限过程所引起的 误差; •舍入误差:计算机表示的数的位数有限,通常用 四舍五入的办法取近似值,由此引起的误差。
如果存在一适当小的正数ε r(
x * ),使得
e( x ) (x ) er ( x ) r (x ) x x
则称ε r( x * )为相对误差限。
例:x=15,
ε (x *) =2, ε r(x)=2/15=13.33%; y=1000, ε (y *)=5 , ε r(y)=5/1000=0.5%; v=3*105km/s,ε (v *) =0.9,ε r(v *)= 0.0003%; v1=0.34km/s, ε (v1 *)=0.9 , ε r(v 1*)=265 %; v1的测量误差无法容忍!
能在这个地区看到,这种彗星每隔 76年才能看见一次。
命令所有士兵着野战服在操场上集合,我将向他们解释 这一罕见的现象。如果下雨的话,就在礼堂集合,我为 他们放一部有关彗星的影片。 值班军官对连长: 根据营长的命令,明晚8点76年才能
一见的哈雷彗星将在操场上空出现。如果下雨的话,就让 士兵穿着野战服列队前往礼堂,这一罕见的现象将在那里 出现。
计算误差:计算过程中出现的误差。
例:平面二连杆机械手
x l1 cos l2 cos y l1 sin l2 sin
数值计算方法I实验报告

实验报告实验课程名称数值计算方法I开课实验室数学实验室学院理学院年级2012 专业班信息与计算科学2班学生姓名学号开课时间2012 至2013 学年第 2 学期实验一 误差分析试验1.1(病态问题)问题提出:考虑一个高次的代数多项式)1.1()()20()2)(1()(201∏=-=---=k k x x x x x p显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。
现考虑该多项式的一个扰动)2.1(0)(19=+x x p ε其中ε是一个非常小的数。
这相当于是对(1.1)中19x 的系数作一个小的扰动。
我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。
实验内容:为了实现方便,我们先介绍两个MA TLAB 函数:“roots ”和“poly ”。
roots(a)u =其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。
设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程01121=+++++-n n n n a x a x a x a的全部根;而函数 poly(v)b =的输出b 是一个n+1维向量,它是以n 维向量v 的各分量为根的多项式的系数。
可见“roots ”和“poly ”是两个互逆的运算函数。
))20:1((;)2();21,1(;000000001.0ve poly roots ess ve zeros ve ess +===上述简单的MA TLAB 程序便得到(1.2)的全部根,程序中的“ess ”即是(1.2)中的ε。
实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。
如果扰动项的系数ε很小,我们自然感觉(1.1)和(1.2)的解应当相差很小。
计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?(2)将方程(1.2)中的扰动项改成18x ε或其它形式,实验中又有怎样的现象? (3)(选作部分)请从理论上分析产生这一问题的根源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-2014学年冬季学期数值方法实验报告组别第X组学号1212XXX姓名XXXX指导老师XXXX完成日期201X.XXX实验一一、题目P311.根据习题12和习题13构造算法和MATLAB 程序,以便精确计算所有情况下的二次方程的根,包括ac b b 42-≈的情况。
2.参照例1.25,对下列3个序列求序列∞=⎭⎬⎫⎩⎨⎧121n n ,请计算出前10个数值近似值。
构造类似表1.4、表1.5以及图1.8至图1.10的输出。
(a) 994.00=r ;121-=n n r r ,初始误差为0.00 2其中n=1,2,…(b) 10=q ,497.01=q ,2125---=n n n q q q ,初始误差为0.003,其中n=2,3,…二、代码第一题:第二题:三、结果1、2、四、总结本次作业的目的在于熟悉我们对Matlab基本的操作。
第一题是对if…else…的应用。
第二题是画图和格式输出。
实验二一、题目P401. 使用程序2.1求解下面每个函数的不动点(尽可能多)近似值,答案精确到小数点后12位。
同时,构造每个函数和直线y=x 来显示所有不动点。
(a ) 223)(235+--=x x x x g(b ) ))cos(sin()(x x g = (c ) )15.0()(2+-=x in x x g (d ))cos()(x x x x g -=P493. 修改程序2.2和程序2.3,使得输出分别类似于表2.1和表2.2的矩阵(即矩阵的第一行应当为[0 0a 0c 0b )(0c f ] )二、代码第一题:此题包含了文件fixpt.m 、plotfixpt.m 、sqrtm.m 、main1.m fixpt.mplotfixpt.msqrtm.mmain1.mfunction mainfigure(1)hold offgrid onaxis([-2 2.5 -2 2.5]);axis squarehold ong=inline('x.^5-3*x.^3-2*x.^2+2');x=[-2:0.01:2.5];plot(x,g(x),'r');plot(x,x,'g');f1=inline('sqrtm(3*x.^3+2*x.^2+x-2,5)');plot(x,f1(x),'b');f2=inline('sqrtm((x.^5-2*x.^2-x+2)/3,3)');plot(x,f2(x),'c');f3=inline('sqrt((x.^5-3*x.^3-x+2)./2)');plot(x,f3(x),'m');text(-0.9,-0.9,'y=x');text(-0.4,2.1,'g(x)=x^5-3x^3-2*x^2+2');text(-1.3,-1.6,'f1(x)=(3x^3+2x^2+x-2)^0^/^5');text(-0.9,0.3,'f2(x)=((x^5-2x^2-x+2)/3)^1^/^3');text(-1,1.6,'f3(x)=((x^5-3x^3-x+2)/2)^1^/^2');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(2)hold offgrid onaxis([-2 2.5 -2 2.5]);axis squarehold on[k,p,err,P]=plotfixpt(f1,0.9,0.00001,100,'k');[k,p,err,P]=plotfixpt(f1,0.6,0.00001,100,'k');plot(x,g(x),'r');plot(x,x,'g');plot(x,f1(x),'b');text(-0.9,-0.9,'y=x');text(-0.4,2.1,'g(x)=x^5-3x^3-2*x^2+2');text(-1.3,-1.6,'f1(x)=(3x^3+2x^2+x-2)^0^/^5');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(3)hold offgrid onaxis([-2 2.5 -2 2.5]);axis squarehold on[k,p,err,P]=plotfixpt(f2,-1,0.00001,100,'k');plot(x,g(x),'r');plot(x,x,'g');plot(x,f2(x),'c');text(-0.9,-0.9,'y=x');text(-0.4,2.1,'g(x)=x^5-3x^3-2*x^2+2');text(-0.9,0.3,'f2(x)=((x^5-2x^2-x+2)/3)^1^/^3');main2function mainfigure(1)hold offgrid onaxis([0 2 0 2]);axis squarehold ong=inline('cos(sin(x))');x=[0:0.01:2];plot(x,g(x),'r');plot(x,x,'g');[k,p,err,P]=plotfixpt(g,1.5,0.00001,100,'k');第二题function maing=inline('x.*sin(x)-1');[c,err,a,b,yc]=bisect(g,0,2,0.0000001);fprintf(' x sin(x)-1=0\n');fprintf('--------------------------------------------------------------------------------\n');fprintf(' k | ak | ck | bk | f(ck) \n');fprintf('---|------------------|------------------|-------------------|-------------------\n');maxk=length(yc);for k=1:maxkfprintf('%2d | %13.8f | %13.8f | %13.8f | %13.8f\n',k-1,a(k),c(k),b(k),yc(k));endfprintf('---|------------------|------------------|-------------------|-------------------\n');%g=inline('x.*sin(x)-1');[c,err,a,b,yc]=regula(g,0,2,0.0000001,0.0000001,30);fprintf(' x sin(x)-1=0\n');fprintf('--------------------------------------------------------------------------------\n');fprintf(' k | ak | ck | bk | f(ck) \n');fprintf('---|------------------|------------------|-------------------|-------------------\n'); maxk=length(yc);for k=1:maxkfprintf('%2d | %13.8f | %13.8f | %13.8f | %13.8f\n',k-1,a(k),c(k),b(k),yc(k));endfprintf('---|------------------|------------------|-------------------|-------------------\n');三、结果第一题:第二题:四、总结本次实验是解方程。
第一题是通过迭代法求不动点。
第二题是通过二分法(试值法或试位法)求值。
本次实验的难点在于多个函数的调用。
实验三一、题目P69 第4题二、代码function [p0,err,k,y]=newton(A,p0,delta,epsilon,max1)for k=1:max1% p1=p0-feval(f,p0)/feval(df,p0);p1=(2*p0+A/p0/p0)/3; % 把有导数的迭代公式直接换成求导后的公式err = abs(p1-p0);relerr = 2*err/(abs(p1)+delta);p0=p1;%% y= feval(f,p0);y= p0.^3-A;if (err<delta)|(relerr<delta)|(abs(y)<epsilon)breakendendfunction mainp0=2;delta=0.0001;epsilon=0.0001;max1=20;A=7;[p0,err,k,y]=newton(A,p0,delta,epsilon,max1);fprintf('%f的三次根的值=%.5f\n',A,p0);p0=6;delta=0.0001;epsilon=0.0001;max1=20;A=200;[p0,err,k,y]=newton(A,p0,delta,epsilon,max1);fprintf('%f的三次根的值=%.5f\n',A,p0);p0=-2;delta=0.0001;epsilon=0.0001;max1=20;A=-7;[p0,err,k,y]=newton(A,p0,delta,epsilon,max1); fprintf('%f的三次根的值=%.5f\n',A,p0);三、结果7.000000的三次根的值=1.91294200.000000的三次根的值=5.84804-7.000000的三次根的值=-1.91294四、总结这题应用的是牛顿—拉夫森迭代公式!实验四一、题目1.93页1题。