不动点非线性方程求解

合集下载

非线性方程求跟—不动点迭代法(新)

非线性方程求跟—不动点迭代法(新)

非线性方程求根——不动点迭代法一、迭代法的基本思想迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。

例:求方程x 3-x -1=0 在x =1.5 附近的一个根。

解:将所给方程改写成31x x =+假设初值x 0=1.5是其根,代入得33101 1.51 1.35721x x =+=+=x 1≠x 0,再将x 1代入得33211 1.357211 1.33086x x =+=+=x 2≠x 1,再将x 2代入得33321 1.330861 1.32588x x =+=+=如此继续下去,结果如下:k x kk x k 01234 1.51.357211.330861.325881.324945678 1.324761.324731.324721.32472仅取六位数字,x 7与x 8相同,即认为x 8是方程的根。

x *≈x 8=1.32472这种逐步校正的过程称为迭代过程。

这里用的公式称为迭代公式,即311k k x x +=+k =0,1,2,……若x *满足f (x*)=0,称x *为ϕ(x )的一个不动点。

将连续函数方程f (x )=0改写为等价形式:x=ϕ(x ),其中ϕ(x )也是连续函数。

1()k k x x ϕ+=(k =0,1,……)不动点迭代法就是指以迭代格式二、不动点迭代法进行迭代求解的方法。

其中ϕ(x )称为迭代函数。

三、不动点迭代法的实现——MATLAB程序function[root,n]=stablepoint_solver(phai,x0,tol) if(nargin==2)tol=1.0e-5;enderr=1;root=x0;n=0;while(err>tol)n=n+1; %迭代次数r1=root;root=feval(phai,r1); %计算函数值err=abs(root-r1);end程序应用示例:function testmain% x^3-x-1=0% =>x^3=1+x% =>x=(1+x)^(1/3)ph=inline(‘(1+x)^(1/3)’,’x’);[root,n]=stablepoint_solver(ph,1)运行结果:root=1.3247n=8若对任意x 0∈[a , b ],由不动点迭代格式lim *k k x x →∞=则称迭代过程收敛,且x *=ϕ(x *)即f (x*)=0,x *为不动点。

不动点迭代法求解非线性方程组

不动点迭代法求解非线性方程组

不动点迭代法求解非线性方程组摘要:一般非线性方程组可以写成F(x) = 0的形式,其中F: R” t R"是泄义在区域DuR”上的向量函数。

把方程组F(x) = 0改写成与之等价的形式:A- = G(x)0因此,求方程组F(x) = 0的解就转化为求函数的G(x)的不动点。

本文首先介绍了多变量函数F(x) 的微积分性质,接着介绍了用不动点迭代法求解非线性方程组。

关键词:多变量函数:微积分;不动点Fixed Point Iteration Method For Solving Nonlinear Equations Abstract: General nonlinear equations can be written in the form of F(x) = 01 where the vector function F :R" R m is defined on the region D u R"・Transform the equatio nsF(x) = 0 into its equivale nt form: x = G(x) .Therefore, we can get the solutio n of F(x) = 0 by finding the fixed point of G(x)」n this paper; we first introduce some knowledge about multivariable calculus, then introduce the fixed point iteration method for solving non linear equati ons.Key words: multi-variable function; calculus; fixed point1引言一般非线性方程组及苴向量表示法:含有"个方程的〃元非线性方程组的一般形式为f l(x l9x2...9x n) = Of2(x r x2...9x n) = O< (1)f m(x l9x2...t x…) = 0其中,/(/ = 1,2,…,n)是泄义在DuR"上的"元实值函数,且(中至少有一个是非线性函数。

非线性方程求根的方法简介与例题

非线性方程求根的方法简介与例题

非线性方程求根的方法简介与例题第一篇:非线性方程求根的方法简介与例题非线性方程f(x)=0求根主要可以采用下面三种方法,下面简单介绍下,并附例题,让解法更一目了然。

1)二分法简介:计算步骤如下:例题:2)不动点迭代,也叫简单迭代。

隐式化为显式,迭代法是一种逐次逼近法;其中f(x)'<1才能满足上述迭代格式。

继续迭代。

3)牛顿迭代法,实际上也叫切线法,是通过下面的方式推导出来的。

上述题目很简单,用牛顿法迭代就可以达到目的。

我们先设f(x)=x-cosx=0由公式得x=x0-x-cosx1+sinx0我们用二分法的原理,我们取x得x1=π,=x0-x0-cosx01+sinx0x1-cosx11+sinx1x2-cosx21+sinx2=π-π+11=1 x2=x1-=1-1-cos11+sin1=0.9998x3=x2-=1-1-cos0.99981+sin0.9998=0.9998x3=x2,并具有四位有效数字,所以只需迭代两次就可以达到题目所需的精度要求第二篇:非线性方程迭代上机作业总体要求:1. 2.开发语言可用任一种高级语言作业包括1)一份实验报告2)电子版作业的全套(压缩后提交在Webcc上),包括:⌝程序源代码;⌝可执行程序;⌝电子版实验报告(内容包括:一、实验目的二、模型建立三、模型求解 3.1 开发环境3.2 程序设计说明(要求设计为通用的)3.3 源代码 3.4 程序使用说明 3.5 模型的解四、小结(可含个人心得体会))第六章逐次逼近法§ 3 非线性方程的迭代解法上机实验题求 x5-3x3+x-1= 0 在区间[-8,8〕上的全部实根.试分别用:(1)二分法;(2)Newton法;(3)弦截法(割线法);(4)Newton下山法;求方程的根.准确到6位有效数字.要求:讨论求解的全过程,对所用算法的局部收敛性,优缺点等作分析及比较.以实验报告的形式提交.完成时间:5月18日第三篇:非线性方程的数值解法《计算方法》期末论文论文题目非线性方程的数值解法学院专业班级姓名学号指导教师日期目录摘要第1 章绪论1.1 问题的提出和研究目的和意义 1.2 国内外相关研究综述 1.3 论文的结构与研究方法第2 章非线性方程的数值解法2.1 二分法 2.2 迭代法2.3 迭代法的局部收敛性及收敛的阶 2.4 牛顿迭代法 2.5 牛顿法的改进 2.6 插值摘要数值计算方法,是一种研究解决数学问题的数值近似解方法,它的计算对象是那些。

不动点法特征根法总结

不动点法特征根法总结

不动点法特征根法总结不动点法(Fixed-Point Method)是一种用于数值计算的迭代方法,用来求解非线性方程的根。

特征根法(Eigenvalue Method)用于求解线性方程组的本征值和本征向量。

本文将对这两种方法进行总结,以便读者更好地理解和应用。

一、不动点法1.原理不动点法是基于不动点定理的迭代方法。

定理指出,如果对于给定的非线性方程f(x) = 0,存在一个实数x*满足f(x*) = x*,则x*称为方程的不动点。

不动点定理指出,如果f(x)连续且在一些区间[a, b]上满足Lipschitz条件,则从一些初始值x0开始的迭代序列:xn+1 = f(xn),该序列将收敛到方程的不动点x*。

2.迭代步骤不动点法的迭代步骤如下:(1)选择初始点x0;(2)根据不动点迭代公式xn+1 = f(xn),计算下一个近似值;(3)重复步骤2,直到近似解收敛。

3.应用不动点法最常用于求解非线性方程的根,例如f(x)=x^2-x-1、可以通过构造f(x)=x的形式来找到不动点,即x^2-x-1=x。

然后,选择一个初始点x0,例如0,进行迭代计算,直到近似解收敛。

不动点法对于求解非线性方程的根具有广泛的应用,且相对简单易实现。

但是,不动点法的收敛性并不总是保证,且收敛速度较慢。

因此,在实际应用中需结合具体问题进行选择和优化。

二、特征根法1.原理特征根法是基于线性代数理论的求解线性方程组的方法,用于计算矩阵的本征值和本征向量。

对于一个n阶方阵A,如果存在非零向量x和标量λ使得Ax=λx,则λ为A的本征值,x为A对应于λ的本征向量。

2.求解步骤特征根法求解线性方程组的步骤如下:(1)构造特征方程,将A-λI(其中I为单位矩阵)的行列式设为0;(2)解特征方程,求解出A的所有本征值λ;(3)对于每个本征值λ,将λ带入(A-λI)x=0中,解得A对应于λ的本征向量x。

3.应用特征根法在数值计算和工程领域具有广泛的应用,例如电力系统稳定性分析、结构动力学分析等。

非线性方程求解的不动点算法及研究数学专业设计大学本科毕业论文

非线性方程求解的不动点算法及研究数学专业设计大学本科毕业论文

长沙学院CHANGSHA UNIVERSITY 本科生毕业论文摘要非线性方程在工程实践、经济学信息安全和动力学等方面的大量实际问题中有着极为广泛的应用,而不动点迭代算法作为数学研究的一个新方向,是求解非线性方程问题的一个最基本而又重要的方法.本文主要介绍了非线性方程求解的不动点算法及其研究,首先,综述了非线性方程求解的不动点算法的研究背景、并阐述了本文的主要工作以及介绍了误差、有限差等基本知识;然后,详细介绍了不动点迭代算法的基本思想、在什么条件下方程存在不动点的收敛定理、不动点的收敛阶定理和Atiken加速公式;最后,考虑到方程可能会不满足不动点迭代收敛定理的两个条件的情况提出了反函数法、牛顿迭代法、Steffensen 迭代法和松弛法这四中处理方法.关键词:非线性方程,不动点原理,迭代法ABSTRACTA large number of practical problems of nonlinear equations in engineering practice,economics of information security and other the dynamics has a very wide range of applications.As a new direction in the study of mathematics,fixed point iterative algorithm is a basic and important methods to solving nonlinear equations problem.This paper describes the solving nonlinear equations fixed point algorithm and research. First, the research background of solving nonlinear equations fixed point algorithm and the main word are introduced, the basic knowledge of errors,finite difference are introduced ; Second, the fixed point iterative basic idea, algorithm convergence and convergence rate and the aitken formula are detailed; Last, inverse function method, the newton iterative method,Steffensen iterative method and the relaxation method are proposed when the equation dose not satisfy the fixed point iteration convergence conditions.Keywords:Nonlinear Equation, Fixed Point Theorem, Iterative Method目录摘要 (I)ABSTRACT (I)第1章绪论 (1)1.1 研究背景 (1)1.2 预备知识 (2)1.2.1 误差 (2)1.2.2 有限差 (3)第2章非线性方程求解的不动点迭代算法 (5)2.1不动点迭代算法的基本思想 (6)2.2 不动点迭代算法的收敛性 (7)2.3 不动点迭代算法的收敛速度 (11)2.4 加速不动点迭代算法及其收敛性 (12)第3章非收敛不动点迭代格式的几类处理方法与比较 (14)3.1 非收敛不动点迭代格式的几类处理方法 (15)3.1.1 反函数法 (15)3.1.2 牛顿迭代法 (15)3.1.3 Steffensen迭代法 (15)3.1.4 松弛法 (16)3.2 数值实例 (17)结论 (21)参考文献 (23)附录 (24)致谢 (35)第1章绪论1.1 研究背景非线性数值解的问题是现代数学的主要研究课题之一,这不仅是由于科学技术发展的需要,而且也是由于计算技术的高速发展提供了解决这类问题的可能,利用计算机解决非线性问题时,最终总是将其化成为有限维非线性问题,或称为非线性代数问题.对于求解非线性方程,无论从理论上还是从计算机上,都比解线性问题要复杂的多,一般的非线性方程是很难求出精确解的,往往只能求出近似解、数值解,而长期以来,人们为了得到满足条件的近似值,许多计算工作者致力于研究求解非线性方程的有效方法,尤其是计算机出现后函数方程求根的数值解法得到了蓬勃发展,十七世纪,微积分出现时,Newton和Halley发明了各自的新的数学工具去解非线性方程,十八世纪,随着微积分的快速蓬勃发展,Euler和Lagrange分别找到了一个无穷级数来表示方程解,并以各自的名字来命名,十九世纪,人们开始注重问题分析的严密性,柯西建立了优级数技巧,该技巧不断的被以后的事实证明对于研究方程近似解序列的收敛性是很有成效的,在分析严密性发展的时代,Ostrowski对Newton迭代法的收敛性问题规定了一个合理的假设和一个令人满意的解法,在软件分析完善的年代,Kantorovich把Newton迭代法和Ostrowski的结果推广到Banach空间,从而使许多用硬分析去做非常棘手的有关问题被轻轻松松地推论中得到了令人满意的解决,等等,总之,这些方法不断地被后人完善,但在目前,实际问题中可能还需要求方程的负根,求非线性方程(组)的迭代法,求微分方程迭代法等等,迭代方法还需要更深入的研究,同时意味着迭代法的发展空间将会更广阔.本文将着重介绍求解非线性方程的不动点算法,其中文献[3]是由王则柯先生于1988年总结的单纯不动点算法,他简述了不动点在非线性方程数值解、微分方程初值问题、边值问题、分支问题等许多应用问题方面的十多年的发展,以及对单值连续映射的不动点或零点问题进行了讨论,在文献[4]中,许炎先生简单的阐述了国内外有关不动点理论的发展状况,并主要讨论了L-Lipschitz映射的不动点迭代逼近定理,[3][4]这两篇文献都总结出了不动点问题的研究和解决在实际问题中起到了至关重要的作用,这一系列的文献还有[5][6][7][8],而秦小龙先生在文献[9]中介绍了迭代法的发展情况以及相关定理,为本篇论文提供了大量的基础信息,王公俊先生在文献[10]中分别介绍了常用的求解非线性方程的方法以及收敛性,在文献[11]中,张卷美主要研究了一类不动点迭代法的求解,在迭代格式不满足迭代条件的情况下,运用的几种处理方法,并且用C语言编程上机进行了计算,对迭代收敛结果进行了分析和比较,为本文提供了大量的信息,另外,本文还借鉴了2本不同出版社的《数值分析》教材的大量内容.本文主要介绍了非线性方程求解的不动点算法及其应用,第一章为绪论部分,主要介绍了为什么要研究本文的一些原因、目的,以及价值,也准备了一些预备知识作为对正文的补充;第二章介绍迭代法与不动点的相关思想原理、定理以及迭代法的收敛条件,是本文的一个主要章节和工作重心,并且举出了几个实例来辅助证明了运用不动点迭代法求解非线性方程的方便以及准确性;第三章作为对第二章节的一个完善,非常具有实用性,主要讨论了非收敛不动点迭代格式的几类处理方法,并通过数值实例给予了证明.1.2 预备知识1.2.1 误差误差的来源有多个方面,主要有模型误差、观测误差、截断误差、舍入误差等.例1.1 可微函数)(x f 用泰勒(Taylor)多项式 ,!)0(...!2)0(!1)0()0()()(2n n n x n f x f x f f x p +''+'+= 近似代替,则数值方法的截断误差是 ,)!1()()()()(1)1(+++=-=n n n n x n f x p x f x R ξ ξ在0与x 之间.也就是说,截断误差就是近似值与精确值之间的误差.例1.2 用3.14159近似代替π,表示舍入误差..0000026.014159.3⋅⋅⋅=-=πR同样,可以定义舍入误差是指由于计算机字长有限在表示时产生的误差.定义1.1[1] 设x 为准确值,*x 为x 的一个近似值,称x x e -=**为近似值的绝对误差,简称误差.然而,在实际中,人们是无法准确计算出误差*e 的精确值的,一般是根据需要估计出误差的绝对值不超过某正数*ε,也就是误差绝对值的一个上界,*ε叫做近似值的误差限,它总是正数.对于一般情形,**||ε≤-x x ,即,****εε+≤≤-x x x (1.1)这个不等式有时也表示为.**ε±=x x (1.2)误差的大小有时还不能完全表示近似值的好坏,例如,有两个量110±=x ,51000±=y ,则.5,1000;1,10****====y x y x εε虽然*y ε是*x ε的5倍,但是%5.0**=y y ε比%10**=xx ε小得多,这就说明了*y 近似y 的程度比*x 近似x 的程度要好得多,因此,除了需要考虑误差的大小之外,还应该考虑准确值本身的大小.我们把近似值的误差*e 与准确值x 的比值 ,**xx x x e -= (1.3) 称为近似值*x 的相对误差,记作*r e .在实际计算中,由于真值x 总是不知道的,通常取 ,*****xx x x e e r -== (1.4) 作为*x 的相对误差,条件是***xe e r =较小,此时 ,)(1)()()()(**2*****2*******x e x e e x x e x x x x e x e x e -=-=-=- (1.5) 是*r e 的平方项级,故可忽略不计.相对误差也可正可负,它的绝对值上界叫做相对误差限,记作*r ε,即 .||***x r εε= (1.6) 根据定义,上例中 %10||**=x x ε与%5.0||**=y y ε分别为x 与y 的相对误差限,很显然*y 近似y 的程度比*x 近似x 的程度好得多.在实际运算中,为了避免误差危害,数值计算中通常不采取数值不稳定算法,在设计算法是应该尽量避免误差危害,防止有效数字损失,通常要避免两个相近数字相减和用绝对值很小的数做除数,还要注意运算次序和减少运算次数.1.2.2 有限差定义1.2[2] 分别称),()()(x f h x f x f -+=∆ (1.7) ),()()(h x f x f x f --=∇ (1.8) ⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+=22)(h x f h x f x f δ (1.9)为函数)(x f 在点x 的一阶向前差分,一阶向后差分和一阶中心差分,或者分别简称为一阶前差,一阶后差,一阶中心差,统称为(一阶)有限差,其中)0(>h 表自变量的有限增量,称为步长,∇∆,和δ分别成为(一阶)前差算子、(一阶)后差算子和(一阶)中差算子,统称为(一阶)有限差算,仿此,可以定义高阶有限差,例如,二阶前差记作)(2x f ∆,定义为[]).()()()(2x f h x f x f x f ∆-+∆=∆∆=∆ (1.10) 于是,有).()(2)2()(2x f h x f h x f x f ++-+=∆ (1.11) n 阶前差记作)(x f n ∆,定义为[]).()()()(111x f h x f x f x f n n n n ---∆-+∆=∆∆=∆ (1.12) 同样,二阶后差)(2x f ∇和n 阶后差)(x f n ∇分别定义为[])()()()(2h x f x f x f x f -∇-∇=∇∇=∇ (1.13)和[]).()()()(111h x f x f x f x f n n n n -∇-∇=∇∇=∇--- (1.14) 二阶中心差 )(2x f δ 和n 阶中心差)(x f n δ分别定义为[],22)()(2⎪⎭⎫⎝⎛--⎪⎭⎫ ⎝⎛+==h x f h x f x f x f δδδδδ (1.15)和[].22)()(111⎪⎭⎫⎝⎛--⎪⎭⎫⎝⎛+==---h x f h x f x f x f n n n n δδδδδ (1.16)我们规定0()()f x f x ∆=, 0()()f x f x ∇=, 0()()f x f x δ=.有限差有下列一下性质:(1)常数的有限差恒为零.(2)有限差算子为线性算子,即对任意的实数α,β恒有()),()()()(x g x f x g x f ∆+∆=+∆βαβα (1.17) ()),()()()(x g x f x g x f ∇+∇=+∇βαβα (1.18)()).()()()(x g x f x g x f βδαδβαδ+=+ (1.19)(3)用函数值表示高阶有限差:()),)((1)(0h i n x f C x f ni in i n -+-=∆∑= (1.20)()),(1)(0ih x f C x f n i in i n --=∇∑= (1.21)()),)2((1)(0h i hx f C x f n i i n i n -+-=∑=δ (1.22)其中 .!)1()1(i i n n n C i n +-⋅⋅⋅-= (4)用有限差表示函数值 .)()(0∑=∆=+n i i i nx f C nh x f (1.23)第2章 非线性方程求解的不动点迭代算法2.1不动点迭代算法的基本思想首先讨论解非线性方程)(x g x = (2.1) 的问题. 方程(2.1)的解又称为函数g 的不动点. 为求g 的不动点,选取一个初始值0x ,令⋅⋅⋅==-,2,1),(1k x g x k k (2.2) 已产生序列}{k x . 这一类迭代法称为不动点迭代. )(x g 又被称为迭代函数, 很显然,若迭代序列}{k x 收敛,即有,lim p x k k =∞→ (2.3) 且)(x g 连续,则p 是g 的一个不动点.例2.1[2] 方程042)(23=-+=x x x f 在区间[]2,1中有唯一跟. 我们可以用不同的方法将它化为方程:(1);42)(231+--==x x x x g x(2);22)(212⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-==x x x g x (3);22)(2133⎪⎪⎭⎫ ⎝⎛-==x x g x (4);212)(214⎪⎭⎫ ⎝⎛+==x x g x (5),4342)(2235xx x x x x g x +-+-== 等等.取初始值5.10=x ,分别用式(2.2)的迭代格式计算,结果如下表.表2.1 例2.1迭代公式计算结果从表2.1中可以看到,选取迭代函数为)(4x g ,)(5x g ,分别12次和4次,得到方程的近似根1.130395435.若选取)(3x g 作为迭代函数,则k 为奇数时迭代子序列单调增加,k 为偶数时迭代子序列单调减小,迭代120次得到近似根1.130395436. 若选取)(1x g 作为迭代函数,则迭代序列不收敛, 若选取)(2x g 为迭代函数,则出现了负数开方,因而无法继续进行迭代.2.2 不动点迭代算法的收敛性通过例2.1,可以总结出,对于同一个非线性方程的求解问题,在转化为迭代方程时应该要使其解的迭代次数达到最小,且得到的解应该最精确. 在选择迭代函数)(x g 的基本原则是,首先必须保证不动点迭代序列⋅⋅⋅⋅⋅⋅,,,21k x x x 在)(x g 的定义中,以使迭代过程不至于中断;其次要求迭代序列}{k x 收敛且尽可能收敛得快.定理2.1[2] 假设)(x g 为定义在有限区间[]b a ,上的一个函数,它满足以下条件 (1)对任意[]b a x ,∈有[];,)(b a x g ∈ (2.4) (2))(x g 的导数)(x g '在[]b a ,上有界,且存在正数1<L 使得对一切[]b a x ,∈有 ,1|)(|<≤'L x g (2.5) 那么对于任意初始值[]b a x ,0∈由不动点迭代(2.2)产生的序列都收敛于g 在[]b a ,的唯一不动点p ,并且有误差估计式|,|1||01x x LL e kk --≤,1≥k (2.6) 其中p x e k k -=.证明 首先证明g 的不动点存在且唯一. 令 ).()(x g x x h -= (2.7)据条件(1),0)()(≤-=a g a a h .0)()(≥-=b g b b h又据条件(2),在)(x g '上存在,因此)(x g 在[]b a ,上连续,从而)(x h 在[]b a ,上也连续,因此方程0)(=x h 在[]b a ,上至少有一个跟.现假设方程0)(=x h 在[]b a ,上有两个根q p q p ≠,,,则由Lagrange 中值定理知,在p 与q 之间存在ξ使得|,||)(||))((||)()(|||q p g q p g q g p g q p -'=-'=-=-ξξ 再由(2.5).|||||||)(|q p q p L q p g -<-≤-'ξ这就得到矛盾式:.||||q p q p -<- 因此q p =,即0)(=x h 在[]b a ,中的根是唯一的.其次证明由不动点迭代格式(2.2)产生的序列}{k x 是收敛于p 的.根据定理条件(1)[]b a x k ,∈,⋅⋅⋅=,2,1,0k ,因此不动点迭代过程不会中断.由(2.5)式有).()(1p g x g p x k k -=-- (2.8) 应用Lagrange 中值定理,并根据(2.5)式有|||||)(||)()(|||111p x L p x g p g x g p x k k k k -≤-'=-=----ξ.||0p x L k -≤⋅⋅⋅≤ (2.9) 因为10<<L ,所以,0||lim ||lim 0=-≤-∞→∞→p x L p x k k k k即.lim p x k k =∞→ (2.10)最后,推导估计式(2.6).应用收敛性的证明过程,有|||)()(|||111-++-+++++-≤-=-j k j k j k j k j k j k x x L x g x g x x|,|01x x L j k -≤⋅⋅⋅≤+ (2.11) 于是()∑∑-=+++-=++++-≤-=-11101||m j j k j k m j j k j k k m k x x x xx x||1)1(||010110x x LL L x x Lm k m j jk ---=-≤∑-=+.||101x x LL k--≤ (2.12)在上式中令∞→m ,得.1||||01x x L L p x e kk k --≤-= (2.13) (2.6)式得证.例2.2[2] 讨论例2.1中不动点迭代⋅⋅⋅=⎪⎪⎭⎫ ⎝⎛-==--,2,1,22)(213113k xx g x k k k (2.14) 的收敛性. 为使解的近似值的误差不超过810-,试确定迭代次数.解 迭代法(2.14)的迭代函数为.22)(2133⎪⎪⎭⎫⎝⎛-=x x g )(3x g 的定义域为]4,(3-∞.取初始值5.10=x ,由不动点迭代(2.21)得559016994.01=x ,因此取区间[][]5.1,5.0,=b a .由于,02243)(22133<⎪⎪⎭⎫ ⎝⎛--='-x xx g [],5.1,5.0∈x 因此)(3x g 在[]5.1,5.0上单调减小. 而[],559.0)5.1()(min 335.1,5.0≈=∈g x g x[],399.1)5.0()(max 335.1,5.0≈=∈g x g x于是,当[]5.1,5.0∈x 时,[]5.1,5.0)(3∈x g ,但,04432243)(232333<⎪⎭⎫⎝⎛+-⎪⎪⎭⎫ ⎝⎛--=''-x x x xx g [],5.1,5.0∈x )(3x g '在[]5.1,5.0上单调减小,因此 [][]{}3330.5,1.50.5,1.5max |()|max |(0.5)|,|(1.5)|x x g x g g ∈∈'''=.019.3)5.1(3≈'=g 因此,定理2.1的条件(2)不成立.从表2.1看到,取133074649.130=x 作为初始值0x ,128116321.131=x 作为1x .当[]3031,x x x ∈时,[]303132,31,x x x x ∈从而[]30313,)(x x x g ∈.又由于[]313033,|()|max |()|x x x g x g x ∈''≤{}331330max |()|,|()|g x g x ''= ,1853541077.0)(303<=≈'=L x g因此定理2.1的条件成立.故迭代过程收敛[]3031,x x 中任意取初值,为使解p 的近似值k x 的误差不超过810-,根据误差估计式(2.6)|,|1||01x x L L p x kk --≤- 只要.10||1801-<--x x L L k因此,k 应取为810||lg10lg1lg x x L k L ---->853541077.0lg 146458923.0128116321.1133074649.1lg 8⎪⎭⎫⎝⎛---≈.69977.137≈取138=k .于是迭代138+30=168次必可使近似解的误差不超过810-. 实际上,从表2.1中可以看到,只要迭代110次便可达到所要求解的精度.(2.6)式右端是最大可能的误差界. 就本例来说,估计的迭代次数偏大了.2.3 不动点迭代算法的收敛速度定理2.2[2] 在定理2.1的假设条件下,再设函数)(x g 在区间[]b a , 上)2(≥m 次连续可微,且在方程(2.1)的跟p 处,0)()(=p g j ,1,,1-⋅⋅⋅=m j ,0)()(≠p g m (2.15) 则不动点迭代为m 阶收敛.证明 据定理2.1知,方程(2.1)在[]b a ,上有唯一根p .且对任意初始值[]b a x ,0∈,不动点迭代序列{}k x 收敛于p 由于),()()()(11p g e p g p g x g p x e k k k k -+=-=-=++ (2.16) 据Taylor 公式和定理条件有()mkk k m m k m k k k e e p g m e p g m e p g e p g e )(!1)()!1(1)(!21)()(1121θ++-+⋅⋅⋅+''+'=--+ ,)(!1)(mk k k m e e p g m θ+=其中10<<k θ. 易知,对于充分大的k ,若 01≠-k e ,则 ),1,(0⋅⋅⋅+=≠k k i e k ,从而()).(!1lim 1p g m e e m m k k k =+∞→ (2.17)故证得不动点迭代为m 阶收敛.关于不动点的迭代,还有下面的局部收敛定理.定理2.3[2] 设p 是方程(2.1)的一个根,)(x g 在p 的某领域内m 次连续可微,且 ,0)()(=p g j ,1,,1-⋅⋅⋅=m j ,0)()(≠p g m ),2(≥m则当初始值0x 充分接近p 时(存在正数r ,对一切[]r p r p x +-∈,0),不动点迭代序列{}k x 都收敛于p ,且收敛阶数为m .证明 由于假设()x g '在p 的某领域内连续且()0='p g ,因此必存在0>r 使得对一切[]r p r p x +-∈, 有.1|)(|<≤'L x g 又据Lagrange 中值定理,有),)(()()(p x g p g x g -'=-ξ ξ在x 与p 之间,从而,|||||)(||)()(|r p x p x g p g x g ≤-<-'=-ξ 即.|)()(|r p g x g <- (2.18) 因此当[]r p r p x +-∈,时,[]r p r p x g +-∈,)(.据定理2.2和定理2.3知,对于任意初始值[]r p r p x +-∈,0,不动点迭代收敛,且收敛阶数为m .2.4 加速不动点迭代算法及其收敛性一个收敛的迭代过程将产生一个收敛序列⋅⋅⋅⋅⋅⋅,,,,21n x x x ,如p x n n =∞→lim .这样,只要迭代足够多次,即n 充分大时,如m n =,则可取m x p ≈.但若迭代过程收敛缓慢,则会使计算量变得很大,因此需要加速收敛过程.假设一个序列{}n x :⋅⋅⋅⋅⋅⋅,,,,21n x x x ,线性收敛于p (收敛缓慢),即有λ=--+∞→p x px n n n 1lim ().0≠λ (2.19) 于是当n 足够大时,有,121px px p x p x n n n n --≈---++ 即),)(()()221p x p x p x n n n --≈-++亦即.)(22222121p p x x x x p p x x n n n n n n ++-≈+-++++ (2.20) 解得nn n n n n x x x x x x p +--=++++12212222221121222n n n n n n n n n n n nx x x x x x x x x x x x ++++++-+--=-+.2)(1221nn n n n n x x x x x x +---=+++ 定义⋅⋅⋅=+---=++++,2,1,0,2)(~12211n x x x x x x x nn n n n n n , (2.21)(2.21)称为Aitken 加速公式(方法).Aitken 加速方法得到的序列{}n x ~:⋅⋅⋅⋅⋅⋅,~,,~,~21n x x x 较原来的序列{}n x 更快地收敛于p . 有下面的定理.定理 2.4[2] 设序列}{n x 是线性收敛于p 的,并且对于所有足够大的整数n 有0))((1≠--+n n x p x ,则由Aitken 加速方法(2.21)产生的序列{}n x ~有.0~lim 1=--+∞→p x px n n n (2.22) 证明 由假设序列}{n x 线性收敛于p ,即有,lim 1λ=--+∞→p x px nn n ,0≠λ.记,1λ---=+px px q n n n (2.23) 则有 0lim =∞→n n q ,0lim 1=+∞→n n q . 据(2.21)式,()⎥⎦⎤⎢⎣⎡-+----=--++++p x x x x x x p x p x p x nn n n n n n n n 1221121~2121()1()(2)n n n n n n x x x p x x x +++-=---+21221212111[()]()1()[2()]111..21n n n n n n n n n n n n n n n x p x p x p x p x p x p x p x p x p x p x p x p x p x p x p ++++++++----=-----+-⎡⎤-=--⎢⎥-⎡⎤---⎣⎦-+⎢⎥---⎣⎦ .1)(2))((1)1(112++-++⋅-+-=+λλλλn n n n q q q q (2.24)因此有.012)1(1~lim 221=+---=--+∞→λλλp x p x nn n在绪论中有讲到一阶前差:,1n n n x x x -=∆+ ⋅⋅⋅=,2,1,0n 二阶前差:,2)(122n n n n x x x x x +-=∆∆=∆++ .,2,1,0⋅⋅⋅=n 于是,Aitken 加速公式(2.21)可改写成,)(~221n n n n x x x x ∆∆-=+ .,2,1,0⋅⋅⋅=n (2.25)由于这个缘故,Aitken 加速方法又称为Aitken 2∆加速方法.例2.3[2] 设nx n 1cos =,则1lim =∞→n n x . 由于,111cos 111cos lim 11lim 1=--+=--∞→+∞→nn x x n n n n 因此序列{}nx 收敛于1. 由序列{}nx 应用Aitken 加速方法计算得{}nx ~的开头几项列表如下(表2.2).{}n x ~确实比{}n x 更快的收敛于1.第3章 非收敛不动点迭代格式的几类处理方法与比较在第2章中主要介绍了求解非线性方程的不动点迭代法,其要求是迭代函数要满足收敛定理假定条件,而在现实生活中,明确满足这些条件的迭代函数是很少见的,本章对于迭代函数不满足收敛条件的情况,提出了几类处理方法.3.1 非收敛不动点迭代格式的几类处理方法一个方程的迭代格式不是唯一的,且迭代也不都是收敛的,其收敛性取决于迭代函数)(x g 和初值0x ,关于不动点迭代函数的收敛性,上一章已经进行了讨论, 但假若[]b a x ,∈时,1)(>≥'L x g ,就不满足定理2.1的条件(2)了,于是下面分别介绍了反函数法、牛顿迭代法、Steffensen 迭代法和松弛法这四中处理方法.3.1.1 反函数法因为)(x g x =,有[])(1)(1x g x g '='-,则当[]b a x ,∈时,[]11)(1<≤'-Lx g ,所以方程)(x g x =可写成等价形式)(1x g x -=,从而构造迭代格式)(11k k x g x -+=, ),1,0(⋅⋅⋅=k (3.1) 很明显,)(11k k x g x -+=满足收敛条件.对于)(x g 简单情况, 其反函数)(1x g -容易得到.3.1.2 牛顿迭代法对于迭代格式)(x g x =的情形,采用Newton 迭代格式有 ,)(1)()()(1)(1k k k k k k k k k x g x g x x g x g x g x x x '-'-='---=+ ),1,0(⋅⋅⋅=k (3.2)3.1.3 Steffensen 迭代法根据Aitken 加速算法,对迭代格式)(1k k x g x =+,),1,0(⋅⋅⋅=k ,进行如下修改:),(k k x g y = ),(k k y g z =[]kk k k k k k k k k k k k x x g x g g x g x g g x g g x y z y z z x +---=+---=+)(2))(()())(())((2)(221 (3.3)其中⋅⋅⋅=,1,0k .3.1.4 松弛法将)(x g x =化成等价形式)()1(x wg x w x +-= , 称w 为松弛因子, 从而构造迭代格式),()1(1k k k x wg x w x +-=+ (3.4)其迭代函数为)()1()(x wg x w x g +-= . 记)(min minx g g bx a '='≤≤,)(max max x g g bx a '='≤≤,得到如下结论:(1)当1)(>≥'L x g 时,w 取01)(2max <<-'-w x g 时,)()1(1k k k x wg x w x +-=+迭代收敛;(2)当1)(-<-≤'L x g 时,w 取)(120minx g w '-<< 时,)()1(1k k k x wg x w x +-=+迭代收敛;(3)当1)(<≤'L x g 时,w 取)(1)(11minminx g x g w '-'+<< 时,迭代格式)()1(1k k k x wg x w x +-=+比迭代格式)(1k k x g x =+收敛快. 推导如下:(1)当1)(>≥'L x g 时,由01)(2max<<-'-w x g 得到2)(max->-'w x g w ,其迭代函数为)()1()(x wg x w x f +-=. 因为()()()()()()()max1111111f x w wg x w wg x f x w wg x w g x '''=-+≥-+>-'''=-+=+-<所以有1)(<'x g ,从而)()1(1k k k x wg x w x +-=+迭代收敛.(2)当1)(-<-≤'L x g 时, 由)(120min x g w '-<<得到2)(min->'+-x g w w . 因为()()()()()()()min111,1111f x w wg x w wg x f x w wg x w g x '''=-+≥-+>-'''=-+=+-<所以有1)(<'x f , 从而)()1(1k k k x wg x w x +-=+迭代收敛.(3)当1)(<≤'L x g 时, w 取)(1)(11min minx g x g w '-'+<<,由1>w 得到[]0)(1)1(<'--x g w ,()()()()()1(1)1f x w wg x w g x g x g x '''''=-+=--+<⎡⎤⎣⎦ 由)(1)(1minminx g x g w '-'+<得到0)()(1min min>'+-'+x g w w x g .()()min()11f x w wg x w wg x '''=-+≥-+()()()()minmin 1w wg x g x g x g x ''''≥-++->-所以有)()(x g x f '<', 从而迭代格式)()1(1k k k x wg x w x +-=+ 比迭代格式)(1k k x g x =+收敛快.3.2 数值实例通过以上四种方法都可以解决非收敛不动点迭代格式的问题,现对上述四种给出几个不满足不动点迭代收敛定理的实例,并对结果进行分析和比较. 例3.1 求方程033=--x x 在区间[]2,1内的根,要求精度为510-.解 对于方程033=--x x ,将它化为33-=x x ,所以3)(3-=x x g ,则当[]2,1∈x 时,13)(2>='x x g ,不满足定理2.1的条件(2),因此不能由(2.2)的迭代格式计算.下面分别用反函数方法、牛顿(Newton )迭代法、Steffensen 迭代法、松弛法对迭代函数进行修改,得到相应新的迭代函数,并用C 语言编程上机计算. (1)反函数法:迭代格式为),(11k k x g x -+= 即.)3(311+=+k k x x 取初值5.10=x ,运用程序见附录1.(2)牛顿(Newton )迭代法:迭代格式为,)(1)()()(1)(1k k k k k k k k x g x g x x g x g x g x x x '-'-='---=+即.133231)3(23231-+=----=+k k k k k k k x x x x x x x 取初值5.10=x ,运用计算程序见附录二; (3) Steffensen 迭代法:迭代格式为),(k k x g y = ),(k k y g z = [][].)(2))(()())(())((2221kk k k k k kk k k k k k x x g x g g x g x g g x g g x y z y z z x +---=+---=+即,33-=k k x y,3)3(33--=k k x z[].)3(23)3()3(3)3(3)3(3332333331kk k k kk k x x x x xx x +-----------=+ 取初值5.10=x ,运用如下程序可以得到结果: (4)松弛法:迭代格式为),()1(1k k k x wg x w x +-=+ 即),3()1(31-+-=+k k k x w x w x当[]2,1∈x 时,13)(2>='x x g ,且3)(min='x g ,12)(max ='x g ,所以w 的取值范围为01122>>--w ,现取5.10=x ,15.0-=w ,运用C 语言编程可得到起结果. 以上这四种方法的计算结果见表(3.1),本例中以上四种方法都是收敛的,因此这四种方法均可以解决不满足收敛条件的不动点迭代收敛问题,同时本例中变换后的Newton 迭代法收敛的最快.例 3.2 求方程0124=--x x 在区间[]2,1内的根,要求精度为510-.解 对于方程0124=--x x ,将它化为21214-=x x ,所以2121)(4-=x x g ,则当[]2,1∈x 时,14)(3>='x x g ,因此不满足不动点迭代收敛条件,为求此次方程的解,下面同样分别用本章介绍的四种方法求解此方程. (1)反函数法:迭代格式为),(11k k x g x -+= 将方程变为迭代格式为().12411+=+k k x x取初值5.10=x ,运行附录5的相应程序即可得计算结果. (2)牛顿(Newton )迭代法:迭代格式为,)(1)()()(1)(1k k k k k k k k x g x g x x g x g x g x x x '-'-='---=+代人例题中的数据.12212321212134341-+=-⎪⎭⎫ ⎝⎛---=+k k k k k k k x x x x x x x 取初值5.10=x ,运行附录6的程序即可的计算结果. (3)Steffensen 迭代法:迭代格式为),(k k x g y =),(k k y g z = [][].)(2))(()())(())((2221kk k k k k kk k k k k k x x g x g g x g x g g x g g x y z y z z x +---=+---=+代入例题中的数据有,21214-=k k x y ,2121212144-⎪⎭⎫ ⎝⎛-=k k x z.2121221212121212121212121212121214442444441k k k k k k k x x x x x x x +⎪⎭⎫⎝⎛---⎪⎭⎫ ⎝⎛-⎥⎥⎦⎤⎢⎢⎣⎡⎪⎭⎫ ⎝⎛---⎪⎭⎫ ⎝⎛---⎪⎭⎫ ⎝⎛-=+ 取初值5.10=x ,运行附录7即可算得计算结果. (4)松弛法:迭代格式为),()1(1k k k x wg x w x +-=+ 代入例题中的数据有.2121)1(41⎪⎭⎫ ⎝⎛-+-=+x w x w x k k当[]2,1∈x 时,14)(3>='x x g ,13224)(3max>=⨯='x g ,所以w 取值在01322<<--w ,现取05.0-=w ,初值5.10=x ,运行附录8的程序即可得到计算结果.以上这四种方法的计算结果见表(3.2),本例中以上四种方法都是收敛的,因此这四种方法均可以解决不满足收敛条件的不动点迭代收敛问题,同时本例中变换后的Newton 迭代法收敛的最快.例3.3 求方程032=-+x e x 在区间[]1,0内的根,要求精度为510-.解 将方程化为等价形式x e x 23-=,那么此时x e x g 23)(-=.当[]1,0∈x 时,12)(>-='x e x g ,因此不满足不动点迭代收敛条件.按下面这四种方法处理可以得到近似解.(1)反函数法:首先由反函数处理方法可得到迭代格式,223ln 1⎪⎭⎫⎝⎛-=+k k x x取初值5.00=x ,运用程序见附录9.(2)牛顿(Newton )迭代法:由牛顿迭代法得到迭代格式,21321kk x x k k k e e x x x +-+-=+ 取初值5.00=x ,运用程序见附录10.(3)Steffensen 迭代法:由Steffensen 迭代法得到迭代格式,23k x k e y -= ,2322⎪⎭⎫ ⎝⎛--=k x e k e z()()[](),)23(223232323223231kx e e e k x e e e e x kkx kx kx +------=---+ 取初值5.00=x ,运用程序见附录11. (4)松弛法:由松弛法得到迭代格式为(),23)1(1x k k e w x w x -+-=+当[]1,0∈x 时,122)(-<-≤-='x e x g ,e x g 2)(min-=',所以w 取ew 2120+<<之间的值,现取2.0=w ,初值5.00=x ,运用程序见附录12.以上这四种方法的计算结果见表(3.2),本例中以上四种方法都是收敛的,因此这四种方法均可以解决不满足收敛条件定理的不动点迭代收敛问题,同时本例中变换后的Newton 迭代法收敛的最快.结 论非线性代数问题的解法是现代计算数学的一个重要研究课题,而不动点迭代算法是求解非线性方程近似根的一个重要方法.本文通过搜集大量资料了解了非线性方程求解的不动点迭代算法的的研究背景,以及研究价值,然后通过介绍不动点迭代法的基本思想,对不动点迭代法的收敛性、收敛速度以及加速不动点迭代算法的收敛性进行了研究,并结合实例经行了比较分析,对于不满足收敛条件的情况,本文通过翻阅大量资料和文献,归纳总结出了四种处理方法,分别为反函数法、牛顿(Newton)迭代法、Steffensen 迭代法、松弛法,使得不满足收敛不动点迭代格式的非线性方程的求解得到了解决,同样也给出了相关实例进行了比较和验证.具体来说,对于一般的非线性方程,只要满足第2章定理2.1中的条件(1)和条件(2),那么对于任意的初始值[]b a x ,0∈,则由不动点迭代⋅⋅⋅==-,2,1),(1k x g x k k 产生的迭代序列都收敛于g 在[]b a ,的唯一不动点p ,那么要考虑的是光是收敛还不能很好的解决一个迭代效率问题,于是本文还致力研究了不动点迭代法的收敛速度,以及加速不动点迭代法.而对于一般不满足第2章定理2.1中的条件(1)或者条件(2)的情况,那么有不动点迭代算法产生的迭代序列不是收敛的,就不能求出函数的近似解,那么本文通过阅读大量的资料以及文献,总结出了四种比较好用的处理方法,并且通过3个实例,可以发现这几种方法不仅能得到收敛的迭代序列,而且收敛的速度也比较快,通过分析比较这四种方法,牛顿迭代法的迭代效果最好.这也是本文的亮点所在.由于诸多条件限制,本文也有很多不足之处,比如说没有足够多的实例来充分的证明第2章的定理2.2与定理2.3,并且对于第3章给出的3个实例中的精度要求较低,有待于继续研究,若有条件,可以更深层次的研究非线性方程组的不动点算法及其应用.参考文献[1] 李庆扬,王能超,易大义.数值分析[M].北京:清华大学出版社,2008,32(2):3-8[2] 林成森.数值分析[M].北京:科学出版社,2007,18(1):133-135,255-265[3] 王则柯.单纯不动点算法[J].广州:中山大学数学系,1988,12(12):113-127[4] 许炎.Banach空间中的不动点迭代逼近[J].苏州:苏州科技学院数理学院,2010,13(2):1-44[5] 李素红.非线性算子的不动点迭代逼近[J].天津工业大学学报,2006,16(1):51-58[6] 孙俊萍,徐裕生.非线性算子的不动点定理[J].长春大学学报,2000,10(5):30-31[7] 宋娜娜.几类非线性算子的不动点定理[J].长春工程学院学报(自然科学版),2003,4(3):1-4[8] 段华贵.几类非线性算子的不动点定理及应用[J].哈尔滨师范大学自然科学学报,2004,20(4):31-33[9] 秦小龙.非线性算子方程的迭代算法[J].科学技术与工程研究简报,2010,10(13):3169-3170[10] 王公俊.非线性方程的迭代法研究[J].河北大学学报(自然科学版),2000,20(3):228-231[11] 张卷美.一类不动点迭代法的求解[J].燕山大学学报,1998,22(2):140-142[12] 高尚.不动点迭代法的一点注记[J].大学数学.2003,19(4):30-37[13] 代璐璐.非线性方程组的迭代解法[J].合肥工业大学学报,2012,5(4):1-57[14] Halikias, Galanis, Karcanias, Milonidis.Nearest common root of polynomials,approximate greatest common divisor and the structured singular value[J].IMA Journal of Mathematical Control & Information,2013,30(4):423-442附录附录1(反函数处理法):%main()为主函数%用途:用反函数法求解非线性方程在非收敛不动点迭代格式情况下的解%格式:solut (double x,int k),solut为被调用函数,x为返回输出的值,即为迭代函数产生的迭代序列,k为在一定精度下的迭代次数#include <stdio.h>#include <math.h>double solut (double x,int k){double f;int i;for(i=0;i<k;i++){f=pow(x+3,1.0/3.0);x=f;}return(x);}main( ){double x0=1.5;int i,k;printf("\n input k(k>0):");scanf("%d",&k);for(i=1;i<=k;i++){printf("\n x=%6.5lf\n",solut(x0,i));}}附录2(牛顿(Newton)迭代法):%main()为主函数%用途:用牛顿(Newton)迭代法求解非线性方程在非收敛不动点迭代格式情况下的解%格式:solut (double x,int k),solut为被调用函数,x为返回输出的值,即为迭代函数产生的迭代序列k为在一定精度下的迭代次数#include <stdio.h>#include <math.h>double solut(double x,int k){double f;int i;for(i=0;i<k;i++){f=x-(pow(x,3)-x-3)/(3*pow(x,2)-1);x=f;}return(x);}main( ){double x0=1.5;int i,k;printf("\n input k(k>0):");scanf("%d",&k);for(i=1;i<=k;i++){printf("\n x=%6.5lf\n",solut(x0,i));}}附录3(Steffensen迭代法):%main()为主函数%用途:用Steffensen迭代法求解非线性方程在非收敛不动点迭代格式情况下的解%格式:solut (double x,int k),solut为被调用函数,x为返回输出的值,即为迭代函数产生的迭代序列,k为在一定精度下的迭代次数#include <stdio.h>#include <math.h>double solut(double x ,int k){double f,f1,f2;Int i;for(i=0;i<k;i++){f1=pow(x,3)-3;f2=pow(f1,3)-3;f=f2-(pow(f2-f1,2)/(f2-2*f1+x);x=f;}return(x);}main( ){double x0=1.5;int i,k;printf(“\n input k(k>0):”);scanf(“%d”,&k);for(i=1;i<=k;i++){printf(“\n x=%6.5lf\n”,solut(x0,i);}}附录4(松弛法):%main()为主函数%用途:用松弛法求解非线性方程在非收敛不动点迭代格式情况下的解%格式:solut (double x,int k),solut为被调用函数,x为返回输出的值,即为迭代函数产生的迭代序列,k为在一定精度下的迭代次数#include <stdio.h>。

浅谈用不动点迭代法求解非线性方程解的教学方法

浅谈用不动点迭代法求解非线性方程解的教学方法

浅谈用不动点迭代法求解非线性方程解的教学方法
不动点迭代法是求解非线性方程的一种有效的解法,它的核心思想是:通过迭代,使得方程的某个特定解变得更加接近,最终达到收敛的程度,从而得到最终的解。

一、教学目标
1、让学生了解不动点迭代法的基本原理;
2、让学生能够熟练使用不动点迭代法求解非线性方程;
3、让学生能够分析不动点迭代法的收敛性,并能够给出合理的迭代步骤。

二、教学步骤
1、讲解不动点迭代法的基本原理:
首先,教师应给学生讲解不动点迭代法的基本原理,包括它的定义、其基本思想、应用场景等。

2、提供实例:
然后,教师可以提供一些简单的实例,让学生熟悉不动点迭代法的使用,并能够熟练求解。

3、分析收敛性:
最后,教师可以让学生分析不动点迭代法的收敛性,并给出合理的迭代步骤,以便更好地求解非线性方程。

三、教学评价
教学评价主要是通过实例检验学生对不动点迭代法的掌握情况,以及分析收敛性的能力,以便更好地指导学生掌握不动点迭代法。

不动点法特征根法总结

不动点法特征根法总结

不动点法特征根法总结不动点法和特征根法都是数值计算方法中经常使用的技术。

它们都是通过迭代的方式来求解非线性方程或特征根的数值解。

下面是对不动点法和特征根法的总结和比较。

1. 不动点法(Fixed Point Method):不动点法是一种迭代算法,用于求解非线性方程的数值解。

它的基本思想是将非线性方程转化为一个等价的形式,其中等式的两边都包含同一个未知变量,然后通过不断迭代的方式逼近方程的数值解。

算法步骤:(1)将原方程转化为不动点方程:f(x)=x。

(2)选择初始近似值x0。

(3)通过递推公式xn+1 = g(xn)进行迭代,直到满足收敛准则。

优点:(1)不动点法在求解非线性方程时比较简单,易于实现。

(2)不动点法较为稳定,收敛速度较快。

(3)不动点法在逼近数值解时不需要对函数求导。

缺点:(1)不动点法的收敛性和唯一性需要满足一定的条件,不能保证对所有的方程都有效。

(2)不动点法的收敛速度较特征根法慢。

(3)需要选择合适的初始值,否则可能会导致迭代发散。

2. 特征根法(Eigenvalue Method):特征根法是一种用于求解特征值和特征向量的数值计算方法。

它在很多科学和工程领域广泛应用,例如结构力学、信号处理和量子力学等。

算法步骤:(1)构造矩阵A。

(2)计算A的特征值和特征向量。

(3)利用特征值和特征向量求解原问题。

优点:(1)特征根法对于求解特征值和特征向量非常高效,速度较快。

(2)特征根法易于理解和实现。

缺点:(1)特征根法要求矩阵A的阶数较小,计算复杂度较高。

(2)特征根法在求解特征值和特征向量时对矩阵的性质有一定要求,有时可能会出现精度不足或数值不稳定的问题。

(3)特征根法只能求解特征值和特征向量,无法直接求解其他类型的问题。

综上所述,不动点法和特征根法在数值计算中都具有重要的应用价值。

不动点法是一种用于求解非线性方程数值解的迭代算法,简单易实现,但收敛速度较慢;特征根法是一种用于求解特征值和特征向量的高效算法,但对矩阵尺寸和性质有一定要求。

数列不动点法原理

数列不动点法原理

数列不动点法原理数列不动点法是一种用于求解非线性方程的数值方法。

它的基本原理是通过迭代一定的数列,使得迭代过程中得到的数列中的元素逐渐接近非线性方程的解,从而得到非线性方程的近似解。

数列不动点法的核心思想是将非线性方程转化为一个等价的形式,即将其表示为自变量与函数值之间存在某种对应关系的形式。

假设要求解的非线性方程为f(x) = 0,其中x是未知量,而f(x)是一个函数。

为了寻找方程的解x,我们可以构造一个数列{x_n},使得数列中的元素逐渐逼近x,即x_n →x 当n →∞时。

数列不动点法的基本步骤如下:1. 选择一个适当的初始值x_0,作为数列的第一个元素。

2. 使用迭代公式x_n+1 = g(x_n),其中g(x)是一个连续函数,并且在解附近有一个不动点,即g(x) = x。

3. 重复步骤2,直到数列中的元素满足一定的停止准则,即满足收敛条件。

4. 当数列收敛时,其极限值就是非线性方程的解x。

数列不动点法的关键在于选择合适的迭代函数g(x)。

一个好的迭代函数应该具备以下两个特性:1. 迭代函数g(x)应该将解映射到它自身附近,即g(x) = x。

这个条件保证了迭代过程中,数列中的元素不断接近非线性方程的解。

如果迭代函数不满足这个条件,数列很可能发散,无法得到解。

2. 迭代函数g(x)应该满足Lipschitz条件。

Lipschitz条件要求在解附近有一个常数L,使得对于任意两个解附近的点x和y,有g(x) - g(y) ≤L x - y 。

这个条件保证了迭代过程中的收敛性。

需要注意的是,并不是所有的非线性方程都适合使用数列不动点法来求解。

有些方程可能不满足迭代函数的选择条件,导致迭代过程无法收敛。

此外,数列不动点法只能找到方程的一个解,无法找到所有解。

在实际应用中,数列不动点法可以用来求解一些常见的非线性方程,例如方程的根、方程组的解等。

它具有计算简单、容易实现等特点,适用于一些简单的函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xi=0:pi/180:5*pi/12;
yi=interp1(x,y,xi,'spline') %三次样条插值法
%五次多项式拟合
A=polyfit(x,y,5);
yj=polyval(A,xi)
运行结果:
yi =
Columns 1 through 11
0 0.0184 0.0365 0.0545 0.0724 0.0902 0.1079 0.1255 0.1431 0.1607 0.1784
Columns 56 through 66
1.4041 1.4604 1.5211 1.5863 1.6565 1.7320 1.8131 1.9002 1.9936 2.0937 2.2008
Columns 67 through 76
2.3152 2.4374 2.5675 2.7060 2.8532 3.0095 3.1752 3.3506 3.5361 3.7320
tol=abs(root-r1);
end
④举例:采用不动点迭代法求方程 的一个根。
解:流程图
在MATLAB命令窗口中输入:
>>[r,n]=StablePoint('1/sqrt(x)+x-2',0.5)
r =
3.8197e-001
n =
4
⑤结果说明:
从计算结果可以看出,经过四步迭代,得出方程的一个根为0.3820
Columns 56 through 66
0.8191 0.8290 0.8387 0.8480 0.8571 0.8660 0.8746 0.8829 0.8910 0.8987 0.9062
Columns 67 through 77
0.9135 0.9204 0.9271 0.9335 0.9396 0.9454 0.9510 0.9563 0.9612 0.9659 0.9703
②流程图:
(1)A正弦值算法:
源程序代码:
x=0:pi/12:pi/2;
y=[0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000];
xi=0:pi/180:pi/2; %设置插值点
yi=interp1(x,y,xi,'spline') %一维数据插值用三次样条插值法
Columns 34 through 44
0.5446 0.5592 0.5736 0.5878 0.6018 0.6157 0.62930.6428 0.6561 0.6691 0.6820
Columns 45 through 55
0.6947 0.7071 0.7193 0.7313 0.7431 0.7547 0.7660 0.7771 0.7880 0.7986 0.8090
%初始迭代量:x0
%根的精度:eps
%求出的函数零点:root
%迭代步数:n
if(nargin==2)%输入参数个数为2
eps=1.0e-4;
end
tol=1;%绝对误差限
root=x0;
n=0;
while(tol>eps)
n=n+1;
r1=root;
Root=subs(sym(f),findsym(sym(f)),r1)+r1;%迭代的核心公式
0.0000 0.0174 0.0349 0.0523 0.0697 0.0871 0.1045 0.1218 0.1391 0.1564 0.1736
Columns 12 through 22
0.1908 0.2079 0.2249 0.2419 0.2588 0.2756 0.2924 0.3090 0.3256 0.3420 0.3584
Columns 78 through 88
0.9744 0.9782 0.9817 0.9849 0.9878 0.9904 0.9927 0.9946 0.9963 0.9977 0.9987
Columns 89 through 91
0.9995 0.9999 1.0000
yj =
Columns 1 through 11
1.0000
tana
0
0.2679
0.5774
1.0000
1.7320
307320
(2)按表6.5用3次多项式方法插值计算1~100之间整数的平方根表
表6.5 1~100内特殊值的平方根表
N
1
4
9
16
25
36
49
64
81
100
1
2
3
4
5
6
7
8

设置插值节点;
针对不同的方法选用相应的函数及格式;
Columns 23 through 33
0.3746 0.3907 0.4067 0.4226 0.4384 0.4540 0.4695 0.4848 0.5000 0.5150 0.5299
Columns 34 through 44
0.5446 0.5592 0.5736 0.5878 0.6018 0.6157 0.6293 0.6428 0.6561 0.6691 0.6820
⑥在MATLAB中运行情况:
(2)根据 绘制平面曲线。并分析参数a对其形状的影响。
①算法说明:
在MATLAB中绘制隐函数图形用ezplot绘制;
功能:根据给定值绘制隐函数图形
其中定义符号变量a,x,y和函数eq;
设置变参量aa;
设置图像坐标范围和时间间隔;
②流程图:
③源程序代码:
syms a x y%定义符号变量
eq=1/a^2*x^2 +y^2/(25-a^2)-1;
aa=[0.5:0.5:3.5,5/sqrt(2),3.6:0.5:6.6];%aa矩阵中的数值
[m,n]=size(aa);
for i=1:n
eq1=subs(eq,a,aa(i));%把eq表达式中所有的a都用矩阵aa中的数值代替
ezplot(eq1,[-20 20])%绘制符号函数eq1,横坐标范围为-20,20
Columns 23 through 33
0.3982 0.4188 0.4400 0.4616 0.4838 0.5065 0.5297 0.5533 0.5774 0.6020 0.6270
⑥在MATLAB中运行情况:
2编程解决以下科学计算问题。
(1)某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制折线图和饼图,并说明图形的实际意义。
①算法说明:
首先用subplot对作图区域进行分区;
在Matlab中编程实现画饼图和折线图的函数为Plot和Pie。
title('2005年度各季度产值-折线图');
%饼状图
subplot(1,2,2)
pie([450.6,395.9,410.2,450.9],1:4,{'第一季度','第二季度','第三季度','第四季度'})
title('2005年度各季度产值-饼图')
④结果图像:
⑤结果分析:
从折线图可以看出该工厂效益变化趋势,效益在第二季度最低随后逐渐提高,并在第四季度恢复到第一季度的水平;从饼状图可以看出各个季度该工厂效益的比例关系。从这两个图可以合理安排工厂的生产计划。
《MATLAB程序设技实践》课程考核
1编程实现以下科学计算算法,并举一例应用之,(参考书籍《精通MATLAB科学计算》),王正林等著,电子工业出版社,2009年)。“不动点非线性方程求解”
①算法说明:
在MATLAB中编程实现不动点迭代法的函数是:StablePoint。
功能:用不动点迭代法求函数的一个零点。
%五次多项式拟合
A=polyfit(x,y,5);%A为五次多项式系数向量
yj=polyval(A,xi)%求出函数近似值
运行结果:
yi =
Columns 1 through 11
0 0.0175 0.0349 0.0524 0.0698 0.0872 0.1045 0.1219 0.1392 0.1564 0.1737
drawnow
axis([-20 20 -10 10])%设置坐标轴的范围
pause(0.5)%程序暂停0.5秒
end
④运行结果图形:
⑤结果分析:
时,随着a增大曲线形状由长轴在y轴的椭圆逐渐转变为圆(此时 ); 时a继续增大曲线形状由圆转变为长轴在x轴的椭圆;a>5时曲线变为双曲线。
⑥在MATLAB中运行情况:
Columns 12 through 22
0.1961 0.2138 0.2317 0.2497 0.2679 0.2863 0.3048 0.3236 0.3427 0.3620 0.3817
Columns 23 through 33
0.4017 0.4221 0.4429 0.4641 0.4858 0.5079 0.5305 0.5537 0.5774 0.6017 0.6266
Columns 34 through 44
0.6520 0.6780 0.7046 0.7317 0.7593 0.7876 0.8163 0.8456 0.8754 0.9058 0.9367
Columns 45 through 55
0.9681 1.0000 1.0325 1.0658 1.1003 1.1364 1.1743 1.2145 1.2572 1.3028 1.3516
yj =
Columns 1 through 11
相关文档
最新文档