数值分析 第二章 非线性方程求解
- 格式:ppt
- 大小:2.53 MB
- 文档页数:48
数值分析中的非线性方程求解与优化在数值分析领域中,非线性方程求解是一个重要的问题。
许多实际问题都可以被建模为非线性方程,而求解这些方程对于解决实际问题具有重要意义。
本文将介绍非线性方程求解的基本概念、方法和优化技术。
一、非线性方程求解的概念非线性方程是指方程中包含非线性项的方程。
与线性方程不同,非线性方程的解不再是一条直线,而是一条曲线或曲面。
非线性方程的求解是寻找方程中满足特定条件的变量值或函数的过程。
二、非线性方程求解的方法1. 迭代法迭代法是解决非线性方程求解问题中常用的方法。
迭代法的基本思想是通过不断逼近方程的解,使得迭代序列逐步收敛于方程的解。
常见的迭代法包括牛顿迭代法、割线法和弦截法等。
以牛顿迭代法为例,假设要求解方程f(x) = 0,首先选择一个初始估计值x0,然后通过迭代公式进行迭代计算直到满足收敛条件。
迭代公式为:xn+1 = xn - f(xn)/f'(xn),其中f'(xn)表示f(x)在xn处的导数。
2. 区间划分法区间划分法是通过将求解区间划分为若干个子区间,然后在每个子区间内搜索方程的解。
这种方法常用于求解具有多个解的非线性方程。
一般可以使用二分法、割线法和弦截法等算法进行区间划分和求解。
3. 优化技术优化技术常用于求解非线性方程的最优解。
在数值分析中,优化问题可以理解为寻找使得目标函数达到最大或最小值的变量值。
常用的优化算法包括梯度下降法、拟牛顿法和粒子群算法等。
这些算法通过迭代过程不断调整变量值,使得目标函数逐渐趋于最优解。
三、非线性方程求解与优化的应用非线性方程求解和优化技术在实际问题中具有广泛的应用。
以下是一些应用领域的例子:1. 工程领域:在工程设计中,需要求解非线性方程以确定优化的设计参数。
例如,在机械设计中,可以通过求解非线性方程来确定零件的几何尺寸和运动轨迹。
2. 金融领域:在金融衍生品定价和风险管理中,需要求解非线性方程来估计资产价格和风险敞口。
科学计算—理论、方法及其基于MATLAB 的实现与分析解非线性方程(组)(一)直接法二分法:设方程()0=x f 在区间[]b a ,上有唯一解,并且()()0<b f a f ,如方程()f x x x x x =-++=3223030.sin .(1)首先要确定适当的包含根的区间,这可以依据闭区间上连续函数的介值定理来确定,例如,()f 1110=-+<sin ,()f 222090=->sin .,所以方程 (1)至少有一个实根属于区间[]12,,图1表明区间[]12,中只含有一个根,显然方程 (1)的根不易直接求得。
在区间[-1,0]、[0,1]和[1,2]的情形,如下图1所示 例1 plotNL_fun01.mplotNL_fun01clearx=-1:0.05:2;f=x.^3-2.3*x.^2+x.*sin(x)+0.3; plot(x,f,'r',x,0*x,'k')title('The Image of f(x)=x^3-2.3*x^2+x*sin(x)+0.3') xlabel('\fontsize {12} \fontname {宋体} 图1') axis square二分法的求根过程:用*x 表示方程()0=x f 在区间[]b a ,上的根,对于给定的精度要求0>ε,取区间[]b a ,的中点21ba x +=,并按下式进行判断: ()()()()()⎪⎩⎪⎨⎧∈⇒<∈⇒<=⇒=],[0],[001*11*1*11b x x b f x f x a x a f x f x x x f (2) 以()()01<a f x f 为例,如果ε≤-2ab ,那么区间[]1,x a 内的任何一点都可以作为方程()0=x f 的近似根。
二分法适用于一个方程的场合,收敛速度是线性的,二分次数的估计:()b aN b a N-≤⇒≥--22εεln ln ln (3) 2、黄金分割法:在区间[]b a ,内取对称的两点:()()()⎩⎨⎧-+=--+=a b a x a b a x ββ211 (4) 使得()()()()()618.025125101102221≈+-=−−→−±-=⇒=-+⇒--=--=--=--->ββββββββa b a b ab a x a x a x a b a b按这种方法选取点1x 和2x ,每次去掉的区间长度至少是原区间长度的0.618倍,()()()()()()()()⎪⎪⎩⎪⎪⎨⎧∉∈⇒<⋃∉∈⇒<∉∈⇒<=⇒==⇒=],[],[0],[],[],[0],[],[0002*2*221*21*211*1*1*22*11x a x b x x b f x f b x x a x x x x x f x f b x x x a x a f x f x x x f x x x f (5) 适用于一个方程的场合,收敛速度是线性的,迭代次数的估计:()()215lnln ln 215--->⇔<⎪⎪⎭⎫ ⎝⎛--a b N a b Nεε (6) (二)迭代法首先将方程(组)写成等价的迭代形式:()()0f x x x ϕ=⇔= (7)由此确定了相应的迭代法:()[]10,n n x x x a b ϕ+=⎧⎪⎨∀∈⎪⎩ (8)迭代收敛的图像解释对于非线性方程(组)的迭代法来说,同样面临收敛性问题,为说明收敛性条件,先看下面的例子:例2:让我们来求如下方程的根()f x x x x x =-++=3223030.sin .下面,我们采用迭代法求方程 (1)位于区间]01[,-中的根,为此构造迭代算法如下:()()x x xx g x -+==3.2sin 3.0 (9)()()x g x x x x n n nn n +==+-10323.sin ., n =12,, (10)在区间]01[,-中任取一个迭代初值x 0,如取初值8.00-=x .执行下面的程序:EqutIteration.m:open EqutIteration.m EqutIterationN =29下面欲求1.5附近的根,为此分别取初值4.10=x ,9.10=x ,迭代的结果如下:open Ex_IteraConv01 Ex_IteraConv01N = 31收敛性定理:(收敛的充分性条件)设方程()f x =0在[]a b ,上存在唯一解,()x g x =是方程的等价形式,如果1、()g x 在[]a b ,上连续可微; 2、对任何x a b ∈[],,()g x a b ∈[],; 3、()'≤<g x L 1,则对任何x a b 0∈[],,由迭代算法()x g x n n +=1, (11)生成的序列{}x n 收敛于方程()f x =0在[]a b ,上的唯一解。
数值分析实验报告——非线性方程求根一、实验目的:1.掌握求解非线性方程的常用方法;2.了解非线性方程求根问题的数值解法;3.熟悉使用数值分析软件进行非线性方程求根的实现。
二、实验原理:非线性方程指的是形如f(x)=0的方程,其中f(x)是一个非线性函数。
非线性方程求根的常用方法包括二分法、割线法和牛顿法等。
其中,二分法是通过不断缩小区间范围来逼近方程的解;割线法是通过使用割线来逼近方程的解;牛顿法则是通过使用切线来逼近方程的解。
对于给定的非线性方程,可以根据实际情况选择合适的方法进行求根。
三、实验内容:1.编写求解非线性方程的函数,包括二分法、割线法和牛顿法;2.使用编写的函数求解给定的非线性方程,比较各个方法的收敛速度和精确程度;3.根据实际情况分析和选择合适的方法进行求根。
四、实验步骤:1.针对给定的非线性方程,编写二分法的函数实现:(1)首先确定方程的解存在的区间;(2)根据方程的解存在的区间,使用二分法逐步缩小区间范围;(3)根据设定的精度要求,不断循环迭代,直至满足要求或达到迭代次数限制;2.针对给定的非线性方程,编写割线法的函数实现:(1)首先需要确定方程的解存在的初始点;(2)根据方程的解存在的初始点,根据割线的定义进行迭代;(3)设定迭代的精度要求和限制次数,结束迭代;3.针对给定的非线性方程,编写牛顿法的函数实现:(1)首先需要确定方程的解存在的初始点;(2)根据方程的解存在的初始点,根据牛顿法的定义进行迭代;(3)设定迭代的精度要求和限制次数,结束迭代;4.根据给定的非线性方程,分别使用二分法、割线法和牛顿法进行求解,并比较各个方法的收敛速度和精确程度;5.分析实际情况,选择合适的方法进行求解。
五、实验结果:4.通过比较,发现割线法和牛顿法的收敛速度较快,精确程度较高,因此选择割线法进行求解。
六、实验总结:通过本次实验,我掌握了求解非线性方程的常用方法,并使用数值分析软件实现了二分法、割线法和牛顿法。
东南大学-数值分析-第二章-牛顿迭代法第二章非线性方程的解法某某某某(学号)某某某某(姓名)算法与程序题目见教材P56上机题目20。
一、算法原理根据题目的要求,是关于用牛顿迭代法法求解方程f(某)0的通用算法。
该法是一种通过斜率迭代的算法,其速度比二分法和简单迭代法都要快。
其简单原理如下:设fC2[a,b],且存在数p[a,b],满足f(p)0。
如果f(p)0,则存在一个数0,对任意初始值p0[p,p],使得由如下定义的迭代序列{pk}k0收敛到p:pkg(pk1)pk1f(pk1),其中k1,2,f(pk1)(1)对于函数f(某)某3/3某=0,则其递推规则是32pkpk21,其中k1,2,3pk1-3(2)定义序列{pk}则序列{pk}也可表示为limpk某现简要证明:k0,k0收敛到某,某对于f(某)某3/3某,得f'(某)某2-1,写出牛顿迭代公式f(某)某3/3某g(某)某某2f(某)某-1(3)该公式可化简为2某3g(某)23某3(4)二、流程图题目要求于用牛顿迭代法法求解方程f(某)0的通用算法。
其计算过程主要第二章非线性方程的解法用到迭代g(某)某f(某),图流程图1所示。
f(某)输入各参数k=1迭代pkg(pk1)pk1f(pk1),其中k1,2,f(pk1)Tbreak计算各误差误差在允许范围之内Fk=k+1k三、计算代码核心代码1)p1=……;2)if(err程序1:Newton.m%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Decription:牛顿迭代法%Author:panyunqiang%Veroin:1.0%Date:2022-9-21%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%f unction[p0,err,k,y]=Newton(p0,delta,epilon,ma某N)%input-p0itheinitialappro某imationtoazerooff%-deltaithetoleranceforp0%-epilonithetoleranceforthefunctionvaluey%-ma某Nithema某iumnumberofiteration%output-p0itheNewtonappro某imationtoazero%-erritheerroretimateforp0东南大学《数值分析》上机练习——算法与程序设计实验报告%-kithenumberofiteration%-yithefunctionvaluef(p0)fork=1:ma 某N%%递归p1=2某p0^3/(3某p0^2-3);%%计算误差err=ab(p1-p0);relerr=2某err/(ab(p1)+delta);p0=p1;%%当前求出的根的函数值y=p0^3/3-p0;%%判断if(err程序2:Newton_Step.m%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%Decription:寻找题目中关于牛顿迭代法收敛的尽可能大的delta%搜索步进为tep=10^(-6),即精确到小数点后六位%Author:panyunqiang%Veroin:1.0%Date:2022-9-21%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %formatlongtep=10^(-6);delta=10^-8;epilon=10^-8;ma某N=1000;p=0.6;[p0,err,k,y]=Newton(p,delta,epilon,ma某N);while((ab(p0)<=epilon)&(p0~=NaN))p=p+tep;[p0,err,k,y]=Newton(p,delta,epilon,ma某N);endp-tep四、计算结果及分析a)运行程序Newton_Step.m,获得Newton局部收敛于某2=0的初始值的范围=0.774596,六位有效数字。