数值分析斯特芬森迭代法

合集下载

计算方法Steffensen与简单迭代法实验

计算方法Steffensen与简单迭代法实验

《计算方法》实验报告 实验名称:实验1 非线性方程的迭代法实验题目:0104x 23=-+x 实验目的:用简单迭代法和Steffensen 迭代法求方程的根 基础理论:简单迭代法和Steffensen 迭代法 实验环境:操作系统:Windows XP ;实验平台:matlab实验过程:方法一:简单迭代法程序:phi=inline('0.5*sqrt(10-x^3)') %迭代函数x0=input('x0=');del=input('del=');N=input('N='); n=1;fprintf('\n k x(k) ');fprintf('\n %2d %f ',0,x0);while n<Nx=phi(x0);if abs(x-x0)<delfprintf('\n \n 近似解 = %f \n',x);return;endfprintf(' \n %2d %f ',n,x);n=n+1; x0=x;endfprintf(' \n \n%d 次迭代后未达到精度要求.\n',N);结果:结果分析:利用简单迭代法求出的该非线性方程在[1,,2]内的实根大约为1.365230.方法二:Steffensen迭代法程序:phi=inline('0.5*sqrt(10-x^3)') %迭代函数x0=input('x0=');del=input('del=');N=input('N=');n=1;fprintf('\n k x(k) ');fprintf('\n %2d %f ',0,x0);while n<=Ny=phi(x0);z=phi(y);x=phi(x0-(y-x0)^2/(z-2*y+x0));if abs(x-x0)<delfprintf('\n \n近似解= %f \n',x);return;endfprintf(' \n %2d %f ',n,x);n=n+1;x0=x;endfprintf(' \n \n%d次迭代后未达到精度要求.\n',N);结果:结果分析:利用Steffensn迭代法求出该非线性方程在[1,,2]内的实根大约为1.365230,两种方法对比,显然Steffensn迭代法比简单迭代法迭代的次数少,更快。

《数值分析》第4章 解线性方程组的迭代法

《数值分析》第4章 解线性方程组的迭代法
及矩阵 A Rn,n 有 || Ax ||t || A ||s|| x ||t
都成立,则称矩阵范数 || ||s和向量范数 || ||相t 容.
注意:为了保证矩阵范数和向量范数相容,最常用的矩阵范数
是由相应向量范数导出的.
4.1.3 矩阵范数和矩阵序列的极限
定理4 设 || |是| R中n 的向量范数,对于任何 A Rn,n若
4.1.2 向量范数和向量序列的极限
定义2 (向量范数) 如果在 Rn中定义了实值函数,记为 || ,||
对所有 x, y Rn以及 R,若满足 (1) || x || 0,当且仅当 x 0时, || x || (0非负性) ;
(2) || x ||| | || x |(|齐次性);
(3) || x y |||| x || || y(|三| 角不等式). 则称 || x ||为向量 x的范数 (或模).
于是有
c1 || x(k) x* || || x(k) x* || c2 || x(k) x* ||
lim ||
k
x(k)
x* || 0
lim ||
k
x(k)
x*
||
0
4.1.2 向量范数和向量序列的极限
例1 计算向量 x (5,1,3)的T 常用范数.

|| x || 5
|| x ||1 9
(3)|| A B |||| A || || B;||(三角不等式) (4) || AB |||| A || || B;|| 则称 || A ||为矩阵 A 的范数.
4.1.3 矩阵范数和矩阵序列的极限
相容性: 设有矩阵范数 || ||s和向量范数 || ||,t 如果对任何向量 x Rn

非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较讲课教案

非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较讲课教案

非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较申林坚(南昌航空大学 测试与光电工程学院 江西 南昌 330063)摘要:本文针对一个具体的非线性方程032=-x e x 进行研究,首先作出了了函数xe x xf -=23)(的图像,大体判定其零点(即方程解)在(3,4)区间内, 接着用牛顿迭代法和斯特芬森迭代法进行求解分析,牛顿法的迭代公式为)()(1k k k k x f x f x x '-=+, 斯特芬森迭代法公式为),(),(,2)(21k k k k kk k k k k k y z x y x y z x y x x ϕϕ==+---=+记录两种方法求得指定精度解所需迭代次数及所需计算时间,并对其优缺点 进行了分析。

关键词:非线性方程;牛顿迭代法;斯特芬森迭代法引言非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定条件下由非线性问题简化得到的,为得到更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱。

本论文通过对特定非线性方程032=-x e x 进行求解,介绍了两种常用的迭代法牛顿迭代法和斯特芬森迭代法,详尽阐述了其各自的数学几何原理及优缺点比较,从而更深入的理解非线性方程的迭代法求解。

正文一.作出)(x f 的图像,确定隔根区间 在Matlab 中输入以下指令并回车:x=(-10:0.001:10); y=3*x.^2-exp(x); plot(x,y);grid on ;-10-8-6-4-202468104图1得到图1所示)(x f 的图像,易知,当10-<x 及10>x 时,)(x f 无零点 将y 轴方向放大,输入命令axis([-10 10 -2 2]),得到图2-10-8-6-4-20246810-2-1.5-1-0.500.511.52图2可知函数有三个零点,隔根区间为(-2,0),(0,2),(2,4) 将x 轴方向放大,输入命令axis([-2 4 -2 2]),得到图3-2-101234-2-1.5-1-0.500.511.52图3可将隔根区间进一步缩小为(-1,0),(0,1),(3,4)二.牛顿迭代法求区间(3,4)中的根对于方程0)(=x f ,如果)(x f 是线性函数,则它的求根是容易的。

李庆扬-数值分析第五版第7章习题答案(0824)汇编

李庆扬-数值分析第五版第7章习题答案(0824)汇编

第7章复习与思考题求f (X )= 0的零点就等价于求(x )的不动点,选择一个初始近似值X 0,将它代入X =「(X ) 的右端,可求得X 1 h%X °),如此反复迭代有 X k 1 二(X k ), k =0,1,2,..., (X)称为迭代函数,如果对任何X 。

• [a,b],由x k 卜h%x k ),k =0,1,2,...得到的序列〈X k 1有极限则称迭代方程收敛,且X* =®(x*)为®(X )的不动点 故称X k q 二(X k ), k =0,1,2,...为不动点迭代法。

5•什么是迭代法的收敛阶?如何衡量迭代法收敛的快慢?如何确定X k 1 二「(X k )(k =0,1,2,...)的收敛阶P219设迭代过程X k 1'h%X k )收敛于 (X)的根X*,如果当k > 时,迭代误差e k = x k - x *满足渐近关系式—t C,C =const 式 0 e/则称该迭代过程是 p 阶收敛的,特别点,当 p=1时称为线性收敛,P>1时称为超线性收敛, p=2时称为平方收敛。

以收敛阶的大小衡量收敛速度的快慢。

6•什么是求解f(x)=0的牛顿法?它是否总是收敛的?若 f(X*) =0,X*是单根,f 是光 滑,证明牛顿法是局部二阶收敛的。

牛顿法:当| f (X k )卜J 时收敛。

7•什么是弦截法?试从收敛阶及每步迭代计算量与牛顿法比较其差别。

在牛顿法的基础上使用 2点的的斜率代替一点的倒数求法。

就是弦截法。

收敛阶弦截法1.618小于牛顿法2 计算量弦截法 <牛顿法(减少了倒数的计算量)8•什么是解方程的抛物线法?在求多项式全部零点中是否优于牛顿法? P229X-mX k 1 =X kf (X k ) f (X k )设已知方程f (x) = 0的三个近似根,X k,X k^,X k^2,以这三点为节点构造二次插值多项式p(x),并适当选取p2(x)的一个零点X k卅作为新近似根,这样确定的迭代过程称为抛物线法。

(完整)数值计算方法复习

(完整)数值计算方法复习

2016计算方法复习务必通过本提纲例子和书上例子掌握如下书本内容:1. 会高斯消去法;会矩阵三角分解法;会Cholesky 分解的平方根法求解方程组2. 会用插值基函数;会求Lagrange, 会计算差商和Newton 插值多项式和余项3. 会Jacobi 迭代、Gauss —Seidel 迭代的分量形式,迭代矩阵,谱半径,收敛性4. 会写非线性方程根的Newton 迭代格式;斯蒂芬森加速5. 会用欧拉预报-校正法和经典四阶龙格—库塔法求解初值问题6. 会最小二乘法多项式拟合7. 会计算求积公式的代数精度;(复化)梯形公式和(复化)辛普生公式求积分;高斯-勒让德求积公式第1章、数值计算引论(一)考核知识点误差的来源类型;绝对误差和绝对误差限,相对误差和相对误差限,有效数字;误差的传播。

(二) 复习要求1。

了解数值分析的研究对象与特点。

2。

了解误差来源与分类,会求有效数字; 会简单误差估计. 3.了解误差的定性分析及避免误差危害。

(三)例题例1. 设x =0.231是精确值x *=0。

229的近似值,则x 有2位有效数字。

例2. 为了提高数值计算精度, 当正数x 充分大时, 应将)1ln(2--x x 改写为)1ln(2++-x x .例3. 3*x 的相对误差约是*x 的相对误差的1/3 倍.第2章、非线性方程的数值解法(一)考核知识点对分法;不动点迭代法及其收敛性;收敛速度; 迭代收敛的加速方法;埃特金加速收敛方法;Steffensen 斯特芬森迭代法;牛顿法;弦截法. (二) 复习要求1.了解求根问题和二分法.2。

了解不动点迭代法和迭代收敛性;了解收敛阶的概念和有关结论。

3。

理解掌握加速迭代收敛的埃特金方法和斯蒂芬森方法。

4。

掌握牛顿法及其收敛性、下山法, 了解重根情形. 5.了解弦截法. (三)例题1。

为求方程x 3―x 2―1=0在区间[1.3,1.6]内的一个根,把方程改写成下列形式,并建立相应的迭代公式,迭代公式不收敛的是( )(A )11,1112-=-=+k k x x x x 迭代公式 (B )21211,11kk x x x x +=+=+迭代公式(C ) 3/12123)1(,1k k x x x x +=+=+迭代公式 (D )231x x =-迭代公式11221+++=+k k kk x x x x 解:在(A)中,2/32)1(21)(,11)(,11--='-=-=x x x x x x ϕϕ2/3)16.1(21->=1.076故迭代发散。

steffenson迭代法

steffenson迭代法

Steffensen迭代法是一种重要的数值计算方法,它在数值分析领域有着广泛的应用。

该方法通过迭代逼近函数的根,是一种高效、稳定的求解非线性方程的工具。

Steffensen迭代法基于不动点理论,通过构造一个逐步逼近根的序列来求解方程。

它的基本思想是利用函数在某一点的局部线性逼近来逼近根的位置。

具体来说,我们从一个初始值开始,通过对函数进行局部线性逼近,计算出一个新的逼近值。

然后,我们再次对函数进行局部线性逼近,得到一个更接近根的新的逼近值。

通过不断迭代,我们可以逐步逼近方程的根。

Steffensen迭代法的迭代公式为:\[ x_{n+1} = x_n - \frac{{(f(x_n))^2}}{{f(x_n+f(x_n))-f(x_n)}} \]其中,\( x_n \) 是第n次迭代的逼近值,\( f(x) \) 是需要求根的函数。

与其他迭代方法相比,Steffensen迭代法具有较快的收敛速度和较高的精度。

它适用于求解各种非线性方程,包括多项式方程、三角函数方程、指数函数方程等。

在实际应用中,Steffensen迭代法常被用于求解方程的根,特别是当方程的根位于某一区间内时,该方法的效果更加显著。

然而,Steffensen迭代法也存在一些限制。

首先,该方法对初始值的选择较为敏感,不同的初始值可能导致迭代结果的差异。

其次,当方程的根位于奇点附近时,该方法可能出现发散现象。

因此,在应用Steffensen迭代法时,我们需要对问题进行合理的分析和判断,选择合适的初始值,以获得准确的迭代结果。

总之,Steffensen迭代法是一种重要的数值计算方法,它通过逐步逼近函数的根,高效、稳定地求解非线性方程。

在实际应用中,我们可以根据具体问题的需求选择合适的初始值和迭代次数,以获得较为精确的解。

博士研究生入学考试《数值分析(机电院)》考试大纲

博士研究生入学考试《数值分析(机电院)》考试大纲

博士研究生入学考试《数值分析(机电院)》考试大纲第一部分考试形式和试卷结构一、考试方式:考试采用闭卷笔试方式,试卷满分为100分。

二、考试时间:180分钟。

三、试卷内容结构:约占 60%,主观题约占 40%。

四、试卷题型结构:试卷由三部分组成:选择/判断、填空、分析/计算。

其中:1、选择/判断题,约占20%。

测试考生对本课程基本概念、基本知识和数值计算常用算法设计与分析方法的掌握程度。

2、填空题,约占40%。

测试考生运用数值计算相关基础知识和基本方法,开展计算、简要分析以及求解实际问题的能力。

3、分析、计算题,约占40%。

测试考生综合运用数值计算理论、典型方法解决综合问题,并开展相关计算方法收敛性以及误差分析等能力。

第二部分考察的知识及范围1.误差度量与数值算法设计误差基本概念:误差来源与分类,截断误差、舍入误差、绝对误差、相对误差,有效数字以及数值稳定性。

函数计算误差分析:一元函数误差估计,四则运算误差估计。

数值算法设计原则:简化计算步骤以节省计算量(秦九韶算法)、减少有效数字损失,选择数值稳定的算法。

2.函数的插值方法以及误差估计插值问题的基本概念:插值问题的描述,插值多项式的存在和唯一性,差商、差分的概念以及性质。

拉格朗日插值:线性插值与抛物插值,n次拉格朗日插值,插值余项公式。

牛顿插值:均差的概念与性质,牛顿插值公式及其余项,差分的概念与性质。

埃尔米特插值:两点三次埃尔米特插值及其余项,n点埃尔米特插值,非标准埃尔米特插值及其余项。

分段低次插值:分段线性插值,分段三次埃尔米特插值。

三次样条插值:三次样条函数建立,三次样条插值方法。

3.函数逼近与曲线拟合正交多项式:函数内积、欧几里德范数,正交函数序列,正交多项式,勒德让多项式,切比雪夫多项式。

最佳平方逼近:最佳平方逼近问题及解法,基于正交函数、勒德让多项式、切比雪夫多项式的最佳平方逼近。

最小二乘法:最小二乘曲线拟合问题的提出和解法,最小二乘计算,最小二乘法的应用(算术平均、超定方程组)。

数值分析3.2.迭代加速、牛顿法及弦截法讲解

数值分析3.2.迭代加速、牛顿法及弦截法讲解
(4.5)
xk 1
1 C xk . 2 xk
பைடு நூலகம்
我们现在证明,这种迭代公式对于任意初值x0>0 都是收敛的.
事实上,对(4.5)式进行配方整理,易知
2 1 xk 1 C xk C . 2 xk


以上两式相除得
xk 1 C x C k . xk 1 C x C k
x0 x x1 x x2 x x1 x

将它与(3.1)式联立,消去未知的L,有
由此推知
2 2 x x x ( x x ) 0 2 1 1 0 x x0 . x2 2 x1 x0 x2 2 x1 x0
在计算了 x1 及 x2 之后,可用上式右端作为 x* 的新近 似,记作 ̄x1,一般情形是由xk计算 xk+1, xk+2,记
(4.2)
此式称为牛顿(Newton)迭代公式.
牛顿法的几何意义:设xk是根x*的某个近似值, 过曲线y=f(x)上横坐标为xk的点Pk引切线,并将该切 线与x轴交点的横坐标xk+1作为x*的新的近似值. 注意 到切线方程为
y f ( xk ) f ( xk )( x xk ).
y
这样求得的值xk+1必满足 (4.1), 从而就是牛顿公式 (4.2)的计算结果.
当 f(x0)≠0 时,方程 f(x)=0 可用线性方程(切线) 近似 代替,即 f(x0)+f(x0)(x-x0)=0. 解此线性方程得 (4.1)
f ( x0 ) x x0 f ( x0 )
得迭代公式
f ( xk ) xk 1 xk f ( xk )

数值分析3.2.迭代加速、牛顿法及弦截法讲解

数值分析3.2.迭代加速、牛顿法及弦截法讲解

3.5 弦截法与抛物线法
用牛顿法求方程 f(x)=0的根,每步除计算 f(xk)外
还要算 f(xk),当函数 f(x) 比较复杂时,计算 f(x)往
往比较困难,为此可以利用已求函数值 f(xk),f(xk-1),
来回避导数值 f(xk)的计算. 这类方法是建立在插值原 理基础上的,下面介绍弦截法与抛物线法.
(1) k 1
xk 1 2 xk 1 xk
也称为埃特金 ( Aitken ) 外推法. 可以证明: 若 xk 1 ( xk ) 为线性收敛,则埃特金法为平方收敛;
若 xk 1 ( xk ) 为 p ( p > 1)阶收敛, ( x ) 的 p 阶
导数连续,则埃特金法为 2p–1 阶收敛.
3.3.2 斯蒂芬森(Steffensen)迭代法
埃特金方法不管原序列{xk}是怎样产生的,对{xk} 进行加速计算,得到序列{ ̄xk }. 如果把埃特金加速技 巧与不定点迭代结合,则可得到如下的迭代法:
yk ( xk ), zk ( yk ),
xk 1 ( yk xk ) 2 xk z k 2 yk xk ( k 0,1,). ( 3.3)
由此得到,当x*为单根时,牛顿迭代法在根x*的 邻近是二阶(平方)收敛的.
例1 用牛顿迭代法求方程x=e–x在x=0.5附近的根. 解 将原方程化为 x–e–x= 0,则 f(x)=x–e–x, f(x)=1+e–x, 牛顿迭代公式为
xk 1
取 x0=0.5,迭代得
xk e xk xk 1 e
定理(局部收敛性) 设fC2[a, b], 若x*为 f(x)在[a, b] 上的根,且 f(x*)0,则存在 x* 的邻域 U, 使得任取 初值 x0U,牛顿法产生的序列 {xk} 收敛到 x*,且满 足

steffensen定理

steffensen定理

steffensen定理
斯蒂芬森定理在数学领域通常指的是与迭代法相关的理论,特别是在数值分析中。

具体而言,斯蒂芬森方法是一种用于求解非线性方程的数值迭代方法,它利用了割线近似导数的思想来加速收敛速度。

斯蒂芬森方法的基本思想是:
给定一个函数f(x)和其零点附近的一个初始近似值x₀,通过构造函数图像上两点间的割线来逼近函数的二阶导数信息,并据此生成下一个迭代点。

相比于简单的固定步长或一次导数牛顿法,斯蒂芬森方法由于使用了二阶信息,因此在适当条件下能够实现至少二阶的局部收敛速度。

公式表达时,首先计算f(x₀),然后根据f(x₀)得到一个新的点x₁,接着在(x₀,f(x₀))和(x₁,f(x₁))两点之间构建割线,并令该割线与x轴交点对应的横坐标作为下一次迭代的位置。

这种方法可以看作是对牛顿法的一种改进,特别适用于那些不能直接计算或者精确度不高的导数情况。

李庆扬-数值分析第五版第5章和第7章习题答案解析

李庆扬-数值分析第五版第5章和第7章习题答案解析
P215
求 的零点就等价于求 的不动点,选择一个初始近似值 ,将它代入 的右端,可求得
,如此反复迭代有

称为迭代函数,如果对任何 ,由 得到的序列
有极限
,则称迭代方程收敛,且 为 的不动点,故称 为不动点迭代法。
5.什么是迭代法的收敛阶?如何衡量迭代法收敛的快慢?如何确定 的收敛阶
P219
设迭代过程 收敛于 的根 ,如果当 时,迭代误差 满足渐近关系式
4从以上可以看出,每次运算后,区间长度减少一半,是线形收敛。
3.什么是函数 的不动点?如何确定 使它的不动点等价于 的零点
P215.
将方程 改写成等价的形式 ,若要求 满足 ,则 ;反之亦然,称 为函数 的一个不动点。
4.什么是不动点迭代法? 满足什么条件才能保证不动点存在和不动点迭代序列收敛于 的不动点
从而 ,
又当 时,

当 时,

综上所述, 时最小,这时 ,即 。
18、设 ,计算A的条件数
由 可知, ,从而

由 ,

由 ,
可得 ,从而

, ,从而 。
19、证明:如果 是正交矩阵,则
若A是正交阵,则 ,从而 , ,故 , 。
20、设 ,且 为 上矩阵的算子范数,证明:
21、设 ,其中 为非奇异矩阵,证明:
的最大特征值为0.3690
所以2-范数为0.6074
F-范数0.8426
13、求证:
(a) ;
(b) 。
根据定义求证。

14、设 且非奇异,又设 为 上一向量范数,定义 。试证明 是 上向量的一种范数。
根据向量范数的定义来证明:
要求就有正定性,齐次性,三角不等式等性质。

《数值分析》教案

《数值分析》教案

讲授新 进展内容
介绍等距节点插值公式在工程设计上的应用,例如在微电机设计在设计上的 应用。
课后总结
5
河北工程大学教师授课教案(5)
学院(部): 数理学院 教师姓名:
课程名称
数值分析
授课专业和班级
授课时间:
学术型研究生
授课内容
2.5 埃尔米特插值
授课学时 2 学时
教材
《数值分析》,周少玲,张振辉编,西安交通大学出版社。
6
河北工程大学教师授课教案(6)
学院(部): 数理学院 教师姓名:
课程名称
数值分析
授课专业和班级
授课时间:
学术型研究生
授课内容
2.6 曲线拟合的最小二乘法
授课学时 2 学时
教材
《数值分析》,周少玲,张振辉编,西安交通大学出版社。
教学目的和要求
1. 掌握最小二乘法的基本原理;2. 掌握多项式拟合方法; 3. 了解可化为多项 式拟合的最小二乘方法。
课后总结
8
河北工程大学教师授课教案(8)
学院(部): 数理学院 教师姓名:
课程名称
数值分析
授课专业和班级
授课时间:
学术型研究生
授课内容
3.2 牛顿--柯特斯公式
授课学时 2 学时
教材
《数值分析》,周少玲,张振辉编,西安交通大学出版社。
教学目的和要求 1. 掌握牛顿--柯特斯公式; 2. 了解低阶牛顿--柯特斯公式的截断误差。
1、复习旧课(15 分钟)
回顾差商的定义。
2、讲授部分(25 分钟)
引入重节点的差商,并于 Taylor 展开式联系,介绍两者的关系(难点)。
3、复习部分(5 分钟)

数值分析计算实习题

数值分析计算实习题

1.下列数据点的插值x 0 1 4 9 16 25 36 49 64y 0 1 2 3 4 5 6 7 8可以得到平方根函数的近似,在区间[0,64]上作图.(1)用这9个点作8次多项式插值Ls(x).(2)用三次样条(第一边界条件)程序求S(x).从得到结果看在[0,64]上,哪个插值更精确;在区间[0,1]上,两种插值哪个更精确?解:(1)拉格朗日插值多项式,求解程序如下syms x l;x1=[0 1 4 9 16 25 36 49 64];y1=[0 1 2 3 4 5 6 7 8];n=length(x1);Ls=sym(0);for i=1:nl=sym(y1(i));for k=1:i-1l=l*(x-x1(k))/(x1(i)-x1(k));endfor k=i+1:nl=l*(x-x1(k))/(x1(i)-x1(k));endLs=Ls+l;endLs=simplify(Ls) %为所求插值多项式Ls(x).输出结果为Ls =-/*x^2+95549/72072*x-1/00*x^8-2168879/0*x^4+19/0*x^7+657859/*x^3+33983/ 0*x^5-13003/00*x^6(2)三次样条插值,程序如下x1=[0 1 4 9 16 25 36 49 64];y1=[0 1 2 3 4 5 6 7 8];x2=[0:1:64];y3=spline(x1,y1,x2);p=polyfit(x2,y3,3); %得到三次样条拟合函数S=p(1)+p(2)*x+p(3)*x^2+p(4)*x^3 %得到S(x)输出结果为:S =/6464-2399/88*x+/1984*x^2+2656867/624*x^3(3)在区间[0,64]上,分别对这两种插值和标准函数作图,plot(x2,sqrt(x2),'b',x2,y2,'r',x2,y3,'y')蓝色曲线为y=函数曲线,红色曲线为拉格朗日插值函数曲线,黄色曲线为三次样条插值曲线可以看到蓝色曲线与黄色曲线几乎重合,因此在区间[0,64]上三次样条插值更精确。

计算底点纬度Bf的数值迭代算法

计算底点纬度Bf的数值迭代算法

计算底点纬度Bf的数值迭代算法作者:吴琼烟来源:《新教育时代》2015年第12期摘要:本文研究了不动点迭代法、斯特芬森迭代法、牛顿-瑞弗森迭代法和割线法等四种数值迭代算法及其在底点纬度计算中的应用,并用MATLAB软件予以实现。

将数值迭代算法结果与经典算法结果进行比较,结果表明:利用数值迭代算法求解底点纬度,简单易行,准确可靠。

关键词:底点纬度数值迭代算法 MATLAB根据子午线弧长反求底点纬度Bf 是椭球大地测量学中的一项重要内容,是高斯投影坐标反算的基础。

底点纬度是高斯反算过程中一个重要的中间变量,当参数Bf 的值确定之后,接下来高斯投影反算的过程就变得非常简单了,从某种程度上讲,高斯投影坐标反算过程的关键就在于求出底点纬度Bf 的值。

底点纬度的求解本质上讲就是一个非线性方程的求根问题,数值分析中对此类问题有成熟的计算方法,即数值迭代算法,同时借助于计算机程序设计进行计算,可得到准确的数值解,涉及的数学技巧较少,简单易行,准确可靠。

一、计算底点纬度的经典算法由子午线弧长反求底点纬度是由纬度值计算子午线弧长的逆问题,下面首先对子午线弧长计算的经典算法进行介绍,在此基础上再对计算底点纬度的经典算法进行说明。

1.子午线弧长计算的经典算法大地测量学经典教材[1]给出了计算子午线弧长的基本公式:从赤道到大地纬度为B处的子午线弧长为(1)式中,M为子午线曲率半径,a为椭球长半轴,e为椭球第一偏心率。

对于(1)式而言,由于被积函数结构复杂,其原函数无法求出,故不能直接用牛顿-莱布尼茨积分进行计算。

在经典教材中,采用近似解析法,即把被积函数M按照牛顿二项式定理展开为e的幂级数,并将正弦的幂函数展开为余弦的倍数函数,然后逐项进行积分,考虑到计算结果的目的和精度,得到以下两个实用计算公式:(2)(3)(4)(5)2.底点纬度计算的经典算法已知从赤道到某点处的子午线弧长X,计算该点的大地纬度Bf ,即为底点纬度计算。

二分法、牛顿法、割线法、Steffencen法求非线性方程MATLAB实现

二分法、牛顿法、割线法、Steffencen法求非线性方程MATLAB实现
x0=a; else
x0=b; end m=min(abs(df(a)),abs(df(b))); k=0; while abs(f(x0))>m*dlt
k=k+1; x1=x0-f(x0)/df(x0); x0=x1; fprintf('k=%d x=%.5f\n',k,x0); end
三、实验结果
%加速公式 gen=x1-(y-x1)^2/(z-2*y+x1); wucha=abs(gen-x1); time=time+1; %迭代加一次的记录 end end; %计算结果
四、结果分析
由实验结果分析可知,Steffensen 迭代算法的收敛速度在一定条件下可以 达到二次收敛,相对割线法和二分法收敛速度较快,且其在一定程度上避免了两 个值很近时造成的误差,也对牛顿法要求函数导数值这一缺点进行了克服,整体 上比较来说是一个计算量较小且有较高精度的迭代算法。
二、算法描述
MATLAB 程序代码如下: function [gen,time]=Steff(fun,x0,tol) %如果缺省误差参数,默认为 10 的-5 次方 if(nargin==2) tol=1.0e-5; end %设置误差初值 time=0; %记迭代次数 wucha=0.1; %设置前后两次迭代的误差 gen=x0; while(wucha>tol) x1=gen; y=subs(fun,x1)+x1; z=subs(fun,y)+y;
(b1

a1 )
;对[a2 ,b2 ] 重复上述做法得:
1
[a1, b1] ⊃ [a2 , b2 ] ⊃ ...... ⊃ [an , bn ] ⊃ ...... 且 bn − an

数值分析 - 第6章 方程求根

数值分析 - 第6章  方程求根

∗ 于是,取 x ≈ 7.439760
例 4.用弦截法求方程 x -x -1 =0,在 x=1.5 附近的根. 计算中保留 5 位小数点. 解:f(x)= x 3-x2-1 ,f(1)=-1 ,f(2)=3,有根区间取 [1,2]. 取 x1=1, 迭代公式为 x n+1 = x n − f ( xn ) ( x n − x n−1 ) f ( xn ) − f ( x n−1 ) (n=1,2, …)
3
2
ϕ ′( x ) =
4 54 4 x + 2
<
4 ( x ∈ (1,2)), 取初始值x 0 = 1 5
x 2 = x1 −
x13 − x12 − 1 3 ( x1 − x 0 ) = 2 − × 1 ≈ 1.25 3 4 x13 − x12 − x0 + x02 1.25 3 − 1.252 − 1 × (1.25 − 2) ≈ 1.253 − 1.25 2 − 2 3 + 2 2 1.37662 1.376623 − 1.376622 − 1 × (1.37662 − 1.25) ≈ 1.376623 − 1.376622 − 1.25 3 + 1.25 2 148881
* -4
解:由 于 f '( x ) > 0, f ( x)为单调函数,故方程f(x)=0的根是唯一的。 而 迭代函数 ϕ ( x) = x − λ f ( x ), ϕ '( x ) = 1 − λ f '( x ). 令 ϕ '( x) ≤ L, 则L = max { 1 − λ M , 1 − λ m } < 1,由递推有
12
解:使用二分法要确定有根区间[ a,b]本题 f(x)=

数值完成

数值完成

数值分析上机题目及参考答案一、下表给出了飞行中鸭子的上部形状的节点数据,试用三次样条插值函数(自然边界条件)和20次Lagrange插值多项式对数据进行插值。

用图示出给定的数据,以及()s x和20()L x。

x0.9 1.3 1.9 2.1 2.6 3.0 3.9 4.4 4.7 5.0 6.0 y 1.3 1.5 1.85 2.1 2.6 2.7 2.4 2.15 2.05 2.1 2.25 x7.0 8.0 9.2 10.5 11.3 11.6 12 12.6 13.0 13.3y 2.3 2.25 1.95 1.4 0.9 0.7 0.6 0.5 0.4 0.25编写三次样条函数m文件:function[f,f0]=scyt(x,y,y2_1,y2_N,x0)%y2_1和y2_N分别为自然边界条件%插值点x的坐标:x0syms t;f=0.0;f0=0.0;if(length(x)==length(y))n=length(x);elsedisp('x和y的维数不相等');return;endfor i=1:nif(x(i)<=x0)&&(x(i+1)>=x0)index=i;break;endendA=diag(2*ones(1,n));A(1,2)=1;A(n,n-1)=1;u=zeros(n-2,1);lamda=zeros(n-1,1);c=zeros(n,1);for i=2:n-1u(i-1)=(x(i)-x(i-1))/(x(i+1)-x(i-1));lamda(i)=(x(i+1)-x(i))/(x(i+1)-x(i-1));c(i)=3*lamda(i)*(y(i)-y(i-1))/(x(i)-x(i-1))+3*u(i-1)*(y(i+1)-y(i))/(x (i+1)-x(i));A(i,i+1)=u(i-1);A(i,i-1)=lamda(i);endc(1)=3*(y(2)-y(1))/(x(2)-x(1))-(x(2)-x(1))*y2_1/2;c(n)=3*(y(n)-y(n-1))/(x(n)-x(n-1))-(x(n)-x(n-1))*y2_N/2;m=zgf(A,c);h=x(index+1)-x(index);f=y(index)*(2*(t-x(index))+h)*(t-x(index+1))^2/h/h/h+y(index+1)*(2*(x (index+1)-t)+h)*(t-x(index))^2/h/h/h+m(index)*(t-x(index))*(x(index+1 )-t)^2/h/h-m(index+1)*(x(index+1)-t)*(t-x(index))^2/h/h;f0=subs(f,'t',x0);其中的zgf函数为追赶法,其程序为function x=zgf(A,b)n = rank(A);for(i=1:n)if(A(i,i)==0)disp('Error: 对角有元素为0!');return;endend;d = ones(n,1);a = ones(n-1,1);c = ones(n-1);for(i=1:n-1)a(i,1)=A(i+1,i);c(i,1)=A(i,i+1);d(i,1)=A(i,i);endd(n,1) = A(n,n);for(i=2:n)d(i,1)=d(i,1) - (a(i-1,1)/d(i-1,1))*c(i-1,1);b(i,1)=b(i,1) - (a(i-1,1)/d(i-1,1))*b(i-1,1);endx(n,1) = b(n,1)/d(n,1);for(i=(n-1):-1:1)x(i,1) = (b(i,1)-c(i,1)*x(i+1,1))/d(i,1);end在matlab命令窗口输入:>> x=[0.9 1.3 1.9 2.1 2.6 3.0 3.9 4.4 4.7 5.0 6.0 7.0 8.0 9.2 10.5 11.3 11.6 12 12.6 13.0 13.3];>> y=[1.3 1.5 1.85 2.1 2.6 2.7 2.4 2.15 2.05 2.1 2.25 2.3 2.25 1.95 1.4 0.9 0.7 0.6 0.5 0.4 0.25];>> [f,f0]=scyt(x,y,0,0,x0,3.5) %其中给出了 x=3.5处y的值f =1000/729*(27/5*t-1377/100)*(t-39/10)^2+1000/729*(522/25-24/5*t)*(t-3) ^2+100/81*(-6396162352027119/288230376151711744*t+19188487056081357/2 88230376151711744)*(39/10-t)^2-100/81*(-176836856862157557/9007199254 7409920+4534278381080963/9007199254740992*t)*(t-3)^2f0 =2.5851三次样条插值图像为>> plot(x,y,'r*');grid拉格朗日插值函数程序,定义m文件function f=lglr(x,y,x0)%插值点x的坐标:x0%求得的拉格朗日插值多项式在x0处的值,fsyms t;if(length(x)==length(y))n=length(x);elsedisp('x和y的维数不相等');return;endf=0.0;for(i=1:n)l=y(i);for(j=1:i-1);l=l*(t-x(j))/(x(i)-x(j));end;f=f+l; simplify(f); if(i==n)if(nargin==3)f=subs(f,'t',x0) elsef=collect(f);f=vpa(f,6); %插值多项式的系数化为6位小数end end end在命令窗口输入>> f=lglr(x,y) f =-337.863*t^2+219.386*t-.171512e-3*t^13+.706734*t^8+.152386e-4*t^14-.105677e-5*t^15-.271334*t^9+304.616*t^3-.108815e-1*t^11+.622166e-1*t^10+65.2964*t^5+.152863e-2*t^12-13.7172*t^6+.477508*t^7+.559234e-7*t ^16+.769797e-14*t^20-.985682e-12*t^19-60.7814-176.003*t^4+.588899e-10*t^18-.217905e-8*t^17 %拉格朗日20次公式>> f=lglr(x,y,3.5) f =194.2495分析结果知道,拉格朗日插值次数达到了20次,但是和三次样条的结果相差很多,拉格朗日的插值次数不是越高越好。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档