第二章-方程求根

第二章-方程求根
第二章-方程求根

第二章方程求根

2.1 方程求根与二分法

2.1.1 引言

单个变量的方程

(2.1.1)

求根是数值计算经常遇到的问题.当f(x)为一般连续函数时,称式(2.1.1)为超越方程,如果f为多项式

若,为n次多项式,此时方程(2.1.1)称为代数(或多项式)方程.如果x*(实数或复数)使

,则称x*为方程(2.1.1)的根,若

,m≥1,且

,当m>1时,称x*为方程(2.1.1)的m重根或称x*是f的m重零点.若x*是f的m重零点,且g充分光滑,则

。当f为式(2.1.2)表示的代数多项式时,

根据代数基本定理可知方程(2.1.1)有n个根(含复根,m重根为m个根),对n=2的代数方程

它的根可由公式表示为

而当n=3,4时方程的根虽可用公式表示,但表达式太复杂,一般不用,当n≥5已没有直接用公式表达的求根算法.因此对n≥3的代数方程求根方法与一般超越方程(2.1.1)一样

都采用迭代方法求根,设(表示f在区间

上连续),若有

f()f(b)<0,则f(x)=0在区间

上至少有一个实根,

称为有根区间,通常可用逐次搜索法求得方程(2.1.1)的有根区间.

例2.1 求方程的有根区间.

解根据有根区间定义,对方程的根进行搜索计算,结果如下表:

方程的三个有根区间为[1,2],[3,4],[5,6].

讲解:

非线性方程f(x)=0求根,包括求超越方程和代数方程的根x*,方程的根也是f(x)的零点,即f(x*)=0,x*可以是实根也可以是复根,本章以求实根为主。求实根首先要确定根x*

所在区间,称为有根区间。根据连续函数性

质,若f(x)在上连续,当

f()f(b)<0时,

为有根区间,为找到方程f(x)=0的有根区间,

可用逐次搜索法,也就是在x的不同点上计算f(x),观察f(x)的符号,如例2.1表中所示,只要在相邻两点f反号,则得到有根区间,本例得到三个有根区间,分别为[1,2][3,4][5,6].

2.1.2 二分法

设,且

为有根区间,取中点

,将它分为两半,检查

是否同号,若是,说明根x*仍在

右侧,取,

否则取

,得到新的有根区间

长度仅为

的一半(见图2-1).重复以上过程,即取

,将

再分半,确定根在

的哪一侧,得到新区间

,其长度为

的一半,从而可得一系列有根区间

其中每一个区间长度都是前一个区间长度的一半,因此,

的长度为

,

即为方程(2.1.1)的根x*的一个足够精确的近似根,且误差为

(2.1.3)

以上过程称为解方程的二分法.它计算简单且收敛性有保证,但收敛较慢,通常可用于求迭代法的一个足够好的初始近似.

例2.2求方程在区间[1.0,1.5]内的一个实根,要求准确到小数点后第二位.

解这里=1.0,b=1.5,而

f()<0,f(b)>0,故在[1.0,1.5]中有根,由式(2.1.3)知

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

第二章_Volterra_方程的求解

第二章 Volterra 方程的求解 §2.1 第二类Volterra 方程求解 积分方程是近代数学的一个重要分支,它与微分方程、泛函分析、计算数学和有机分析等有着紧密的联系.同时,它也是解决力学、数学物理和工程技术等问题的一种重要工具. 本章首先介绍积分方程的基本概念,其次利用压缩映照原理讨论积分方程的可解性及逐次逼近方法,并扼要介绍Fredholm 定理,讨论一些非线性积分方程的解法. 第二类Volterra 方程一般形式为: ()(,)()()x a x K x t t dt f x ?λ?=+? , (2.1.1) A . 化为常微分方程求解 例2.1.10().x x t e t dt x ?-=? 解 由0 ()x x t e e t dt x ?-=? ,

得0 ()x t x e t dt xe ?--=?, 求导得(),x x x e x e xe ?---=- 即()1x x ?=-. 例2.1.2 0()().x x x t dt e ??=+? 解 求导得()().x x x e ??'=+ 定解条件0 0(0)() 1.t dt e ??=+=? 化为微分方程 , (0) 1. x e ???'?=+? =? 容易得到()(1)x x x e ?=+. 定理2.1.1 如果第二类Volterra 方程(2.1.1)的核(,)K x t 为()x t -的(1)n -次多项式 01(,)()()() K x t a x a x x t =+-2 2()()2!a x x t +-11()()(1)!n n a x x t n --++ -- , 令 1 1()()()(1)!x n a y x x t t dt n ?-=--?,

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

第二章 方程求根 教学内容: 1.二分法 2.基本迭代法 3.牛顿法 4.弦位法 5.埃特金法和斯基芬森法 6.重根的情况 教学重点: 各种算法的思路及迭代公式的构造 教学难点: 各种算法的收敛性、收敛速度及误差估计 计划学时:5-6学时 授课提纲: 方程求根就是求函数)(x f 的零点*x ,即求解方程 0)(=x f 这里,0)(=x f 可以是代数方程,也可以不是,如超越方程。 方程的根既可以是实数,也可以是复数;既可能是单根,也可能是重根;即可能要求求出给定范围内的某个根,也可能要求求出方程全部的根。 本章介绍的方法对两类方程都适用,但大部分都是要求知道根在什么范围内,且在此范围内只有一个单根。若有α使得0)(,0)(≠'=ααf f ,则称α是方程0)(=x f 的单根;若有α使得 0)(,0)()()()()1(≠==='=-ααααm m f f f f , 则称α是方程0)(=x f 的m 重根。 设)(x f 在区间[a,b]连续,若0)()(

2.1.2 二分法思想 区间对分,去同存异 2.1.3 二分法计算步骤 步1:令2/)(0b a x +=,计算)(0x f ; 步2:若0)(0=x f ,令0*x x =,计算结束; 步3:若)(0x f *)(a f >0,令0x a =;否则令0x b =; 步4:若ε≤-||a b ,令2/)(*b a x +=,计算结束;否则转步1。 2.1.4 二分法误差分析和收敛性 记第k 次区间中点为k x ,则有 2/)(0*a b x x -≤-,21*2/)(a b x x -≤-,1*2/)(,+-≤-k k a b x x 故当∞→k 时,*x x k →。 为使ε≤-k x x *,解不等式ε≤-+12/)(k a b ,得 12ln /]ln )[ln(---≥εa b k 2.1.5 二分法的优缺点 ● 算法简单直观,易编程计算; ● 只需)(x f 连续即可; ● 区间收缩速率相同,收敛速度慢; ● 无法求复根和偶重根。 例2-1 p15例1 2.2 迭代法 2.2.1 迭代法原理 0)(=x f ? )(x x ?= )(x f 的根 )(x ?的不动点 2.2.2 迭代法思路 任取初值],[0b a x ∈,令)(01x x ?=,)(12x x ?=,反复迭代,即得 ),2,1,0(),(1 ==+k x x k k ? 直到满足精度要求的k x 来近似*x 。称)(x x ?=为迭代公式,)(x ?为迭代函数,{k x }为迭代序列。 若{k x }收敛时,称迭代公式是收敛的。此时设=∞ →k k x lim *x ,当)(x ?连续时 )()lim ()(lim lim *1*x x x x k k k k k ???====∞ →∞ →+∞ → 亦即0)(*=x f 。若{k x }不收敛,称迭代公式是发散的。

数值计算方法matlab 第二章 求根

1 第二章作业 问题描述: 不同温度的两种流体进入混合器混合,流出时具有相同的温度。流体A 和B 的热容(单位:cal/(mol ·K))分别为: 2623.381 1.80410 4.30010pA c T T --=+?-? 1528.592 1.29010 4.07810pB c T T --=+?-? 焓变(单位:cal/mol )为2 1 T p T H c dT ?= ? 。 A 进入混合器的温度为400℃, B 进入混合器的温度为700℃,A 的量(mol )是B 的量(mol )的两倍,试确定流体离开混合器的温度。 问题分析: 初始情况下,气体A 的温度比气体B 的温度低,故在混合过程中,气体A 温度升高,气体B 温度降低。由于没有外界加热或者做功,混合气体整体的焓变应该为零。 设A 有2mol ,B 有1mol ,根据焓变公式计算得到: 2 1 -262400 -22632= 6.762+3.608108.60010)6.762 1.80410 2.867105407.712T T A pA T H c dT T T dT T T T --?=?-?=+?-?-??( 2 1 -152700 -1253=+1.29010 4.07810)0.64510 1.3591032958.030 T T B pB T H c dT T T dT T T T --?=?-?=+?-?-??(8.5928.592 而0A B H H ?+?=,故该问题最后变成求解方程 2263()15.3548.2541016.4571038365.742f T T T T --=+?-?- 的根的问题。接下来将采用二分法、试位法以及牛顿法进行改方程的求解。方程保存为f.m ,可在压缩文件中找到。 一、 二分法 二分法的基本思想为,确定有根区间,然后不断将区间二等分,通过判断f(x)的符号,逐步将区间缩小,直到有根区间足够小,便可满足精度要求的近似根。 本例中,可以清楚的得到有根区间为(400,700)。取容限误差为-3 0.510%?,可以保证5 位有效数字。程序编写存储于bisec.m 。 其中,bisec 函数定义为: function bisec(f_name,a,c,xmin,xmax,n_points) 调用时: >> bisec('f',400,700,400,700,1000) 相当于取了a=400;c=700;作图时横坐标取得是从400~700的范围,采样点为1000个。

相关主题
相关文档
最新文档