Newton迭代法求解非线性方程

合集下载

求解非线性方程的三种新的迭代法

求解非线性方程的三种新的迭代法

求解非线性方程的三种新的迭代法
迭代法是一种通过迭代逼近的方式来求解方程的方法。

它的基本思想是通过不断逼近
方程的解,使得逼近值与真实解的差距越来越小,最终得到方程的解。

下面介绍三种新的迭代法:牛顿迭代法,弦截法和切线法。

一、牛顿迭代法
牛顿迭代法是一种通过利用函数导数的信息来逼近方程解的方法。

它的迭代公式为:
x_(n+1) = x_n - f(x_n)/f'(x_n)
x_n表示第n次迭代得到的逼近解,f(x_n)表示在x_n处的函数值,f'(x_n)表示在x_n 处的导数值。

牛顿迭代法的优点是收敛速度快,通常是二阶收敛,但其缺点是需要计算函数的导数,如果导数计算困难或者导数为零的情况下,该方法可能不适用。

二、弦截法
三、切线法
切线法的优点和牛顿迭代法类似,但其缺点是需要计算函数的导数,且对于初始逼近
解的选择比较敏感。

牛顿迭代法、弦截法和切线法都是三种常用的非线性方程迭代法。

它们各自有着优点
和缺点,适用的领域和条件也不尽相同。

在实际问题中,需要根据具体情况选择合适的方
法来求解非线性方程。

非线性方程求根—牛顿迭代法(新)

非线性方程求根—牛顿迭代法(新)

非线性方程求根——牛顿迭代法一、牛顿迭代法的基本思想基本思想:将非线性方程逐步归结为某种线性方程求解。

设方程f (x )=0有近似根x k (f `(x k )≠0),将f (x )在x k 展开:(ξ在x 和x k 之间)2()()()()()()2!k k k k f f x f x f x x x x x ξ'''=+-+-()()()()k k k f x f x f x x x '≈+-可设记该线性方程的根为x k +1,则()()()0k k k f x f x x x '+-=1()()k k k k f x x x f x +=-'故f (x )=0可近似表示为即为Newton 法迭代格式。

(k =0,1,……)例:用Newton 迭代法求方程310x x --=在x 0=1.5附近的近似实根。

解:32()1,()31f x x x f x x '=--=-迭代公式为312131kk k k k x x x x x +--=--计算步骤如下:(1)取初值x 0=1.5;(2)按照迭代公式计算x 1;(3)若|x 1-x 0|<=0.00001,终止迭代;否则,x 0=x 1;转(2);(4)输出迭代次数和近似根.二、牛顿迭代法的实现MATLAB求解程序设计:方程及一阶导数函数:function[fun,dfun]=fun0(x)fun=x^3-x-1;%求原函数的值dfun=3*x^2-1;%求一阶导数的值计算主程序:clearx0=1.5;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=1;while abs(x1-x0)>1e-5x0=x1;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=i+1;enddisp('the solution is x1=')x1disp('the iter time is ')i计算结果为:the solution is x1=x1 =1.3247the iter time isi =4可见经过4次迭代即到达要求的精度,原方程的一个近似实数根为1.3247.三、牛顿迭代法的收敛性牛顿迭代法的迭代函数:)()()(x f x f x x '-=ϕ222)]([)()()]([)()()]([1)(x f x f x f x f x f x f x f x '''='''-'-='ϕ设f (x *)=0,f `(x *)≠0,则ϕ`(x *)=0,故Newton 迭代法在x *附近至少平方收敛。

解非线性方程的牛顿迭代法及其应用

解非线性方程的牛顿迭代法及其应用

解非线性方程的牛顿迭代法及其应用一、本文概述非线性方程是数学领域中的一个重要研究对象,其在实际应用中广泛存在,如物理学、工程学、经济学等领域。

求解非线性方程是一个具有挑战性的问题,因为这类方程往往没有简单的解析解,需要通过数值方法进行求解。

牛顿迭代法作为一种古老而有效的数值求解方法,对于求解非线性方程具有重要的应用价值。

本文旨在介绍牛顿迭代法的基本原理、实现步骤以及在实际问题中的应用。

我们将详细阐述牛顿迭代法的基本思想,包括其历史背景、数学原理以及收敛性分析。

我们将通过具体实例,展示牛顿迭代法的计算步骤和实际操作过程,以便读者能够更好地理解和掌握该方法。

我们将探讨牛顿迭代法在各个领域中的实际应用,包括其在物理学、工程学、经济学等领域中的典型应用案例,以及在实际应用中可能遇到的问题和解决方法。

通过本文的介绍,读者可以深入了解牛顿迭代法的基本原理和应用技巧,掌握其在求解非线性方程中的实际应用方法,为进一步的研究和应用提供有力支持。

二、牛顿迭代法的基本原理牛顿迭代法,又称为牛顿-拉夫森方法,是一种在实数或复数域上近似求解方程的方法。

其基本原理是利用泰勒级数的前几项来寻找方程的根。

如果函数f(x)在x0点的导数f'(x0)不为零,那么函数f(x)在x0点附近可以用一阶泰勒级数来近似表示,即:这就是牛顿迭代法的基本迭代公式。

给定一个初始值x0,我们可以通过不断迭代这个公式来逼近f(x)的根。

每次迭代,我们都用当前的近似值x0来更新x0,即:这个过程一直持续到满足某个停止条件,例如迭代次数达到预设的上限,或者连续两次迭代的结果之间的差小于某个预设的阈值。

牛顿迭代法的收敛速度通常比线性搜索方法快,因为它利用了函数的导数信息。

然而,这种方法也有其局限性。

它要求函数在其迭代点处可导,且导数不为零。

牛顿迭代法可能不收敛,如果初始点选择不当,或者函数有多个根,或者根是重根。

因此,在使用牛顿迭代法时,需要谨慎选择初始点,并对迭代过程进行适当的监控和调整。

牛顿迭代法求解非线性方程组的解

牛顿迭代法求解非线性方程组的解

10 简化牛顿法 简化牛顿法又称平行弦法,其迭代公式为
xk1 xk Cf (xk ),C 0, k 0,1,
(4-7)
从不动点迭代法的角度看,简化牛顿法的迭代函数(x) x Cf (x) ,下面讨论简
化牛顿法的收敛性。
若| '(x) ||1 Cf '(x) | 1 ,即取 0 Cf ' (x) 2 .在根 x* 附近成立,则迭代法
x k 的点 Pk 引切线,并将该切线与 x 轴的交点的横坐标 x k1 作为 x* 的新的近似值。 注意到切线方程为
y f (xk ) f '(xk )(x xk )
(4-4)
这样求得的值 x k1 比满足 f (xk ) f '(xk )(x xk ) 0 ,从而就是牛顿公式
x
k 1
| f (xk1) || f (xk ) |
(4-8)
满足此要求的算法称为下山法。
将牛顿法和下山法一起使用时,即在下山法保证函数值稳定下降的前提下,
用牛顿法加快收敛速度。为此,为此将牛顿法的计算结果
xk 1
xk
f (xk ) f ' (xk )
(4-9)
与前一步的近似值 xk 的适当加权平均作为新的改进值
代法中所遇到的 jacobi 矩阵难求的问题。
关键词:非线性方程组、牛顿迭代法、MATLAB、 jacobi 矩阵
一、前言 非线性方程组在实际问题中经常出现,并且在科学与工程计算中的地位越来
越来重要,很多常见的线性模型都是在一定条件下由非线性问题简化得到的,为 得到更符合实际的解答,往往需要直接研究非线性模型,然而从线性到非线性是 一个质的飞跃,方程的性质的不同,所以求解方法也有很大差别。本文主要介绍 关于非线性方程及方程组的数值解法,先分析非线性方程的数值解法,然后再延 伸到方程组的解法。

非线性方程组求解的牛顿迭代法用MATLAB实现

非线性方程组求解的牛顿迭代法用MATLAB实现

非线性方程组求解的牛顿迭代法用MATLAB实现首先,我们需要定义非线性方程组。

假设我们要求解方程组:```f1(x1,x2)=0f2(x1,x2)=0```其中,`x1`和`x2`是未知数,`f1`和`f2`是非线性函数。

我们可以将这个方程组表示为向量的形式:```F(x)=[f1(x1,x2);f2(x1,x2)]=[0;0]```其中,`F(x)`是一个列向量。

为了实现牛顿迭代法,我们需要计算方程组的雅可比矩阵。

雅可比矩阵是由方程组的偏导数组成的矩阵。

对于方程组中的每个函数,我们可以计算其对每个变量的偏导数,然后将这些偏导数组成一个矩阵。

在MATLAB中,我们可以使用`jacobi`函数来计算雅可比矩阵。

以下是一个示例函数的定义:```matlabfunction J = jacobi(x)x1=x(1);x2=x(2);J = [df1_dx1, df1_dx2; df2_dx1, df2_dx2];end```其中,`x`是一个包含未知数的向量,`df1_dx1`和`df1_dx2`是`f1`对`x1`和`x2`的偏导数,`df2_dx1`和`df2_dx2`是`f2`对`x1`和`x2`的偏导数。

下一步是实现牛顿迭代法。

牛顿迭代法的迭代公式为:```x(k+1)=x(k)-J(x(k))\F(x(k))```其中,`x(k)`是第`k`次迭代的近似解,`\`表示矩阵的求逆操作。

在MATLAB中,我们可以使用如下代码来实现牛顿迭代法:```matlabfunction x = newton_method(x_initial)max_iter = 100; % 最大迭代次数tol = 1e-6; % 收敛阈值x = x_initial; % 初始解for k = 1:max_iterF=[f1(x(1),x(2));f2(x(1),x(2))];%计算F(x)J = jacobi(x); % 计算雅可比矩阵 J(x)delta_x = J \ -F; % 计算增量 delta_xx = x + delta_x; % 更新 xif norm(delta_x) < tolbreak; % 达到收敛条件,停止迭代endendend```其中,`x_initial`是初始解的向量,`max_iter`是最大迭代次数,`tol`是收敛阈值。

用Matlab编写二分法和Newton迭代法求解非线性函数

用Matlab编写二分法和Newton迭代法求解非线性函数

⽤Matlab编写⼆分法和Newton迭代法求解⾮线性函数1、⼆分法原理:若f的值在C[a, b]中,且f (a) · f (b) < 0,则f在 (a, b) 上必有⼀根。

实现算法流程:2、Newton迭代法迭代公式:⼏何意义:3、求解问题⽤Newton法和⼆分法求的解。

4、代码实现1 clear;close;clc2 a=0;b=1;%根区间3 e=10^(-6);%根的容许误差4 [X , N]=dichotomy(e,a,b);%⼆分法5 p0=0.5;%初始值6 N=15;%迭代次数7 [X1]=Newdon(p0,e,N);%Newton迭代法89 function [X , N]=dichotomy(deta,a,b)10 % 函数dichotomy:⼆分法11 %输⼊值:12 %fun:⽅程函数13 %deta:根的容许误差14 %有根区间:[a,b]15 %输出值16 %X:求解到的⽅程的根17 %N:总的迭代次数18 N=1+fix(log2((b-a)/deta));%由公式7.2求得,取整数|X_N-X*|<=(b-a)/2^N<deta,求N19 n=1;20 f1=myfunction(a);21 f2=myfunction(b);22if (f1*f2>0)23 disp('根不在输⼊的区间⾥,请重新输⼊区间');24else25while n <= N26 x=(a+b)/2;27if myfunction(a)*myfunction(x)>028 a=x;29else30 b=x;31 end32 n=n+1;33 end34 X=x;35 fprintf('第%d次⼆分法求出的⽅程的根:\n',N);36 fprintf('X=\n');37 disp(X);38 end39 end4041 function [P]=Newdon(p0,TOL,N)42 %求⽅程组的解43 %输⼊参数44 %初始值:p045 %误差容限:TOL46 %最⼤迭代次数:N47 %输出参数:48 %⽅程近似解:p49 %或失败信息“Method failed”50 format long;51 n=1;%初始迭代次数52 syms x;53while n<=N54if abs(subs(diff(myfunction(x)),x,p0))<TOL55 P=p0;56break;57else58if subs(diff(myfunction(x),2),x,p0)==059 disp('Method failed');60break;61else62 p=p0-myfunction(p0)/subs(diff(myfunction(x)),x,p0);63 p=eval(p);%将exp的值转为⼩数值64if(abs(p-p0)<TOL)65 P=p;66break;67else68 p0=p;69 end70 end71 end72 n=n+1;73 end74 % P=vpa(P,10);%将分数转为⼩数并保留8位⼩数75 fprintf('第%d次NeWton迭代法求出的⽅程的根:\n',N);76 fprintf('P=\n');77 disp(P);78 end7980 function f=myfunction(x)81 f=x*exp(x)-1;82 end5、求解结果。

求解非线性方程组的几种方法及程序实现

求解非线性方程组的几种方法及程序实现

求解非线性方程组的几种方法及程序实现
求解非线性方程组一直是理论数学和应用数学研究的重点,并采用不同的方法得到准确的结果。

它们可以分为几种类型:
1. 用以绘图的方法解非线性方程组:该方法充分利用结合几何和数理的原理,给出非线性方程组的解,而不用对系数的解的表达式求解手段。

主要是利用可绘图的几何空间分析,它可以帮助理解问题本身,还可以很容易看出非线性方程组的解。

2. 用迭代法求解非线性方程组:这是一种常用的方法,它通过不断迭代收敛求解非线性方程组。

基本思想是通过构造一个迭代函数,其初始值和原始非线性方程组尽可能接近,然后不断迭代收敛求解非线性方程组。

3. 用强调法求解非线性方程系统:这是基于梯度的一种方法,它利用一个概念,即局部线性化,可以降低维数、转化为一个拐点,最后强化搜索全局解。

4. 用牛顿-拉夫逊方法求解非线性方程组:这是一种准确、快速的非线性方程组求解方法,主要利用牛顿迭代法搜索解的收敛性,加上一些拉夫逊的加速策略得到最终的结果。

5. 用幂法求解非线性方程组:幂法也称为指数序列,是一种重要的求解非线性方程组的方法,基本原理是利用指数的累加和误差的减少,从而最终得到非线性方程组的解。

6. 用逐步逼近法求解非线性方程组:逐步逼近法也称为分步变程法,是一种用于求解非线性方程组的简单方法,其基本思想是用不同的参数,在给定的范围内,逐步逼近目标解。

这些方法的程序实现略有不同,可以利用编程语言比如C、Fortran、Python等,编写程序完成求解。

可以采用函数求解、循环求解、行列式求解或者混合的算法等不同的方式实现,甚至可以用深度学习方法求解有些复杂的非线性方程组。

newton迭代法11-12

newton迭代法11-12

若f(a)f(x0)<0 成立,则根必在区间(a, x0)内,取a1=a,b1= x0;否则 必在区间(x0,b)内,取a1= x0,b1=b,
这样,得到新区间(a1,b1),其长度为[a,b]的一半,如此继续下去,进 行k次等分后,得到一组不断缩小的区间,[a,b],[a1,b1],......[ak,bk].

( x*)
2!
( x x*) 2
( p1) ( x*)
( p 1)!
( x x*)p1
( p ) ( x*)
p!
( x x*)p
如果( x*) ( x*) ( p1) ( x*) 0
而 ( p ) ( x*) 0
解三:迭代格式 xk+1=(xk3-5)/2 令x0=2.5,得迭代序列: x1=5.3125, x2=72.46643066, X3=190272.0118, x4=3.444250536 1016, x5=2.042933398 1046, 计算x6时溢出
同样的方程不同的迭代格式有不同的结果 迭代函数的构造有关
L Lk xk x * xk xk 1 x1 x0 1 L 1 L
xk x * x * xk 1 xk xk 1 g'( ) xk x * xk xk+1
因此: 1 xk x * xk xk+1 1 L
证毕.
定理1指出,
例1 用简单迭代法求区间(2,3)内方程x3-2x-5=0的根 lim x 解一 将方程两边同加2x+5,再开三次方,得式同解方程 x= 3 2 x 5 作迭代格式 xk+1= 3 2 xk 5 , k=0,1,

实验五 用Newton法计算方程的根

实验五 用Newton法计算方程的根

五. 讨论分析当初始值选取离零点较远时将导致算法无法使用,例如第三题,将初始值改为2就无法计算出结果了,显示如下例如求020sin 35=-+-x x e x 的根,其中控制精度1010-=eps ,最大迭代次数40=M ,在steffensen 加速迭代方法的程序中,我们只需改动:it_max=40; ep=1e-10, 其余不变 。

利用以上程序,我们只需输入:phi=inline('exp(5*x)-sin(x)+(x)^3-20');[x_star,index,it]=steffensen(phi,0.5)可得:x_star = 0.637246094753909index = 0it = 41观察上述结果,index = 0,it = 41表明迭代失败,所以使用以上方法估计的时候,应该尽量估计出解的范围,偏离不应过大,距离增加迭代次数增加,也有可能迭代失败六. 改进实验建议根据上述分析,我认为,应该先对函数作一个简图,方便知道解的大概位置,然后我们才将这个大概值代入Newton 法或者Steffensen 中进行求解。

当然,我们可以用其他数学软件实现Newton 迭代法,我们可以用z-z 超级画板,其操作流程为:牛顿迭代法的公式是:x n+1=x n-f(x n)/f'(x n)。

下面我们就用牛顿迭代法设计程序求方程f(x)=ln(x)+2*x-6的近似解。

(一)观察方程f(x)=0的零点位置(1)显示坐标系的坐标刻度。

(2)作出函数y=ln(x)+2*x-6的图像,如下图所示:可以观察到方程的根在区间[2,3]上,我们可以设定近似解的初始值为2。

(二)设计求方程近似解的程序(1)在程序工作区中输入:f(x){ln(x)+2*x-6;}执行后,返回结果为:>> f(x) #这表示在计算机已经完成了函数f(x)的定义。

(2)定义f(x)的导函数g(x),在程序工作区中输入:Diff(f(x),x);执行后,返回结果为:>> 2+1/x #得到了f(x)的导函数。

解非线性方程组的牛顿迭代法

解非线性方程组的牛顿迭代法

为克服这两个缺点,通常可用下述方法.
(1) 简化牛顿法,也称平行弦法.
xk 1 xk Cf ( xk )
其迭代公式为 (4.7)
C 0,1 ,.
迭代函数 ( x) x Cf ( x).
若在根 x * 附近成立 ( x) 1 Cf ( x) 1 ,即取 0 Cf ( x) 2,则迭代法(4.7)局部收敛.
8
xk
C 2 C
q2
k
1 q
2k
.
对任意 x0 0,总有 q 1,故由上式推知,当 k 时 xk C ,即迭代过程恒收敛. 例8 解 求 115 .
表7 6 计算结果 k 0 1 2 3 4 xk 10 10.750000 10.723837 10.723805 10.723805
f ( x) , f ( x)
由于
( x)
f ( x) f ( x) . 2 [ f ( x)]
假定 x *是 f ( x) 的一个单根,即 f ( x*) 0, f ( x*) 0 , 则由上式知 ( x*) 0 ,于是依据定理4可以断定,牛顿法 在根 x *的邻近是平方收敛的.
准备 迭代
x0 ,计算 f 0 f ( x0 ), 选定初始近似值
步骤2
按公式
x1 x0 f 0 / f 0
迭代一次,得新的近似值 x1,计算 f1 f ( x1 ), f1 f ( x1 ). 步骤3 控制
x1 满足 1 如果
f1 2 ,则终 或
5
止迭代,以 x1作为所求的根;否则转步骤4. 允许误差,而
3
又因
( x*)
f ( x*) , f ( x*)

最优化理论与方法——牛顿法

最优化理论与方法——牛顿法

牛顿法牛顿法作为求解非线性方程的一种经典的迭代方法,它的收敛速度快,有内在函数可以直接使用。

结合着matlab 可以对其进行应用,求解方程。

牛顿迭代法(Newton Newton’’s s method method )又称为牛顿-拉夫逊方法(Newton-Raphson method ),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法,其基本思想是利用目标函数的二次Taylor 展开,并将其极小化。

牛顿法使用函数()f x 的泰勒级数的前面几项来寻找方程()0f x =的根。

牛顿法是求方程根的重要方法之一,其最大优点是在方程()0f x =的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时非线性收敛,但是可通过一些方法变成线性收敛。

收敛。

牛顿法的几何解释:牛顿法的几何解释:方程()0f x =的根*x 可解释为曲线()y f x =与x 轴的焦点的横坐标。

如下图:轴的焦点的横坐标。

如下图:设k x 是根*x 的某个近似值,过曲线()y f x =上横坐标为k x 的点k P 引切线,并将该切线与x 轴的交点轴的交点 的横坐标1k x +作为*x 的新的近似值。

鉴于这种几何背景,牛顿法亦称为切线法。

牛顿法亦称为切线法。

2 牛顿迭代公式:(1)最速下降法:x-d gk k×Gg sks×GGd 101x x x -(1)令k k G v I k G -=+,其中:,其中:0k v =,如果k G 正定;0,k v >否则。

否则。

(2)计算_k G 的Cholesky 分解,_T k k k k G L D L =。

(3)解_k k G d g =-得k d 。

(4)令1k k k x x d +=+牛顿法的优点是收敛快,缺点一是每步迭代要计算()()'k k f x f x 及,计算量较大且有时()'k fx 计算较困难,二是初始近似值0x 只在根*x附近才能保证收敛,如0x 给的不合适可能不收敛。

牛顿迭代法在求解非线性方程重根问题中的研究

牛顿迭代法在求解非线性方程重根问题中的研究

牛顿迭代法在求解非线性方程重根问题中的研究摘要:牛顿迭代法是求解非线性方程的根的常用方法。

在实际计算中往往会遇到重根情况,针对这种情况,我们在牛顿迭代法的理论基础上,探讨了三种不同的迭代格式。

为了对比这三种方法,本文进行了两个实验,分别是含有重根的非线性方程求解问题实例和牛顿迭代法在求解购房按揭利率的应用实例。

在分析运算结果后,得出了三种算法优势和劣势。

关键词:牛顿迭代法;MA TLAB;重根Abstract:Newton iteration method is a common method to solve the roots of nonlinear equations. In order to solve this problem, we discuss three different iteration schemes based on Newton iteration method. In order to compare the three methods, two experiments are carried out in this paper, one is the solving of nonlinear equations with heavy roots, and the other is the application of Newton iteration method in solving house mortgage interest rate. The advantages and disadvantages of three algorithms are obtained after analyzing the results.Key words:Newton iterative method;MA TLAB;Root weight目录摘要 (Ⅰ)Abstract (Ⅰ)目录 (Ⅱ)1 相关概念 (1)1.1 非线性方程 (1)1.2 重根问题 (1)1.3 不动点和不动点迭代法 (1)1.4 迭代法的收敛性 (2)2 牛顿迭代法 (2)2.1 牛顿迭代算法 (2)2.2 重根情形 (3)3 牛顿迭代法的数值实验 (5)3.1 实验一 (5)3.2 实验二 (7)4 结论 (8)参考文献: (9)附录 (10)附录A 算法1 (10)附录B 算法2 (10)附录C 算法3 (11)附录D 实验一程序 (11)附录E 算法1 (12)附录F 算法2 (12)附录G 算法3 (13)附录H 实验二程序 (13)1 相关概念1.1 非线性方程在科学和工程计算中存在大量的方程()0f x =求根的问题,比如代数方程10110n n n n a x a x a x a --++++=,其中00a ≠,当1,2n =时其解是熟知的,当3,4n =时解的公式可以在数学手册上查到,但是当5n ≥时,方程的跟是不能用四则运算和根式运算的公式表示出来的。

数值分析 数值分析 Newton迭代法求解非线性方程实验

数值分析  数值分析  Newton迭代法求解非线性方程实验
intf("%Lf\n",u[k][j]);
}//计算出u[i][j]并输出.
第二部分 for(i=k+1;i<n;i++)
{s=0.0;
for(r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][k];}
l[i][k]=(a[i][k]-s)/u[k][k];
printf("%Lf\n",l[i][k]);
{s=0.0;
for(r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][k];}
l[i][k]=(a[i][k]-s)/u[k][k];
printf("l[%d][%d]%Lf\n",i,k,l[i][k]);}
}
}
六、实验结果
七、上机实验体会
在这个试验中同样叶出现了很多问题,对L,U的求解输出中,输出的位置的不同,结果也就会出差错.经过多次调整,结果总算输出了.
通过此次试验,我理解了多重循环的运用,并了解了古人的聪明智慧,]讲将复杂问题简单化,现在的大学生们,应该学习他们的创新及钻研精神。
for(k=0;k<n;k++)
{for(j=k;j<n;j++)
{s=0.0;
for (r=0;r<k-1;r++)
{s=s+l[k][r]*u[r][j];}
u[k][j]=a[k][j]-s;
printf("u[%d][%d]=%Lf\n",k,j,u[k][j]); }
for(i=k+1;i<n;i++)

改进的牛顿迭代法求解非线性方程

改进的牛顿迭代法求解非线性方程

改进的牛顿迭代法求解非线性方程史思总 西南科技大学摘要:将非线性方程线性化,以线性方程的解逐步逼近非线性方程的解,是牛顿迭代法的基本思想。

牛顿法具有收敛快、稳定性好、精度高等优点,是目前求解非线性方程的有效方法之一。

牛顿法每次迭代时都需要计算函数值和导数值,计算量较大,当导数值提供有困难时,牛顿法将不再适用于求解非线性方程组。

针对这种情况,提出了一种改进牛顿法——弦截法。

为避免求导,弦截法采用差商近似导数,以差商方式解决求导问题。

实践证明,弦切法优于大部分迭代法,仅次于牛顿法。

关键词:牛顿法、弦截法、非线性方程、差商一、牛顿法的迭代公式设)(x f 在其零点*x 附近一阶连续可微,且0)(≠'x f ,当0x 充分接近*x 时,由Taylor 公式有:))(()()(000x x x f x f x f -'+≈ (1)以方程0))(()(000=-'+x x x f x f (2)近似方程0)(=x f ,其解)()(0001x f x f x x '-= (3) 可作为方程的近似解,重复上述过程,得迭代公式),1,0(,)()(1 ='-=+n x f x f x x n n n n (4) 该方法称为牛顿迭代法。

牛顿法是一种不动点迭代法,其迭代函数为()()()f x x x f x ϕ=-' (5) 从几何上看,牛顿法是以曲线的切线与x 轴的交点作为曲线与x 轴的交点的近似。

故牛顿法也是一种切线法。

二、牛顿法的改进——弦截法为了避免牛顿法中计算导数,弦截法中采用差商代替导数。

避免了某些情况下由于不能求取导数值而迭代失效。

2.1差商的定义设有函数012(),,,,...f x x x x 为一系列互不相等的点,称()()()i j i j f x f x i j x x -≠-为()f x 关于,i j x x 的一阶差商(也称均差),记为[,]i j f x x ,即()()[,]i j i j i j f x f x f x x x x -=- (6)2.2弦截法在牛顿迭代公式(3)中,用差商()()i j i j f x f x x x --代替导数'()n f x 得到迭代公式111()()()(1,2,...)n n n n n n n f x f x x x x x n x x -+--=--=- (7) 按式(7)计算方程的近似解称为弦截法。

求解非线性方程的三种新的迭代法

求解非线性方程的三种新的迭代法

求解非线性方程的三种新的迭代法1. 引言1.1 介绍迭代法迭代法是一种重要的数值计算方法,广泛应用于非线性方程的求解、函数极值点的求解等问题中。

迭代法的基本思想是通过逐步逼近的方式,找到函数的根或者极值点。

这种方法在面对复杂的数学问题时具有很大的优势,可以通过简单的计算步骤逐渐接近最终解。

与解析解相比,迭代法更适用于无法通过代数运算求解的问题,或者求解过程较为繁琐的问题。

迭代法的实现通常需要选择一个初始值,并通过反复迭代计算来逼近真实解。

在每一步迭代中,都会根据当前的估计值计算新的估计值,直到满足一定的精度要求为止。

迭代法虽然不能保证每次都能得到精确解,但在实际应用中往往能够取得较好的结果。

迭代法是一种简单而有效的数值计算方法,尤其适用于非线性方程求解等复杂问题。

通过逐步逼近的方式,迭代法可以帮助我们解决那些传统方法难以处理的问题,为现代科学技术的发展提供重要支持。

1.2 非线性方程的求解意义非线性方程在数学和工程领域中广泛存在,其求解具有重要的理论和实际意义。

非线性方程的求解能够帮助解释和预测许多自然现象,包括流体动力学、电路分析、材料力学等领域中的问题。

非线性方程的求解也是许多科学研究和工程设计中必不可少的一环,例如在经济学、生物学、物理学等多个学科中都有非线性方程存在。

传统的解析方法难以解决非线性方程,因此迭代法成为求解非线性方程的重要工具。

迭代法是一种通过不断逼近解的方法,逐步逼近方程的解。

通过迭代法,可以在复杂的非线性方程中找到数值解,从而解决实际问题。

非线性方程的求解意义在于帮助我们更好地理解和掌握复杂系统的性质和行为。

通过求解非线性方程,我们可以揭示系统中隐藏的规律和关系,为科学研究和工程设计提供重要的参考和支持。

发展高效的迭代法求解非线性方程具有重要意义,可以推动科学技术的进步,促进社会的发展和进步。

2. 正文2.1 牛顿迭代法牛顿迭代法是一种非常经典的求解非线性方程的方法,其基本思想是通过不断逼近函数的零点来求解方程。

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

第6章 非线性方程求根(2、newton法、迭代法的收敛阶)

定理 考虑方程 x = g(x), g(x)∈C[a, b], 若 ∈
( I ) 当 x∈[a, b] 时, g(x)∈[a, b]; ∈ ∈ ; ( II ) 0 ≤ L < 1 使得 | g’(x) | ≤ L < 1 对 x∈[a, b] 成立。 成立。 ∈ 则任取 x0∈[a, b],由 xk+1 = g(xk) 得到的序列 { x k }∞= 0 收 , k 敛于g(x) 在[a, b]上的唯一不动点。并且有误差估计式: 敛于 上的唯一不动点。并且有误差估计式: 上的唯一不动点 k 1 L | x * xk | ≤ | x k +1 x k | | x * xk | ≤ | x1 x 0 | 1 L 1 L 且存在极限
=
m 1 m
A3: 线性收敛
下山法 /* Descent Method */ ——Newton’s Method 局部微调: 局部微调: 原理: 减小, 原理:若由 xk 得到的 xk+1 不能使 | f | 减小,则在 xk 和 xk+1 之间找一个更好的点 x k + 1 ,使得 f ( xk+1 ) < f ( xk ) 。 xk xk+1
f ( xk ) x k +1 = λ [ x k ] + (1 λ ) xk f ′( xk ) = xk λ f ( xk ) f ′( xk )
λ xk +1 + (1 λ ) xk , λ ∈ [0, 1]
注:λ = 1 时就是Newton’s Method 公式。 时就是 公式。 代入效果不好时, 减半计算。 当 λ = 1 代入效果不好时,将 λ 减半计算。
x * x k +1 lim = g ′( x * ) k →∞ x * x k

用牛顿法解非线性方程组

用牛顿法解非线性方程组
>> myNewton(x0)
迭代五次的结果为:
x1 =
0.5000
-0.0000
-0.5236
非线性方程组的解为:
x0 =
0.5000
-0.0000
-0.5236
A=inv(dFx);
k=0;
%===============================
% Newon迭代法核心程序
while norm(Fx)>1e-10
x1=x0-A*Fx; % 核心迭代公式
k=k+1;
if k==5
disp('迭代五次的结果为:') ;
x1
elseif k>=100
disp('迭代次数过多,不收敛!');
用牛顿法解非线性方程组牛顿法解非线性方程组非线性方程组数值解法非线性方程组的解法非线性方程组迭代解法非线性方程组解法牛顿迭代法解方程组matlab解非线性方程组解非线性方程组fsolve解非线性方程组
四、(上机题)分别用Newton法和Broyden法求解下面非线性方程组
(要求:用Matlab编程,并附上源代码及迭代五次的结果,初值可取 )
f3=exp(-x*y)+20*z+1/3*(10*pi-3);
F=[f1;f2;f3];
%===============================
Fx = subs(F,{x,y,z},x0);
dF = Jacobian(F); % 求雅克比矩阵
dFx = subs(dF,{x,y,z},x0);
第四题:
Newton法:myNewton..m
function[t]=myNewton(x0) % x0为初始值向量

利用牛顿迭代法求解非线性方程组

利用牛顿迭代法求解非线性方程组

利⽤⽜顿迭代法求解⾮线性⽅程组最近⼀个哥们,是⽤⽜顿迭代法求解⼀个四变量⽅程组的最优解问题,从⽹上找了代码去改进,但是总会有点不如意的地⽅,迭代的次数过多,但是却没有提⾼精度,真是令⼈揪⼼!经分析,发现是这个⽅程组中存在很多局部的极值点,是⽤⽜顿迭代法不能不免进⼊局部极值的问题,更程序的初始值有关!发现⾃⼰好久没有是⽤Matlab了,顺便从⽹上查了查代码,⾃⼰来修改⼀下!先普及⼀下⽜顿迭代法:(来⾃百度百科)⽜顿(Newton's method)⼜称为⽜顿-拉夫逊(拉弗森)⽅法(Newton-Raphson method),它是在17世纪提出的⼀种在域和域上近似求解⽅程的⽅法。

多数⽅程不存在求根公式,因此求精确根⾮常困难,甚⾄不可能,从⽽寻找⽅程的近似根就显得特别重要。

⽅法使⽤函数f(x)的的前⾯⼏项来寻找⽅程f(x) = 0的根。

⽜顿迭代法是求⽅程根的重要⽅法之⼀,其最⼤优点是在⽅程f(x) = 0的单根附近具有平⽅收敛,⽽且该法还可以⽤来求⽅程的重根、复根,此时线性收敛,但是可通过⼀些⽅法变成超线性收敛。

另外该⽅法⼴泛⽤于计算机编程中。

设r是f(x)=0的根。

选取x0作为r的初始近似值,过点(x0,f(x0))做曲线的切线,求出该切线与x轴的交点,并求出该点的横坐标,称作x1是r 的⼀次近似。

如此就可以推导出⽜顿迭代公式。

已经证明,如果是的,并且待求的零点是孤⽴的,那么在零点周围存在⼀个区域,只要初始值位于这个邻近区域内,那么⽜顿法必定收敛。

并且,如果不为0, 那么⽜顿法将具有平⽅收敛的性能. 粗略的说,这意味着每迭代⼀次,⽜顿法结果的有效数字将增加⼀倍。

在⽹上查了⼀些代码,都是能指定某⼏个函数进⾏求导的,⽽且要是改变函数的个数,却⼜要对原始程序⼤动⼲⼽。

真的是揪⼼。

找到了这个程序,貌似在Matlab上不能很好的运⾏,对于数据的返回值为空没有做处理,后来⼜找了⼀个⽹易朋友的博客,将他的代码拿过来跑跑,还可以,但是对于不同的函数⽅程组,以及变量个数就不同了,真的是揪⼼,这个就是程序设计和编码的问题了!⾃⼰就拿来改了改,可以⽀持多⽅程组和多变量了!下⾯附上我的代码!求⼤家指导![python]1. function [r,n]=mulNewton(x0,funcMat,var,eps)2. % x0为两个变量的起始值,funcMat是两个⽅程,var为两个⽅程的两个变量,eps控制精度3. % ⽜顿迭代法解⼆元⾮线性⽅程组4. if nargin==05. x0 = [0.2,0.6];6. funcMat=[sym('(15*x1+10*x2)-((40-30*x1-10*x2)^2*(15-15*x1))*5e-4')...7. sym('(15*x1+10*x2)-((40-30*x1-10*x2)*(10-10*x2))*4e-2')];8. var=[sym('x1') sym('x2')];9. eps=1.0e-4;10. end11.12. n_Var = size(var,2);%变量的个数13. n_Func = size(funcMat,2);%函数的个数14. n_X = size(x0,2);%变量的个数15.16. if n_X ~= n_Var && n_X ~= n_Func17. fprintf('Expression Error!\n');18. exit(0);19. end20.21. r=x0-myf(x0, funcMat, var)*inv(dmyf(x0, funcMat, var));22. n=0;23. tol=1;24. while tol>=eps25. x0=r;26. r=x0-myf(x0, funcMat, var)*inv(dmyf(x0, funcMat, var));27. tol=norm(r-x0);28. n=n+1;29. if(n>100000)30. disp('迭代步数太多,⽅程可能不收敛');31. return;32. end33. end34. end % end mulNewton[python]1. function f=myf(x,funcMat, varMat)2. % 输⼊参数x为两个数值,func为1*2符号变量矩阵,var为1*2符号变量矩阵中的变量3. % 返回值为1*2矩阵,内容为数值4.5. n_X = size(x,2);%变量的个数6. f_Val = zeros(1,n_X);7. for i=1:n_X8. tmp_Var = cell(1,n_X);9. tmp_X = cell(1,n_X);10. for j=1:n_X11. tmp_Var{j} = varMat(1,j);12. tmp_X{j} = x(1,j);13. end14. f_Val(i) = subs(funcMat(1, i), tmp_Var, tmp_X);15. end16. f=f_Val;17. end % end myf[python]1. function df_val=dmyf(x, funcMat, varMat)2. % 返回值为2*2矩阵,内容为数值3. %df=[df1/x1, df1/x2;4. % df2/x1. df2/x2];5. n_X = size(x,2);%变量的个数6. df =cell(n_X, n_X);7. for i=1:n_X8. for j=1:n_X9. df{i,j} = diff(funcMat(1, i), varMat(1, j));10. end11. end12.13. df_val=zeros(n_X, n_X);14.15. for i=1:n_X16. for j=1:n_X17. tmp_Var = cell(1,n_X);18. tmp_X = cell(1,n_X);19. for k=1:n_X20. tmp_Var{k} = varMat(1,k);21. tmp_X{k} = x(1,k);22. end23. df_val(i,j) = subs(df{i,j}, tmp_Var, tmp_X);24. end25. end26. end % end dmyf。

求解非线性方程的牛顿迭代法

求解非线性方程的牛顿迭代法

求解非线性方程的牛顿迭代法作者:李晓辉任伟和程长胜来源:《科技风》2021年第14期摘要:本文主要讲了求解非线性方程的牛顿迭代法。

文章首先引入牛顿迭代法的公式、迭代函数。

紧接着文章又介绍了牛顿迭代法的局部收敛性以及它的收敛速度,并通过数值实验验证了牛顿迭代法求解非线性方程的有效性。

关键词:牛顿迭代法;局部收敛;收敛速度中图分类号:O010224文献标识码:A一、绪论类似于线性方程组Ax=b求解的问题,非线性方程的一般问题可化为f(x)=y,即“对于什么样的x的值,函数f取值为y”,这里可以暂且先把f当成单变量函数,通常把y移项并吸收进f,从而一般形式可记为f(x)=0,因此,一个一般的一元非线性方程的求解问题有如下形式:给定函数f,寻找x(实的或复的),使得f(x)=0。

若存在一点x*满足该性质,称x*是方程f(x)=0的根或函数的零点。

这类问题称为求根问题或求零点问题。

此外,方程的根的情况可分为单根和重根。

一般的非线性方程的重数可以定义如下:若f(x)=(x-x*)m·g(x)且g(x)≠0,其中,m为自然数,称x*为f(x)的m重根,m=1时也称单根。

若区间[a,b]上有方程的一个实根,称该区间为方程的一个有根区间,如果能把方程的有根区间的长度缩短到一定的范围内,那么就求到了一个近似根,通常采用的都是数值求解的办法,因此若假设要求有根区间长度为0(即求到精确解),这些数值求解的办法通常都会产生一个逐渐逼近根的一个无穷序列。

求方程的近似根,一般要考虑如下几个问题:(1)根的存在性问题,即方程有没有实根,有几个根。

(2)有根区间的确定。

本文介绍的算法通常是假设有根的前提下给出求近似根的方法,一般需要以别的辅助工具先确定有根区间。

(3)求出足够近似的根,即在制定精度下缩小有根区间,或通过某些判别条件断定近似根的精度。

二、Newton迭代公式的构造简单迭代是将非线性方程f(x)=0通过代数恒等变形,将原方程化成等价方程x=φ(x),从而形成迭代式xk+1=φ(xk)。

非线性方程组的求解

非线性方程组的求解

非线性方程组的求解摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组。

求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法、梯度法、共轭方向法、混沌法、BFGS 法、单纯形法等。

传统数值方法的优点是计算精度高,缺点是对初始迭代值具有敏感性,同时传统数值方法还会遇到计算函数的导数和矩阵求逆的问题,对于某些导数不存在或是导数难求的方程,传统数值方法具有一定局限性。

另一种方法是进化算法,如遗传算法、粒子群算法、人工鱼群算法、差分进化算法等。

进化算法的优点是对函数本身没有要求,不需求导,计算速度快,但是精度不高。

关键字:非线性方程组、牛顿法、BFGS 法、记忆梯度法、Memetic 算法1: 三种牛顿法:Newton 法、简化Newton 法、修改的Newton 法【1-3】 求解非线性方程组的Newton 法是一个最基本而且十分重要的方法, 目前使用的很多有效的迭代法都是以Newton 法为基础, 或由它派生而来。

n 个变量n 个方程的非线性方程组, 其一般形式如下:⎪⎪⎩⎪⎪⎨⎧===0),...,(...0),...,(0),...,(21212211n n n n x x x f x x x f x x x f (1)式(1)中,),...,(21n i x x x f ( i=1, ⋯, n) 是定义在n 维Euclid 空间Rn 中开域 D 上 的实值函数。

若用向量记号,令:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n x x x ...X 21,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡====)(...)()(0),...,(...0),..,(0)...,()(2121212,211X f X f X f x x x f x x x f x x x f X F nn n n n则方程组(1)也可表示为:0)(=X F(2) 其中:X ∈R n ,F ∶R n →R 0, F(X) ∈R n , R n 为赋值空间。

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

Newton迭代法求解非
线性方程
一、 Newton 迭代法概述
构造迭代函数的一条重要途径是用近似方程来代替原方程去求根。

因此,如果能将非线性方程f (x )=0用线性方程去代替,那么,求近似根问题就很容易解决,而且十分方便。

牛顿(Newton)法就是一种将非线性方程线化的一种方法。

设k x 是方程f (x )=0的一个近似根,把如果)(x f 在k x 处作一阶Taylor 展开,即:
)x x )(x ('f )x (f )x (f k k k -+≈ (1-1)
于是我们得到如下近似方程:
0)x x )(x ('f )x (f k k k =-+ (1-2)
设0)('≠k x f ,则方程的解为:
x ̅=x k +f (x k )
f (x k )́
(1-3)
取x ~作为原方程的新近似根1+k x ,即令: )
x ('f )
x (f x x k k k 1k -=+, k=0,1,2,…
(1-4)
上式称为牛顿迭代格式。

用牛顿迭代格式求方程的根的方法就称为牛顿迭代法,简称牛顿法。

牛顿法具有明显的几何意义。

方程:
)x x )(x ('f )x (f y k k k -+= (1-5)
是曲线)x (f y =上点))x (f ,x (k k 处的切线方程。

迭代格式(1-4)就是用切线式(1-5)的零点来代替曲线的零点。

正因为如此,牛顿法也称为切线法。

牛顿迭代法对单根至少是二阶局部收敛的,而对于重根是一阶局部收敛的。

一般来说,牛顿法对初值0x 的要求较高,初值足够靠近*x 时才能保证收敛。


要保证初值在较大范围内收敛,则需对)x (f 加一些条件。

如果所加的条件不满足,而导致牛顿法不收敛时,则需对牛顿法作一些改时,即可以采用下面的迭代格式:
)
x ('f )
x (f x x k k k 1k λ
-=+,
⋯=,2,1,0k (1-6)
上式中,10<λ<,称为下山因子。

因此,用这种方法求方程的根,也称为牛顿下山法。

牛顿法对单根收敛速度快,但每迭代一次,除需计算)x (f k 之外,还要计算
)x ('f k 的值。

如果)x (f 比较复杂,计算)x ('f k 的工作量就可能比较大。

为了避免计算导数值,我们可用差商来代替导数。

通常用如下几种方法: 1. 割线法 如果用
1
k k 1k k x x )
x (f )x (f ----代替)x ('f k ,则得到割线法的迭代格式为:
)x (f )
x (f )x (f x x x x k 1k k 1
k k k 1k --+---=
(1-7) 2. 拟牛顿法 如果用
)
x (f ))
x (f x (f )x (f k 1k k k ---代替)x ('f k ,则得到拟牛顿法的迭代格式为:
))
x (f x (f )x (f )
x (f x x 1k k k k 2k 1k -+---
= (1-8)
3. Steffenson 法 如果用
)
x (f )
x (f ))x (f x (f k k k k -+代替)x ('f k ,则得到拟牛顿法的迭代格式为:
)
x (f ))x (f x (f )
x (f x x k k k k 2k 1
k -+-
=+
(1-9)
二、 算法分析
1. 割线法
割线法的迭代公式为:
)x (f )
x (f )x (f x x x x k 1k k 1
k k k 1k --+---
=,k=0,1,2,…
割线法是超线性收敛,其程序流程图为:
2. 拟牛顿法
牛顿拟迭代法迭代公式为:
))
x (f x (f )x (f )
x (f x x 1k k k k 2k 1
k -+---
= (1)对单根条件下,牛顿拟迭代法平方收敛,牛顿拟迭代法程序框图如下所
示:
(2) 对重根条件下,此时
迭代公式修改为:
))
x (f x (f )x (f )
x (f m
x x 1k k k k 2k 1
k -+---=,m 为根的重数 此时,牛顿迭代法至少平方收敛。

3. Steffenson 法
Steffenson 迭代法程序流程图与牛顿拟迭代法类似。

三、 牛顿法的程序
给定初值0p ,用牛顿法格式)
p ('f )
p (f p p 1k 1k 1
k k ---=,⋯=,2,1k ,求解非线性方程
0)x (f =。

*********************************************************************
function [p1,err,k,y] = newton(f1041,df1041,p0,delta,max1) % f1041是非线性函数。

% df1041是f1041的微商。

% p0是初始值。

% delta 是给定允许误差。

% max1是迭代的最大次数。

% p1是牛顿法求得的方程的近似解。

% err 是p0的误差估计。

% k 是迭代次数。

% y = f(p1)
p0, feval('f1041',p0) for k = 1:max1
p1 = p0 - feval('f1041', p0)/feval('df1041', p0); err = abs(p1-p0); p0 = p1;
p1, err, k, y = feval('f1041', p1) if (err < delta) | (y == 0),
break, end
p1, err, k, y = feval('f1041', p1) end
*********************************************************************
四、程序实例与计算结果
例 用上述程序求方程0233=+-x x 的一个近似解,给定初值为,误差界为610-。

解:先用m 文件先定义二个名为和的函数文件。

function y = f1041(x)
y = x^3 – 3*x + 2;
function y=df1041(x)
y=3*x^2-3;
建立一个主程序 clear
newton('f1041','df1041',, 10^(-6), 18)然后在MATLAB命令窗口运行上述主程序,即: >> prog1041
计算结果如下:
p0 = ans = p1 = err = k = 1 y =
p1 = err = k = 1 y =
p1 = err = k = 2 y =
p1 = err = k = 2 y =
p1 = err = k = 3 y =
p1 = err = k = 3 y = p1 = err = k = 4 y =
p1 = err = k = 4 y =
p1 = err = k = 5 y =
p1 = err = k = 5 y =
p1 = err = k = 6 y =
p1 = err = k = 6 y =
p1 = err = k = 7 y =
p1 = err = k = 7 y =
p1 = err = k = 8 y =
p1 = err = k = 8 y =
p1 = err = k = 9 y =
p1 = err = k = 9y =
p1 = err = k = 10 y =
p1 = err = k = 10 y =
p1 = err = k = 11 y =
p1 = err = k = 11 y =
p1 = err = k = 12 y =
p1 = err = k = 12 y =
p1 = err =
k = 13 y =
p1 = err = k = 13 y =
p1 = err = k = 14 y =
p1 = err = k = 14 y =
p1 = err = k = 15 y =
p1 = err = k = 15 y = p1 = err = k = 16 y =
p1 = err = k = 16 y =
p1 = err = k = 17 y =
p1 = err = k = 17 y =
p1 = err = k = 18 y =
ans =
这说明,经过18次迭代得到满足精度要求的值。

以下
是程
序运
行截图:。

相关文档
最新文档