文档库 最新最全的文档下载
当前位置:文档库 › 中国地质大学数值分析实验报告

中国地质大学数值分析实验报告

中国地质大学数值分析实验报告
中国地质大学数值分析实验报告

实验报告

课程名称:数值分析

课题名称:MATLAB算法稳定性及复杂度实例编程专业:地球物理学

姓名:xx

班级:xxxx

完成日期:201x年10 月20 日

实验报告

一、实验名称

一、ln2两种算法数值稳定性的比较

二、用递推公式计算定积分的两种算法稳定性比较

三、秦九韶算法模拟

二、实验目的

(1)掌握泰勒展开式的展开方法;

(2)掌握秦九韶算法的过程

(3)培养编程与上机调试能力;

(4)熟悉Matlab7软件环境.

三、实验要求

(1)通过MATLAB绘图比较两种不同算法的收敛性,收敛速度,复杂度分析。

(2)通过MATLAB计算绘图比较两种算法的数值稳定性,观察不同算法的误差扩散。(3)通过秦九韶算法计算多项式,比较其在算法复杂度上的优势。

四、实验原理

一、Ln(2)的不同算法:

(1)Ln(1+x)=x-x^2/2+x^3/3-…..(x=1)

(2)ln(1+x)/(1-x)=2(x+x^3/3-……)(x=1/3)

通过编程计算两算法泰勒展开式的值,通过plot(x,J1,x,J2)来绘制两算法的趋近图像,并由此可对比两算法的收敛性和收敛速度。

二、运用“分部积分法”推导递推公式后通过不同顺序求解

(1)由

可得到递推公式,通过不同的计算顺序可以控制误差的缩放。

三、运用秦九韶算法计算多项式

五、实验题目

(1)ln2的两种算法:

ln(1+x),(x=1)时

ln((1+x)/(1-x)),(x=1/3)时

对比两种算法的收敛性,收敛速度,复杂度分析

(2)定积分运用“分部积分法”推导递推公式后求解。

(3)运用秦九韶算法计算多项式,并比较与一般算法的算法复杂度。

六.实验步骤

实验一、(1)利用泰勒展开方法,对两种算法展开Ln(1+x)=x-x^2/2+x^3/3-…..(x=1),ln(1+x)/(1-x)=2(x+x^3/3-……)(x=1/3)

(2)通过Matlab编程计算两种算法各自前n项和。

(3)通过plot(x,J1,x,J2)来绘制两算法的趋近图像,并将两个算法图像绘制在一幅图像上对比,可由此得出两者的收敛性和收敛速度

(4)对结果分析其稳定性,并通过算法计算其算法复杂度

实验二、(1)算法一:对于定积分

由分部积分可得计算的递推公式:

若计算出I0,代,入,可逐次求出的值.

(2)要算出I0就要先计算.exp(-1),若用泰勒多项式展开部分和

并取k=7,用4位小数计算,则得=exp(-1)≈0.3679,截断误差r7

计算过程中小数点后第5位的数字按四舍五入原则舍入. 当初值取为I0≈0.6321=i0`时,用递推的计算公式为

用近似产生的误差E0=I0-I0`就是初值误差,它对后面计算结果是有影响的.

(3)编程计算并画出不同n值对应的I值

算法二:(1)取n=9,由

将公式倒过来,即由I9*算出I8*,I7*…,I1*,公式为

可以看出I0*与I0的误差不超过10^(-4)

(2)编程计算并画出不同n值对应的I值

实验三

(1)依次输入多项式的系数an,an-1,……a1,a0,x和多项式系数的个数n。

用秦九韶算法计算,先令Sn=an,再依次计算递推公式:

的每一项。

(x)即为多项式各项之和。

(2)当k=0时,P

n

七、实验整体流程图或算法

实验一

实验三

八、程序及其运行结果

一、实验一:

(1)for p=1:n; %循环

a=(-1)^(p+1)*(1/p); %第a项数列计算

s1=a+s1; %累加第a项及前一项和

J1(c1)=s1 ; %第n项累加后的值赋给数组J1(n) c1=c1+1;

end;

(2) for p=1:n;

b=2*(1/3)^k /k;

k=k+2;

s2=s2+b;

J2(c1)=s2;

c1=c1+1 ; %算法二原理同上

结果:

二、实验二:

1.算法一:

for p=2:(n+1)

I(p)=1-(p-1)*I(p-1); %递推公式,从I(0)到I(9)end;

2.算法二:

for p=(n+1):-1:1

J(p)=(1/p)*(1-J(p+1));

end

三、实验三:

x=input('输入x=');n=input('输入多项式系数个数=')-1; %输入基本参数

for k=n+1:-1:1

fprintf('第%d个系数=',k)

a(k)=input(''); %依次输入多项式系数的基本参数end

s(n+1)=a(n+1); %初始化s(n)

for k=n:-1:1 %k从n到1

s(k)=x*s(k+1)+a(k); %秦九韶算法递推公式

end

九、实验结果分析

实验一:

1.收敛性:由图可知,算法一和算法二都是收敛的,约等于0.69左右。

2.收敛速度:可以明显看到算法二的收敛速度要快于算法一的。

3.算法稳定性:可以看出,算法二的波动非常大,而算法一的则相对平缓,波动较小。根

据实验,算法在测试1000的时候才趋于稳定,并且精度也不如算法二。

4.算法复杂度:

算法一:

一共需要做(n+1)+n+(n-1)+……+2+1=((n+1)+1) *(n+1)/2=O(n^2)次乘法和3n-1次加法。

算法二:

一共需要做(n+2)+(n+1)+……+4+3=((n+2)+3)*n/2= O(n^2)次乘法和4n-4次加法。

实验二

1.算法一:

算法稳定性:n≤6时候对原式结果拟合程度较高,第七个开始有波动,第8个数值出现了负值,与In>0相矛盾,有积分估值得

因此,当n较大时,用In`近似In显然是不正确的。计算公式与每步计算都是正确的,计算结果错误的原因主要就是初值I0`有误差E0=I0-I0`,由此引起以后各步计算的误差En=In-In`满足关系:

容易推得

这说明I0`有误差E0,则I0`就是E0的n!倍误差.

算法二:将公式倒过来,即由I9*算出I8*,I7* (1)

En*=In-In* 则|E0*|=1/n!|En*|,E0*比En*缩小了n!倍。因此,尽管E9*较大,但由于误差逐

步缩小,故可用In*近似In。反之,当用算法一计算时,尽管初值I0`相当准确由于误差传播是逐步扩大的,因而计算结果不可靠.所以,数值不稳定的算法是不能使用的。

实验三:

算法复杂度:

1.将多项式直接计算相加,一共需要做n+(n-1)+…+2+1=n*(n+1)/2=O(n2)次乘法和n

次加法。

2.用秦九韶算法计算只需要n=O(n)次乘法和n次加法。可知秦九韶算法算法复杂度要

远远低于多项式直接计算的方法。

十、实验体会

通过对几个例子的算法分析和=以及编程计算,我进一步理解了课上所讲到的数值分析的基本原理,误差在数值计算中是不可避免的,误差的传播和积累直接影响到计算结果的精度。在研究算法的同时,必须注重误差分析,使建立起来的算法科学有效。

在建立算法的时候其中不能忽略的一个因素就是算法稳定性,一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是数值稳定的,否则称此算法为不稳定的。

值得一提的是数值分析是一门与计算机使用密切结合的实用性很强的数学课程,在学习的过程中要积极上机操作实验,这样才能更加透彻地领悟算法的精髓。

福州大学电力系统及其自动化硕士研究生培养方案

福州大学硕士研究生培养方案 专业名称:电力系统及其自动化专业代码:080802 学科、专业简介 “电力系统及其自动化”主要研究电能的产生、变换、输送、分配、控制的理论,电力系统的规划、运行规律,以及相应的测量、保护、调节、控制系统的理论和技术。研究领域包括电力系统分析及计算、人工智能在电力系统中应用、电力系统综合自动化、电力系统优化运行与电力市场、电力网安全运行与电磁兼容技术等。 一、培养目标 我们培养的硕士研究生应坚持社会主义方向、德、智、体全面发展的方针,贯彻“面向现代化、面向世界、面向未来”的指导思想。具体要求是:1、坚持党的基本路线,热爱祖国,遵纪守法,具有良好的科研道德和敬业精神。品行端正,诚实守信,身心健康。2、适应科技进步和社会发展的需要,在本门学科上掌握坚实的基础理论和系统的专门知识,有较强的自学能力和较宽的知识面,具备进一步深造的学术基础和科研技能。掌握一门外国语。3、具有创新精神、实践能力和创业素质。 二、研究方向 1、电力系统分析及计算 2、人工智能在电力系统中应用 3、电力系统综合自动化 4、电力系统优化运行与电力市场 5、电力系统节能降损技术 6、电能质量分析 三、学习年限 脱产学习硕士研究生培养年限为二年半,其中课程学习时间为一年至一年半,其余为专题研究时间。学位论文答辩和毕业生分配等均在此年限内安排。在职硕士研究生培养年限为三年半。硕士研究生课程实行学分制,硕士生在规定的学习年限内必须至少累计学满总学分30学分,其中学位课程至少19学分,学术活动1学分,其余为非学位课程学分,学位课程和非学位课程经考试或考查及格(60分为及格线)才能取得该门课程的学分。 四、培养方式 对硕士研究生的培养,采取理论学习和科学研究相结合、指导教师个别指导与系集体培养及电力企业导师相结合的方式,学习以自学为主,配合任课教师指导和作业检查,既要充分发挥教师的指导作用,又要发挥硕士研究生的主观能动性;指导教师既要使硕士生深入掌握基本理论和专门知识,又要使硕士研究生掌握科学研究的基本方法和技能,特别是注意硕士研究生自学能力和独立工作能力的培养。 五、课程设置及学分要求 福州大学硕士生专业培养计划表 [按课程编号排序][按修读学期排序] 学院名称电气工程与自动化学院使用年级 2009 专业名称电力系统及其自动化学习年限 2.5年 研究方向1、电力系统分析与计算 2、人工智能在电力系统中的应用 3、电力系统综合自动化(含继电保护) 4、电力系统优化运行与电力市场5、电力系统节能降损技术6、电能质量分析

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

福州大学数值分析考试复习题

4.设432()542f x x x x x =+++和节点/2,0,1k x k k == 则014[,]f x x x = 。 5.当1,1,2x =-时,() 0, 3f x =-, 则()f x 的二次插值多项式为 。(0,1,2,3,4) i x i =为互异结点,则4 4 ()i i i x l x =≡ ∑ () i l x 为拉格朗日插值基函数。 6.设3R x ∈,123()3f x x x x =++是否为向量范数?(填是或否) 。 7.1 000 ()() f x dx A f x ≈?当 A = , x = 时该求积公式具有尽可能高的代数精度。 8.(3,0,4,12)T x =-,则2x = ,1123A -?? =????,则A ∞= ,()A ρ= 。 9.解线性方程组AX=b 的迭代公式f BX X k k +=+)()1(,对任意给定的初值)0(x 都收 敛的充要条件是 _______ __ 10.当恒有 ()1 g x '≥时,迭代法 1() k k x g x +=的敛散性为 11.牛顿法求重根是 阶收敛的,求 解的牛顿法迭代公式 是: 。 12.在常微分方程初值问题中,改进的欧拉方法具有 阶的精度。其整体截断误差为 。 1. 给定点集的多项式插值是唯一的,则其多项式表达式也是唯一的。--------------------------------- 【 】 2. 代数精确度是衡量算法稳定性的一个重要指标。 【 】 3. 只要矩阵是对称的,则1A A ∞≡------ ----- 【 】 4. 非线性方程求根的牛顿迭代法有可能发散。-------------------- 【 】 5. 显式方法的优点是计算简单且稳定性好。-----------------------【 】 1. 有效数*0.0490y =的有效位数为 绝对误差限: 2. 的相对误差不超过0.1%应取 位有效数字。 3. 改变计算公式,使之用计算机实现时能给出更为精确的结果 (1)1cos 2- (2)

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“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 ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

福州大学gis试题

2010年福州大学地理信息系统 一、名词解释(30分) 1、地图 2、空间自相关 3、元数据 4、DEM 5、空间数据结构 6、数字地球 二、简答题(60分) 1、泰森多边形特点? 2、空间信息可视化形式? 3、什么是3S集成? 4、与其他信息系统相比,GIS的独特之处? 5、GIS在物流上的应用? 6、什么是Opengis,提出来是为了解决什么问题? 三、论述题(60分,每题20分) 1、结合TI行业的发展和社会需求,简述GIS的发展趋势 2、维基百科是开放性的一个全球计划,来自全世界的用户都可以对其进行编辑,在此基础上谈谈在维基百科中应用GIS的可能性 3、在今年全球ESRI用户大会主题提出了“GIS-Designing Our Future”,GIS是建设现实的和预测未来的纽带,请你就这一主题谈谈你的见解

09年空间中心GIS试题 一、名词解释 1.1 GIS 1.2地图投影 1.3矢量数据结构 1.4虚拟现实 1.5空间插值 1.6空间索引 二、简答题 2.1栅格数据结构编码方式 2.2GIS地图制作流程 2.3专题图表达方式? 2.4DEM用途 2.5属性数据 2.6拓扑元素的概念和内容有哪些? 三、论述题 3.1空间分析运用:核电站的选址问题 设某相应用为核电站选址,要求核电站邻近海湾,交通便捷,地形坡度小于5度,地质条件安全,并避开居民区。请试以GIS方法,设计该位址选择的应用模型,用框图表示其运行过程,并说明其有关的操作和算子。 3.2GIS总体设计和开发流程 3.3GIS发展热点和标志性技术 08年空间中心GIS专业试题 名词解释 1.叠置分析 2.虚拟现实 3.GIS互操作 4.地图投影 5.Geographical Information Sicence 简答 1.矢量栅格数据不同点 2.用线性四叉树编码栅格图像 3.道格拉斯普克算法过程 4.GIS软件工具应包括那些模块? 5.空间分析的本质 6.地理空间数据统计与普通统计方法的区别 7.与传统地图相比,数字地图有哪些优点? 8.网格GIS特点 论述 1.论述空间数据库设计,建立和维护 2.GIS当前热门研究动态

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和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);

数值分析实验报告

实验一、误差分析 一、实验目的 1.通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; 2.通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念; 3.通过上机计算,了解舍入误差所引起的数值不稳定性。 二.实验原理 误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。 三.实验内容 对20,,2,1,0 =n ,计算定积分 ?+=10 5dx x x y n n . 算法1:利用递推公式 151--=n n y n y , 20,,2,1 =n , 取 ?≈-=+=1 00182322.05ln 6ln 51dx x y . 算法2:利用递推公式 n n y n y 51511-= - 1,,19,20 =n . 注意到 ???=≤+≤=10 10202010201051515611261dx x dx x x dx x , 取 008730.0)12611051(20120≈+≈y .: 四.实验程序及运行结果 程序一: t=log(6)-log(5);

n=1; y(1)=t; for k=2:1:20 y(k)=1/k-5*y(k-1); n=n+1; end y y =0.0884 y =0.0581 y =0.0431 y =0.0346 y =0.0271 y =0.0313 y =-0.0134 y =0.1920 y =-0.8487 y =4.3436 y =-21.6268 y =108.2176 y =-541.0110 y =2.7051e+003 y =-1.3526e+004 y =6.7628e+004 y =-3.3814e+005 y =1.6907e+006 y =-8.4535e+006 y =4.2267e+007 程序2: y=zeros(20,1); n=1; y1=(1/105+1/126)/2;y(20)=y1; for k=20:-1:2 y(k-1)=1/(5*k)-(1/5)*y(k); n=n+1; end 运行结果:y = 0.0884 0.0580 0.0431 0.0343 0.0285 0.0212 0.0188 0.0169

数值分析2016上机实验报告

序言 数值分析是计算数学的范畴,有时也称它为计算数学、计算方法、数值方法等,其研究对象是各种数学问题的数值方法的设计、分析及其有关的数学理论和具体实现的一门学科,它是一个数学分支。是科学与工程计算(科学计算)的理论支持。许多科学与工程实际问题(核武器的研制、导弹的发射、气象预报)的解决都离不开科学计算。目前,试验、理论、计算已成为人类进行科学活动的三大方法。 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。现在面向数值分析问题的计算机软件有:C,C++,MATLAB,Python,Fortran等。 MATLAB是matrix laboratory的英文缩写,它是由美国Mathwork公司于1967年推出的适合用于不同规格计算机和各种操纵系统的数学软件包,现已发展成为一种功能强大的计算机语言,特别适合用于科学和工程计算。目前,MATLAB应用非常广泛,主要用于算法开发、数据可视化、数值计算和数据分析等,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 本实验报告使用了MATLAB软件。对不动点迭代,函数逼近(lagrange插值,三次样条插值,最小二乘拟合),追赶法求解矩阵的解,4RungeKutta方法求解,欧拉法及改进欧拉法等算法做了简单的计算模拟实践。并比较了各种算法的优劣性,得到了对数值分析这们学科良好的理解,对以后的科研数值分析能力有了极大的提高。

目录 序言 (1) 问题一非线性方程数值解法 (3) 1.1 计算题目 (3) 1.2 迭代法分析 (3) 1.3计算结果分析及结论 (4) 问题二追赶法解三对角矩阵 (5) 2.1 问题 (5) 2.2 问题分析(追赶法) (6) 2.3 计算结果 (7) 问题三函数拟合 (7) 3.1 计算题目 (7) 3.2 题目分析 (7) 3.3 结果比较 (12) 问题四欧拉法解微分方程 (14) 4.1 计算题目 (14) 4.2.1 方程的准确解 (14) 4.2.2 Euler方法求解 (14) 4.2.3改进欧拉方法 (16) 问题五四阶龙格-库塔计算常微分方程初值问题 (17) 5.1 计算题目 (17) 5.2 四阶龙格-库塔方法分析 (18) 5.3 程序流程图 (18) 5.4 标准四阶Runge-Kutta法Matlab实现 (19) 5.5 计算结果及比较 (20) 问题六舍入误差观察 (22) 6.1 计算题目 (22) 6.2 计算结果 (22) 6.3 结论 (23) 7 总结 (24) 附录

数值分析期末复习资料-福大研究生版

数值分析期末复习 题型:一、填空 二、判断 三、解答(计算) 四、证明 第一章 误差与有效数字 一、 有效数字 1、 定义:若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零 数字共有n 位,就说x*有n 位有效数字。 2、 两点理解: (1) 四舍五入的一定是有效数字 (2) 绝对误差不会超过末位数字的半个单位eg. 3、 定理1(P6):若x*具有n 位有效数字,则其相对误差限为 4、 考点: (1)计算有效数字位数:一个根据定义理解,一个根据定理1(P7例题3) 二、 避免误差危害原则 1、 原则: (1) 避免大数吃小数(方法:从小到大相加;利用韦达定理:x1*x2= c / a ) (2) 避免相近数相减(方法:有理化)eg. 或 (3) 减少运算次数(方法:秦九韶算法)eg.P20习题14 三、 数值运算的误差估计 1、 公式: (1) 一元函数:|ε*( f (x *))| ≈ | f ’(x *)|·|ε*(x )|或其变形公式求相对误差 (两边同时除以f (x *)) eg.P19习题1、2、5 (2) 多元函数(P8)eg. P8例4,P19习题4 第二章 插值法 一、 插值条件 1、 定义:在区间[a,b]上,给定n+1个点,a ≤x 0<x 1<…<x n ≤b 的函数值 yi=f(xi),求次数不超过n 的多项式P(x),使 2、 定理:满足插值条件、n+1个点、点互异、多项式次数≤n 的P(x)存在且唯一 二、 拉格朗日插值及其余项 1、 n 次插值基函数表达式(P26(2.8)) 2、 插值多项式表达式(P26(2.9)) 3、 插值余项(P26(2.12)):用于误差估计 *(1) 11 102n r a ε--≤?;x εx εx εx ++=-+();1ln ln ln ??? ? ??+=-+x εx εx x cos 1-2sin 22x =n i y x P i i n ,,2,1,0)( ==

数值分析实验报告资料

机电工程学院 机械工程 陈星星 6720150109 《数值分析》课程设计实验报告 实验一 函数插值方法 一、问题提出 对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n ==。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: (1 求五次Lagrange 多项式5L ()x ,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈) 实验步骤: 第一步:先在matlab 中定义lagran 的M 文件为拉格朗日函数 代码为: function[c,l]=lagran(x,y) w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if(k~=j) v=conv(v,poly(x(j)))/(x(k)-x(j)); end end l(k,:)=v; end c=y*l; end

第二步:然后在matlab命令窗口输入: >>>> x=[0.4 0.55 0.65 0.80,0.95 1.05];y=[0.41075 0.57815 0.69675 0.90 1.00 1.25382]; >>p = lagran(x,y) 回车得到: P = 121.6264 -422.7503 572.5667 -377.2549 121.9718 -15.0845 由此得出所求拉格朗日多项式为 p(x)=121.6264x5-422.7503x4+572.5667x3-377.2549x2+121.9718x-15.0845 第三步:在编辑窗口输入如下命令: >> x=[0.4 0.55 0.65 0.80,0.95 1.05]; >> y=121.6264*x.^5-422.7503*x.^4+572.5667*x.^3-377.2549*x.^2+121.9718 *x-15.0845; >> plot(x,y) 命令执行后得到如下图所示图形,然后 >> x=0.596; >> y=121.6264*x.^5-422.7503*x.^4+572.5667*x.^3-377.2549*x.^2+121.9718 *x-15.084 y =0.6257 得到f(0.596)=0.6257 同理得到f(0.99)=1.0542

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

福州大学数值计算实验报告一

福州大学数学与计算机科学学院计算机上机实验报告

L(175)=13.2302;而真实值为f(175)=13.2288; 解决问题2:给出函数y=ln(x);给出X=10,11,12,13;对应的 Y=2.3026,2.3979,2.4849,2.5649;用拉格朗日插值计算ln(11.75);并与真实值进行比较:首先用已有的M文件得到插值函数并画出图像和真实图像进行比较:

并且可以计算出L(11.75)=2.4639,真实值f(11.75)=2.4639; (2)设计牛顿插值算法的程序。将其与拉格朗日程序结果进行比较得出结论。 设计Newton算法如下:function y=Newton(a,b,x) n=length(a); A=zeros(n); A(:,1)=b; for k=2:n for r=k:n A(r,k)=(A(r,k-1)-A(r-1,k-1))/(a(r)-a(r-k+1)); end end y=b(1); for k=2:n T=1; for r=1:k-1 T=T.*(x-a(r)); end N=T*A(k,k); y=y+N; end 并用Newton法来解决前面的二道题:

并且计算的N(175)=13.2302;而真实值为f(175)=13.2288; 并且可以计算出N(11.75)=2.4639,真实值f(11.75)=2.4639; (3)利用三次样条插值函数spline()解决一两组问题。 给定数据 x = 0:10;

y = sin(x); xx = 0:.25:10; yy = spline(x,y,xx); plot(x,y,'o',xx,yy) 研 究 与 探 讨 通过用拉格朗日插值、牛顿插值以及三次样条插值来处理数据, 并且对数据进行分析,然后可以估算出一些未知数据。通过对三 种插值方法进行编程以及解决一些实际问题时发现各种方法都各 有利弊,首先最基本的是拉格朗日插值方法,对于拉格朗日插值 方法来说编程是非常简单的,但是一旦增加一组数据时,程序就 要相应做出改变,而对于现实中的问题来说,增加或减少数据这 是常见的事,这使得拉格朗日的实用性不强,而对于牛顿法来说, 编程相对与拉格朗日方法来说更加难一点,插值效果上面通过前 面的实验可以看出,牛顿法的插值效果和拉格朗日插值的效果是 一样的,但是牛顿法可以有效的改善拉格朗日法弊端,如果增加 或者减少数据时,程序不用发生改变,这使得牛顿法在日常使用 中更加具有实用性。但是对于拉格朗日插值和牛顿插值来说,当

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=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)的解对扰动的敏感性。 实验容:为了实现方便,我们先介绍两个Matlab 函数:“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 ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

福州大学省空间信息工程研究中心地图学与地理信息系统专业考研真题

福州大学地理信息系统考研真题(2001—2014,2007缺失) 2014年福州大学地理信息系统 一名词解释(40分) 1 地理空间数据 2专题地图 3时空GIS 4缓冲区分析 5空间数据元数据6高斯克吕格投影 7四叉树编码 8GIS互操作 二简答题 1 简述地理信息系统的组成 2 DEM的用途 3简述空间索引的概念及应用,并列举出3种以上比较有代表性的索引方法 4简述地理知识,地理信息及地理数据之间的关系 5简述开放式GIS的特点 6简要写出倒数加权距离插值(IDW)的原理,并说明空间插值为什么要规定插值半径7 简述图幅拼接及其具体步骤 三论述题 1 空间数据输入的误差有哪些?具体如何进行检查? 2论述地学模型的概念及特性,并讨论地理建模中地理信息系统所充当的角色,以及二者之间存在的关系 3谈谈数字城市和智慧城市的区别与联系,结合生活实例,你设想的智慧城市应具有哪些功能。 2013年福州大学地理信息系统 一、名词解释 1、投影变换 2、地理坐标系 3、拓扑关系 4、Webgis 5、内插外推 6、缓冲期分析 7、制图综合 8、空间数据压缩 二、简答题 1、不规则三角网构建的原理与准则 2、面向对象数据模型的特点 3、拓扑关系(画图ps:和书上一样的) 4、元数据的定义以及其作用 5、OGC、LBS、DTA、TIN中英文意思 6、空间插值的方法 7、空间分析以及与其他专用模型的结合 三、论述题 1、数据质量产生误差的原因,以及其控制方法 2、3s更新数据库的方法,并结合具体行业分析 3、GIS大众化应用的技术以及其发展的方向 2012年福州大学地理信息系统 一、名词解释(8*4分) 1、矢栅一体化模型 2、时空数据模型 3、互操作 4、元数据 5、缓冲区分析 6、空间数据挖掘 7、WebGIS

数值分析实验报告

实验五 解线性方程组的直接方法 实验5.1 (主元的选取与算法的稳定性) 问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。 实验内容:考虑线性方程组 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。 实验要求: (1)取矩阵?? ? ?? ?? ?????????=????????????????=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。取n=10计算矩阵的 条件数。让程序自动选取主元,结果如何? (2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 (3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 (4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。 思考题一:(Vadermonde 矩阵)设 ?? ??????????????????????=? ? ? ?????????????=∑∑∑∑====n i i n n i i n i i n i i n n n n n n n x x x x b x x x x x x x x x x x x A 0020 10022222121102001111 ,, 其中,n k k x k ,,1,0,1.01 =+=, (1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化? (2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b (3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。 (4)你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗日或牛顿插值法的原因吗? 相关MATLAB 函数提示: zeros(m,n) 生成m 行,n 列的零矩阵 ones(m,n) 生成m 行,n 列的元素全为1的矩阵 eye(n) 生成n 阶单位矩阵 rand(m,n) 生成m 行,n 列(0,1)上均匀分布的随机矩阵 diag(x) 返回由向量x 的元素构成的对角矩阵 tril(A) 提取矩阵A 的下三角部分生成下三角矩阵

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=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)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“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 ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

相关文档