文档库 最新最全的文档下载
当前位置:文档库 › 基于不动点方法求解非线性Falkner-Skan流动方程

基于不动点方法求解非线性Falkner-Skan流动方程

基于不动点方法求解非线性Falkner-Skan流动方程
基于不动点方法求解非线性Falkner-Skan流动方程

差分方程的解法

第三节 差分方程常用解法与性质分析 1、常系数线性差分方程的解 方程)(...110n b x a x a x a n k k n k n =+++-++ ( 8) 其中k a a a ,...,,10为常数,称方程(8)为常系数线性方程。 又称方程0...110=+++-++n k k n k n x a x a x a (9) 为方程(8)对应的齐次方程。 如果(9)有形如 n n x λ=的解,带入方程中可得: 0 ...1110=++++--k k k k a a a a λλλ (10) 称方程(10)为方程(8)、(9)的特征方程。 显然,如果能求出(10)的根,则可以得到(9)的解。 基本结果如下: (1) 若(10)有k 个不同的实根,则(9)有通解: n k k n n n c c c x λλλ+++=...2211, (2) 若(10)有m 重根λ,则通解中有构成项: n m m n c n c c λ)...(121----+++

(3)若(10)有一对单复根 βαλi ±=,令:?ρλi e ±=, αβ?βαρarctan ,22=+=,则(9)的通解中有构成项: n c n c n n ?ρ?ρsin cos 21--+ (4) 若有m 重复根:βαλi ±=,φρλi e ±=,则(9)的通项中有成 项: n n c n c c n n c n c c n m m m m n m m ?ρ?ρsin )...(cos )...(1221121---++---+++++++ 综上所述,由于方程(10)恰有k 个根,从而构成方程 (9)的通解中必有k 个独立的任意常数。通解可记为:-n x 如果能得到方程(8)的一个特解:*n x ,则(8)必有通解: =n x -n x +* n x (11) (1) 的特解可通过待定系数法来确定。 例如:如果)(),()(n p n p b n b m m n =为n 的多项式,则当b 不是特征 根时,可设成形如)(n q b m n 形式的特解,其中)(n q m 为m 次多项式;如 果b 是r 重根时,可设特解:r n n b )(n q m ,将其代入(8)中确定出系 数即可。

不动点非线性方程求解

《MATLAB程序设技实践》课程考核 1编程实现以下科学计算算法,并举一例应用之,(参考书籍《精通MATLAB科学计算》),王正林等著,电子工业出版社,2009年)。“不动点非线性方程求解” ①算法说明: 在MATLAB中编程实现不动点迭代法的函数是:StablePoint。 功能:用不动点迭代法求函数的一个零点。 调用格式:[root,n]=StablePoint(f,x0,eps)。 其中,f为函数名; x0为初始迭代向量; eps为根的精度; root为求出的函数零点; n为迭代步数。 ②流程图:

③源程序代码: Function [root,n]=StablePoint(f,x0,eps) %用不动点迭代法求函数的一个零点 %初始迭代量: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; %迭代的核心公式 tol=abs(root-r1); end ④举例 20 x +-= 的一个根。 解:流程图 在MATLAB命令窗口中输入: >> [r,n]=StablePoint('1/sqrt(x)+x-2',0.5) r =

3.8197e-001 n = 4 ⑤结果说明: 从计算结果可以看出,经过四步迭代,得出方程的一个根为0.3820 ⑥在MATLAB中运行情况: 2编程解决以下科学计算问题。 (1)某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制折线图和饼图,并说明图形的实 际意义。 ①算法说明: 首先用subplot对作图区域进行分区;

非线性方程求根word版

第7章 非线性方程求根 本章主要内容: 1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法. 重点、难点 一、区间二分法 区间二分法是求方程f(x)=0根的近似值的常用方法。 基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。 区间二分法的计算步骤如下: 1. 计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0); 确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2( b a f + 取2 1b a x += 3.判断: 若0)(1=x f ,则方程的根为1x x =* ; 若 0)(1>x f ,则有根区间为[]1,x a x ∈* ;令[]],[,111b a x a = 若 0)(1

12 ln ln )ln(---≥ ε a b n 确定应二分的次数。 例1 用区间二分法求方程0353 =+-x x 在某区间内实根的近似值(精确到0.001) 【思路】参见上述区间二分法的计算步骤 解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。 由公式 644.512 ln 001 .0ln 1.0ln 12ln ln )ln(=--=---≥ εa b n 取n=6, 计算结果列表如下: 则方程在区间[1.8,1.9]内所求近似值为x * ≈ x = 1.8328125 区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。 迭代序列收敛阶的概念

差分方程的解法

1、常系数线性差分方程的解 方程 a 0x n k a 1x n k 1 ... a k x n b(n) 其中 a 0 , a 1,..., a k 为常数,称方程( 8)为常系数线性方程。 又称方程 a 0x n k a 1x n k 1 ... a k x n 为方程( 8)对应的齐次方程。 第三节 差分方程常用解法与性质分析 9) n 如果( 9)有形如 x n 的解, 带入方程中可得: k k 1 a 0 a 1 ... a k 1 a k 0 10) 称方程( 10)为方程( 8)、 9)的特征方程。

n n n c 1 1 c 2 2 ... c k k , 若(10) 有 m 重根 ,则通解中有构成项: (c 1 m 1 n c 2 n ... c m n ) 显然, 如果能求出( 10)的根,则可以得到( 9)的解。 基本结果如下: 1) 若(10) 有 k 个不同的实根,则( 9)有通解:

(3)若(10)有一对单复根 综上所述,由于方程(10)恰有k 个根,从而构成方程 (9)的通解中必有k 个独立的任意常数。通解可记为:X n 如果能得到方程(8)的一个特解:X n ,则(8)必有通解: * X n X n + 焉 (11) (1)的特解可通过待定系数法来确定。 例如:如果b (n )bk m (n ), pMn )为门的多项式,则当b 不是特征 根 时,可设成形如 bq m (n ) 形式的特解,其中 q m (n ) 为m 次多项式;如 果b 是 r 重根时,可设特解:b n n r q m (n ) ,将其代入(8)中确定出系 数即可。 arcta n — ,则(9) 的通解中有构成项: C l n . cos n C 2 sin (4)若有 m 重复根: i e ,则 (9)的通项中有成 项: cos n (C m 1 C m 2 n m 1 、 n ? c 2m n ) sin n

差分方程的解法

差分方程常用解法 1、 常系数线性差分方程的解 方程)(...110n b x a x a x a n k k n k n =+++-++ (1) 其中k a a a ,...,,10为常数,称方程(1)为常系数线性方程。 又称方程0...110=+++-++n k k n k n x a x a x a (2) 为方程(1)对应的齐次方程。 如果(2)有形如n n x λ=的解,代入方程中可得: 0...1110=++++--k k k k a a a a λλλ (3) 称方程(3)为方程(1)、(2)的特征方程。 显然,如果能求出方程(3)的根,则可以得到方程(2)的解。 基本结果如下: (1) 若(3)有k 个不同的实根,则(2)有通解: n k k n n n c c c x λλλ+++=...2211, (2) 若(3)有m 重根λ(即m 个根均为λ),则通解中有构成项: n m m n c n c c λ)...(121----+++

(3)若(3)有一对单复根 βαλi ±=,令:?ρλi e ±=, αβ ?βαρarctan ,22=+=,则(2)的通解中有构成项: n c n c n n ?ρ?ρsin cos 21- -+ (4) 若有m 重复根:βαλi ±=,φρλi e ±=,则(2)的通项中有构 成项: n n c n c c n n c n c c n m m m m n m m ?ρ?ρsin )...(cos )...(1221121---++---+++++++ 综上所述,由于方程(3)恰有k 个根,从而构成方程(2)的通解中必有k 个独立的任意常数。通解可记为:-n x 如果能得到方程(1)的一个特解:*n x ,则(1)必有通解: =n x -n x +* n x (4) 方程(4) 的特解可通过待定系数法来确定。 例如:如果)(),()(n p n p b n b m m n =为n 的m 次多项式,则当b 不是特征根时,可设成形如)(n q b m n 形式的特解,其中)(n q m 为n 的m 次多 项式;如果b 是r 重特征根时,可设特解:r n n b )(n q m ,将其代入(1) 中确定出系数即可。

非线性方程的解法

20世纪60年代中期以后,发展了两种求解非线性方程组(1)的新方法。一种称为区间迭代法或称区间牛顿法,它用区间变量代替点变量进行区间迭代,每迭代一步都可判断在所给区间解的存在惟一性或者是无解。这是区间迭代法的主要优点,其缺点是计算量大。另一种方法称为不动点算法或称单纯形法,它对求解域进行单纯形剖分,对剖分的顶点给一种恰当标号,并用一种有规则的搜索方法找到全标号单纯形,从而得到方程(1)的近似解。这种方法优点是,不要求f(□)的导数存在,也不用求逆,且具有大范围收敛性,缺点是计算量大 编辑摘要 目录 ? 1 正文 ? 2 牛顿法及其变形 ? 3 割线法 ? 4 布朗方法 ? 5 拟牛顿法 ? n个变量n个方程(n >1)的方程组表示为 (1) 式中?i(x1,x2,…,x n)是定义在n维欧氏空间R n的开域D上的实函数。若?i中至少有一个非 线性函数,则称(1)为非线性方程组。在R n中记?= 则(1)简写为?(尣)=0。若存在尣*∈D,使?(尣*)=0,则称尣*为非线性方程组的解。方程组(1)可能有一个解或多个解,也可能有无穷多解或无解。对非线性方程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不象线性方程组那样有效。除极特殊的方程外,一般不能用直接方法求得精确解,目前主要采用迭代法求近似解。根据不同思想构造收敛于解尣*的迭代序列{尣k}(k=0,1,…),即可得到求解非线性方程组的各种迭代法,其中最著名的是牛顿法。 牛顿法基本思想是将非线性问题逐步线性化而形成如下迭代程序:

(2) 式中 是?(尣k)的雅可比矩阵,尣0是方程(1)的解尣*的初始近似。 这个程序至少具有2阶收敛速度。由尣k算到尣k+的步骤为:①由尣k算出?(尣k)及 ;②用直接法求线性方程组的解Δ尣k;③求 。 由此看到迭代一次需计算n个分量函数值和n2个分量偏导数值,并求解一次n阶线性方程组。 为了评价非线性方程组不同迭代法的优劣,通常用效率作为衡量标准,其中P为迭 代法的收敛阶,W为每迭代步计算函数值?i及偏导数值的总个数(每迭代步中求一次逆的工作量相同,均不算在W 内)。效率e越大表示此迭代法花费代价越小,根据效率定义, 牛顿法(2)的效率为。 牛顿法有很多变形,如当奇异或严重病态时,可引进阻尼因子λk,得到阻尼牛顿法,即

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

非线性方程求根——不动点迭代法

一、迭代法的基本思想 迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。例:求方程x 3-x -1=0 在x =1.5 附近的一个根。 解:将所给方程改写成3 1x x =+假设初值x 0=1.5是其根,代入得 3 3101 1.51 1.35721x x =+=+=

x 1≠x 0,再将x 1代入得 3 3211 1.357211 1.33086x x =+=+=x 2≠x 1,再将x 2代入得 3 3321 1.330861 1.32588x x =+=+=如此继续下去,结果如下: k x k k x k 01234 1.5 1.35721 1.33086 1.32588 1.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; end err=1; root=x0; n=0; while(err>tol) n=n+1; %迭代次数 r1=root; root=feval(phai,r1); %计算函数值 err=abs(root-r1); end

差分方程的解法(终审稿)

差分方程的解法 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

第三节 差分方程常用解法与性质分析 1、常系数线性差分方程的解 方程)(...110n b x a x a x a n k k n k n =+++-++ ( 8) 其中k a a a ,...,,10为常数,称方程(8)为常系数线性方程。 又称方程0...110=+++-++n k k n k n x a x a x a (9) 为方程(8)对应的齐次方程。 如果(9)有形如 n n x λ=的解,带入方程中可得: 0 ...1110=++++--k k k k a a a a λλλ(10) 称方程(10)为方程(8)、(9)的特征方程。 显然,如果能求出(10)的根,则可以得到(9)的解。 基本结果如下: (1) 若(10)有k 个不同的实根,则(9)有通解: n k k n n n c c c x λλλ+++=...2211, (2) 若(10)有m 重根λ,则通解中有构成项:

(3)若(10)有一对单复根 βαλi ±=,令:?ρλi e ±=, αβ ?βαρarctan ,22=+=,则(9)的通解中有构成项: (4) 若有m 重复根:βαλi ±=,φρλi e ±=,则(9)的通项中有成项: n n c n c c n n c n c c n m m m m n m m ?ρ?ρsin )...(cos )...(1221121-- -++---+++++++ 综上所述,由于方程(10)恰有k 个根,从而构成方程 (9)的通解中必有k 个独立的任意常数。通解可记为:-n x 如果能得到方程(8)的一个特解:*n x ,则(8)必有通解: =n x -n x +* n x (11) (1) 的特解可通过待定系数法来确定。 例如:如果 )(),()(n p n p b n b m m n =为n 的多项式,则当b 不是特征根时,可设成形如)(n q b m n 形式的特解,其中)(n q m 为m 次多项式;如果b 是r 重根时, 可设特解:r n n b )(n q m ,将其代入(8)中确定出系数即可。 2、差分方程的z 变换解法

Maab求解线性方程组非线性方程组

M a a b求解线性方程组非 线性方程组 The latest revision on November 22, 2020

求解线性方程组solve,linsolve例:A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1];%矩阵的行之间用分号隔开,元素之间用逗号或空格B=[3;1;1;0]X=zeros(4,1);%建立一个4元列向量 X=linsolve(A,B)diff(fun,var,n):对表达式fun中的变量var求n阶导数。 例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式diff(F); %matlab区分大小写pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式 非线性方程求解 fsolve(fun,x0,options) 其中fun为待解方程或方程组的文件名; x0位求解方程的初始向量或矩阵; option为设置命令参数 建立文件: function y=fun(x) y=[x(1)*sin(x(1))*cos(x(2)), ... x(2) - *cos(x(1))+*sin(x(2))]; >>clear;x0=[,];fsolve(@fun,x0,optimset('fsolve'))注:...为续行符m文件必须以function 为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。 Matlab求解线性方程组AX=B或XA=B在MATLAB中,求解线性方程组时,主要采用前面章节介绍的除法运算符“/”和“\”。如:X=A\B表示求矩阵方程AX=B的解;X=B/A表示矩阵方程XA=B 的解。对方程组X=A\B,要求A和B用相同的行数,X和B有相同的列数,它的行数等于矩阵A 的列数,方程X=B/A同理。 如果矩阵A不是方阵,其维数是m×n,则有:m=n 恰定方程,求解精确解;m>n 超定方程,寻求最小二乘解;m

MATLAB应用 求解非线性方程

第7章 求解非线性方程 7.1 多项式运算在MATLAB 中的实现 一、多项式的表达 n 次多项式表达为:n a +??++=x a x a x a p(x )1-n 1-n 1n 0,是n+1项之和 在MATLAB 中,n 次多项式可以用n 次多项式系数构成的长度为n+1的行向量表示 [a0, a1,……an-1,an] 二、多项式的加减运算 设 有 两 个 多 项 式 n a +??++=x a x a x a p1(x )1-n 1-n 1n 0和 m b +??++=x b x b x b p2(x )1-m 1-m 1m 0。它们的加减运算实际上就是它们的对应系 数的加减运算。当它们的次数相同时,可以直接对多项式的系数向量进行加减运算。当它们的次数不同时,应该把次数低的多项式无高次项部分用0系数表示。 例2 计算()()1635223-+++-x x x x a=[1, -2, 5, 3]; b=[0, 0, 6, -1]; c=a+b 例3 设()6572532345++-+-=x x x x x x f ,()3532-+=x x x g ,求f(x)+g(x) f=[3, -5, 2, -7, 5, 6]; g=[3, 5, -3]; g1=[0, 0, 0, g];%为了和f 的次数找齐 f+g1, f-g1 三、多项式的乘法运算 conv(p1,p2) 例4 在上例中,求f(x)*g(x) f=[3, -5, 2, -7, 5, 6]; g=[3, 5, -3]; conv(f, g) 四、多项式的除法运算 [Q, r]=deconv(p1, p2) 表示p1除以p2,给出商式Q(x),余式r(x)。Q,和r 仍为多项式系数向量 例4 在上例中,求f(x)/g(x) f=[3, -5, 2, -7, 5, 6]; g=[3, 5, -3]; [Q, r]=deconv(f, g) 五、多项式的导函数 p=polyder(P):求多项式P 的导函数 p=polyder(P,Q):求P·Q 的导函数

非线性方程(组)的数值解法

第三章 非线性方程(组)的数值解法 一.取步长1h =,试用搜索法确立3()25f x x x =--含正根的区间,然后用二分法求这个正根,使误差小于310-。 【详解】 因为是要寻找正根,因此,可选含根区间的左端点为0。(0)5f =-, (1)5f =-,(2)1f =-,(3)16f =,因此,(2,3)中有一个正根。这就确立 了含根区间。 接下来,我们用二分法求这个正根,使误差小于310-,计算结果如下表 迭代次数 k a k b k x 0 2 3 2.5 1 2 2.5000 2.250 0 2 2 2.2500 2.125 0 3 2 2.1250 2.062 5 4 2.0625 2.1250 2.093 8 5 2.0938 2.1250 2.109 4 6 2.0938 2.1094 2.101 6 7 2.0938 2.1016 2.097 7 8 2.0938 2.0977 2.095 7 9 2.0938 2.0957 2.094 7 二.对方程2()2sin 20f x x x =--=,用二分法求其在区间[]1.5,2内的根,要求误差小于0.01。

【详解】 用二分法求解方程在[]1.5,2内的根,要求误差小于0.01,计算结果如下表: 迭代次数 k a k b k x 0 1.5 2 1.75 1 1.7500 2.0000 1.8750 2 1.8750 2.0000 1.9375 3 1.9375 2.0000 1.9688 4 1.9375 1.9688 1.9531 5 1.9531 1.9688 1.9609 三.用不动点迭代法,建立适当的迭代格式,求方程 3()10f x x x =--= 在0 1.5x =附近的根,要求误差小于610-。 【详解】 310x x --=,等价于x =。这样,可以建立不动点迭代格式 1k x +=当0x ≥时,总有2311 0(1)133 x -'<=+≤<,因此,迭代 格式对于任意初始值00x ≥总是收敛的。 取0 1.5x =,用所建立的不动点迭代格式求解近似根,要求误差小于610-,计算结果如下表: 迭代次数 k x 1.5

非线性方程求根问题

计算机学院上机实践报告 一、目的 1.通过本实验,帮助加深对非线性方程求根方法的构造过程的理解; 2.能将各种方法编写为程序并上机实现; 3.比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。 二、容与设计思想 1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]的根。 2.方程f(x)=2x3-5x2-19x+42=0在x=3.0附近有根,试写出其三种不同的等价形式以构成三种不同的迭代格式,再用简单迭代法求根,观察这三种迭代是否收敛。 三、使用环境 1. 硬件环境 微型计算机(Intel x86系列CPU)一台 2. 软件环境 Windows2000/XP操作系统 VC++6.0或其它的开发工具。 四、核心代码及调试过程 1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]的根主要代码: void bisect(double a,double b,int max_B) { double root, ya,yb,yroot; int i,actual_B; ya=f(a);yb=f(b); if(ya*yb>0) { printf("method failed!\n"); exit(0); } for(i=1;i<=max_B;i++) { root=(a+b)/2;yroot=f(root); //取当前含根区间的中点 if(yroot==0) { a=root;b=root;} else if(yb*yroot>0) //取含根区间为[a,(a+b)/2]

{ b=root;yb=yroot;} Else //取含根区间为[(a+b)/2,b] { a=root;ya=yroot;} if(fabs(b-a)b)) { printf("re_select a proper initial value x0!\n"); exit(0); } if(fabs(x1-x0)

实验二 非线性方程求根实验报告

实验报告 学院:电子信息工程 实验课程:计算方法 学生姓名: 学号: 专业班级:通信工程 实验二非线性方程求根 1 目的与要求 (1)进一步熟练掌握求解非线性方程的二分法与Newton迭代法。 (2)掌握二分法与Newton迭代法的算法,能运用程序设计语言和此方法编制软件求出任意指定一元三次方程在给定点附近的根。 2 实验内容 用二分法和Newton迭代法求方程 310 x x --=在 1.5 附近的根,精确到 3 10-,输出每次的迭代结果

并统计所用的迭代次数。 3 实验原理 (1)二分法实验原理 取[a,b]区间二等分的中点x1 =(a+b)/2 (1)若f(x1)=0,则x1是f(x)=0的实根。 (2)若f(a)f(x1)<0 成立,则x* 必在区间(a, x1)内,取a1=a,b1= x1;否则x*必在区间(x1,b)内,则取a1= x1,b1=b,这样,得到新区间[a1,b1],其长度为[a,b]的一半。 (3)如此继续下去,进行n次等分 (2)Newton迭代法实验原理 4 程序设计 (1)流程图 二分法程序流程图

Newton迭代法程序流程图

(2)程序代码 ①二分法求非线性方程根#include #include double fun1(double x) {

return x*x*x-x-1; } double fun2(double x1,double x2) { return (x1+x2)/2; } main() { int n=1; float a,b,c; printf("二分法求非线性方程的根\n"); scanf("a=%f,b=%f",&a,&b); if (fun1(a)*fun1(b)<0) { while(fabs(b-a)>1e-3) { c=fun2(a,b); if (fun1(a)*fun1(c)<0) { b=c;

数值分析第七章非线性方程求根习题答案

第七章非线性方程求根 (一)问题简介 求单变量函数方程 ()0f x = (7.1) 的根是指求*x (实数或复数),使得(*)0f x =.称*x 为方程(7.1)的根,也称*x 为函数() f x 的零点.若()f x 可以分解为 ()(*)()m f x x x g x =- 其中m 为正整数,()g x 满足()0g x ≠,则*x 是方程(7.1)的根.当m=1时,称*x 为单根;当m>1时,称*x 为m 重根.若()g x 充分光滑,*x 是方程(7.1)的m 重根,则有 (1)() (*)'(*)...(*)0,(*)0m m f x f x f x f x -====≠ 若()f x 在[a,b]上连续且()()0f a f b <,则方程(7.1)在(a,b)内至少有一个实根,称[a,b]为方程(7.1)的有根区间.有根区间可通过函数作图法或逐次搜索法求得. (二)方程求根的几种常用方法 1.二分法 设()f x 在[a,b]上连续,()()0f a f b <,则()0f x =在(a,b)内有根*x .再设()0f x =在(a,b)内 仅有一个根.令00,a a b b ==,计算0001()2x a b =+和 0()f x .若0()0f x =则*x x =,结束计算;若 00()()0 f a f x >,则令 10,1a x b b ==,得新的有根区间 11[,] a b ;若 00()()0 f a f x <,则令 10,10a a b x ==,得新的有根区间11[,]a b .0011[,][,]a b a b ?,11001 () 2b a b a -=-.再令1111 ()2x a b =+计算1()f x ,同上法得出新的有根区间22[,]a b ,如此反复进行,可得一有根区 间套 1100...[,][,]...[,] n n n n a b a b a b --???? 且110011 *,0,1,2,...,()...() 22n n n n n n a x b n b a b a b a --<<=-=-==-. 故 1 lim()0,lim lim ()* 2n n n n n n n n b a x a b x →∞→∞→∞-==+=

非线性方程求根

第二章非线性方程求根 线性方程是方程式中仅包含未知量的一次方项和常数项的方程,除此之外的方程都是非线性方程(nonlinear equation). 例如,大家熟知的“一元二次方程”就是一个非线性方程. 多元线性方程组的求解是数值计算领域的一个重要问题,在后续几章将专门讨论. 本章介绍求解非线性方程的数值方法,主要针对实数域,重点是单个非线性方程的求根问题. 2.1引言 2.1.1非线性方程的解 记要求解的单变量非线性方程为 f(x)=0(2.1) 其中函数f: ?→?. 一般而言,非线性方程的解的存在性和个数是很难确定的,它可能无解,也可能有一个或多个解. 例2.1 (非线性方程的解):分析下列非线性方程的解是否存在和解的个数. (1) e x+1=0. 此方程无解. (2) e?x?x=0. 此方程有一个解. (3) x2?4sinx=0. 此方程有两个解. (4) x3?6x2+5x=0. 此方程有三个解. (5) cosx=0. 此方程有无穷多个解. 在实际问题中,往往要求的是自变量在一定范围内的解,比如限定x∈[a,b]. 函数f一般为连续函数,则可记为f(x)∈C[a,b],C[a,b]表示区间[a,b]上所有连续实函数的集合. 假设在区间[a, b]上方程(2.1)的根为x?,也称x?为函数f(x)的零点. 方程的根可能不唯一,而且同一个根x?也可能是方程(2.1)的多重根. 定义2.1:对光滑函数f,若f(x?)=f′(x?)=?=f(m?1)(x?)=0,但f(m)(x?)≠0,则称x?为方程(2.1)的m重根. 当m=1时,即f(x?)=0,f′(x?)≠0时,称x?为单根. 对于多项式函数f(x),若x?为m重根,则f(x)可因式分解为 f(x)=(x?x?)m g(x) 其中g(x)也是多项式函数,且g(x?)≠0. 很容易验证,f(x?)=f′(x?)=?=f(m?1)(x?)=0,但f(m)(x?)≠0,即多项式方程重根的概念与定义2.1是一致的. 对一般的函数f,x?是方程(2.1)的重根的几何含义是,函数曲线在x?处的斜率为0,且在该点处与x轴相交. 非线性方程的一个特例是n次多项式方程(n≥2),根据代数基本定理可知,n次方程在复数域上有n个根(m重根计为m个根). 当n=1, 2时,方程的求解方法是大家熟知的. 当 n=3, 4时,虽然也有求根公式,但已经很复杂,在实际计算时并不一定适用. 当n≥5时,不存在一般的求根公式,只能借助数值求解方法来求根. 2.1.2问题的敏感性 根据问题敏感性的定义,这里需要考虑输入数据的扰动对方程的根有多大影响. 要分析敏感性首先应假设问题中的数据如何扰动,一种易于分析的情况是将非线性方程写成: f(x)=y 的形式,然后讨论y在0值附近的扰动造成的问题敏感性. 此时,求根问题变成了函数求值

计算方法非线性方程求根

计算方法第7章 非线性方程求根 本章主要内容: 1.区间二分法. 2切线法. 3.弦位法. 4.一般迭代法. 重点、难点 一、区间二分法 区间二分法是求方程f(x)=0根的近似值的常用方法。 基本思想:利用有根区间的判别方法确定方程根的区间[a,b] ,将有根区间平分为二;再利用有根区间的判别方法判断那一个区间是有根区间;重复上述步骤,直到小区间端点差的绝对值小于等于精度要求的数值,则用将上一区间的分半值作为方程的根的近似值。 区间二分法的计算步骤如下: 1. 计算区间端点的函数值f(a) , f(b)(不妨设f(a)<0,f(b)>0); 确定初始有根区间[a,b]. 2.二分有根区间[a,b],并计算)2( b a f + 取2 1b a x += 3.判断: 若0)(1=x f ,则方程的根为1x x =*; 若 0)(1>x f ,则有根区间为[]1,x a x ∈* ;令[]],[,111b a x a = 若 0)(1

12 ln ln )ln(---≥ ε a b n 确定应二分的次数。 例1 用区间二分法求方程0353 =+-x x 在某区间内实根的近似值(精确到0.001) 【思路】参见上述区间二分法的计算步骤 解 ∵f(1.8)=-0.168<0, f(1.9)=0.359>0 ∴f(x)在区间[1.8 ,1.9]内有一个根。 由公式 644.512 ln 001 .0ln 1.0ln 12ln ln )ln(=--=---≥ εa b n 取n=6, 计算结果列表如下: 则方程在区间[1.8,1.9]内所求近似值为x * ≈ x = 1.8328125 区间二分法的优点是计算程序简单,只要f (x )在区间[a,b]上连续,区间二分法就可使用,但区间二分法不能用来求偶次重根,由于区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近似值,以便进一步使用收敛更快的迭代法求出更精确的近似值。 迭代序列收敛阶的概念 设迭代序列{}n x 收敛于* x ,如果存在实数1≥p 与正常数c ,使得

matlab非线性方程的解法(含牛拉解法)

非线性方程的解法(含牛拉解法) 1引 言 数学物理中的许多问题归结为解函数方程的问题,即, 0)(=x f (1.1) 这里,)(x f 可以是代数多项式,也可以是超越函数。若有数*x 为方程0)(=x f 的根,或称函数)(x f 的零点。 设函数)(x f 在],[b a 内连续,且0)()(

非线性方程不动点算法及

本科生毕业论文

(20 14届) 本科生毕业论文 非线性方程求解的不动点算法及研究

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

Matlab求解线性方程组、非线性方程组

求解线性方程组 solve,linsolve 例: A=[5 0 4 2;1 -1 2 1;4 1 2 0;1 1 1 1]; %矩阵的行之间用分号隔开,元素之间用逗号或空格 B=[3;1;1;0] X=zeros(4,1);%建立一个4元列向量 X=linsolve(A,B) diff(fun,var,n):对表达式fun中的变量var求n阶导数。 例如:F=sym('u(x,y)*v(x,y)'); %sym()用来定义一个符号表达式 diff(F); %matlab区分大小写 pretty(ans) %pretty():用习惯书写方式显示变量;ans是答案表达式 非线性方程求解 fsolve(fun,x0,options) 其中fun为待解方程或方程组的文件名; x0位求解方程的初始向量或矩阵; option为设置命令参数 建立文件fun.m: function y=fun(x) y=[x(1)-0.5*sin(x(1))-0.3*cos(x(2)), ... x(2) - 0.5*cos(x(1))+0.3*sin(x(2))]; >>clear;x0=[0.1,0.1];fsolve(@fun,x0,optimset('fsolve')) 注: ...为续行符 m文件必须以function为文件头,调用符为@;文件名必须与定义的函数名相同;fsolve()主要求解复杂非线性方程和方程组,求解过程是一个逼近过程。

Matlab求解线性方程组 AX=B或XA=B 在MATLAB中,求解线性方程组时,主要采用前面章节介绍的除法运算符“/”和“\”。如: X=A\B表示求矩阵方程AX=B的解; X=B/A表示矩阵方程XA=B的解。 对方程组X=A\B,要求A和B用相同的行数,X和B有相同的列数,它的行数等于矩阵A的列数,方程X=B/A同理。 如果矩阵A不是方阵,其维数是m×n,则有: m=n 恰定方程,求解精确解; m>n 超定方程,寻求最小二乘解; m

相关文档 最新文档