第九讲--求代数方程的近似根(解)_第1页
第九讲--求代数方程的近似根(解)_第2页
第九讲--求代数方程的近似根(解)_第3页
第九讲--求代数方程的近似根(解)_第4页
第九讲--求代数方程的近似根(解)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、求代数方程的近似根(解)数学实验q 问题背景和实验目的u 解方程(代数方程)是最常见的数学问题之一,也是众多应用领域中不可避免的问题之一。u 目前还没有一般的解析方法来求解非线性方程,但如果在任意给定的精度下,能够解出方程的近似解,则可以认为求解问题已基本解决,至少可以满足实际需要。u 本实验主要介绍一些有效的求解方程的数值方法:对分法,迭代法 和 牛顿法。同时要求大家学会如何利用Matlab 来求方程的近似解。相关概念相关概念0( )f x u 如果如果 f(x) 是一次多项式,称上面的方程为是一次多项式,称上面的方程为线性方线性方程程;否则称之为;否则称之为非线性方程非线性方程。q 线性方

2、程线性方程 与与 非线性方程非线性方程q 基本思想基本思想对分法对分法将有根区间进行对分,判断出解在某个分段内,然后再将有根区间进行对分,判断出解在某个分段内,然后再对该段对分,依次类推,直到满足给定的精度为止。对该段对分,依次类推,直到满足给定的精度为止。q 适用范围适用范围求有根区间内的求有根区间内的 单根单根 或或 奇重实根奇重实根。q 数学原理:数学原理:介值定理介值定理设设 f(x) 在在 a, b 上连续,且上连续,且 f(a) f(b)0,则由介值定,则由介值定理可得,在理可得,在 (a, b) 内至少存在一点内至少存在一点 使得使得 f( )=0。q 具体步骤具体步骤对分法对分

3、法设方程在区间设方程在区间 a,b 内连续,且内连续,且 f(a)f(b)0,给定,给定精度要求精度要求 ,若有,若有 |f(x)| ,则则 x 就是我们所需要就是我们所需要的的 f(x) 在区间在区间 (a,b) 内的内的 近似根近似根。;,计算令)( 2/ )( ) 1 (00 xfbax;输出结果停止计算,的近似根,就是我们所要,则若000 | )(| )2(xxxxf;否则令,令若bbxaxbaaxfaf1010110, ;, 0)()( )3(;输出结果,则停止计算,若令11111 | )(|, 2/ )( )4(xxxfbax;否则令,令若1212121211, ;, 0)()(

4、bbxaxbaaxfaf. .q 收敛性分析收敛性分析对分法收敛性对分法收敛性=11111 11|()()()22 22kkkkkkxbababa 设方程的根为设方程的根为 x* (ak , bk ) ,又,又 ,所以,所以2kkkabx 0(k )对分法总是收敛的对分法总是收敛的u 但对分法的收敛速度但对分法的收敛速度较慢较慢u 通常用来试探实根的通常用来试探实根的分布区间分布区间, 或给出根的一个较为或给出根的一个较为粗糙的近似粗糙的近似。根据上面的算法,我们可以得到一个每次缩小一半的根据上面的算法,我们可以得到一个每次缩小一半的区间序列区间序列 ak , bk ,在,在 (ak , bk

5、 ) 中含有方程的根。中含有方程的根。迭代法迭代法q 基本思想基本思想u 构造构造 f (x) = 0 的一个等价方程:的一个等价方程: ( )xx u 从某个近似根从某个近似根 x0 出发,计算出发,计算得到一个迭代序列得到一个迭代序列 0kkx 1()kkxx k = 0, 1, 2, . . (x) 的不动点的不动点f (x) = 0 x = (x)等价变换等价变换f (x) 的零点的零点u 若若 收敛,即收敛,即 ,假设,假设 (x) 连续,则连续,则q 收敛性分析收敛性分析迭代法的收敛性迭代法的收敛性 1limlim ()limkkkkkkxxx lim*kkxx *x( *)x k

6、x*( *)xx ( *)0f x 即即注:若得到的点列发散,则迭代法失效!注:若得到的点列发散,则迭代法失效!q 定义:定义:迭代法收敛性判断迭代法收敛性判断q 定理定理 2:如果定理如果定理 1 的条件成立,则有如下估计的条件成立,则有如下估计10|* |1kkqxxxxq 11|* |1kkkxxxxq 如果存在如果存在 x* 的的某个某个 邻域邻域 =(x*- , x* + ), 使使得对得对 x0 开始的迭代开始的迭代 xk+1 = (xk) 都收敛都收敛, 则称该迭代法在则称该迭代法在 x* 附近附近局部收敛局部收敛。q 定理定理 1:设设 x* = (x*),的的某个某个 邻域邻

7、域 内连续,且对内连续,且对 x 都有都有 | (x)| q 1, 则对则对 x0 ,由由迭迭代代 xk+1 = (xk) 得到的点列都收敛。得到的点列都收敛。迭代法收敛性判断迭代法收敛性判断10|* |1kkqxxxxq q 定理定理 3:已知方程已知方程 x = (x),且且(1) 对对 x a, b,有有 (x) a, b;对对 x a, b,有有| (x)| q p=2,-1,0,3; q=2,1; k=conv(p,q); q 多项式除法运算:多项式除法运算:k,r = deconv(p,q)其中其中 k 返回的是多项式返回的是多项式 p 除以除以 q 的商的商,r 是余式是余式。k

8、,r=deconv(p,q)p=conv(q,k)+r多项式的多项式的求求导导q polyderk=polyder(p) : 多项式多项式 p 的导数;的导数;k=polyder(p,q): p*q 的导数;的导数;k,d=polyder(p,q): p/q 的导数,的导数,k 是分子,是分子,d 是分母是分母 k1=polyder(2,-1,0,3); k2=polyder(2,-1,0,3,2,1); k2,d=polyder(2,-1,0,3,2,1);例:已知例:已知 , , 求求32)(23xxxp12)( xxq)/( ,)( , qpqpp多项式的多项式的值值q 计算计算多项式多

9、项式在给定点的值在给定点的值u 代数多项式代数多项式求值求值y = polyval(p,x): 计算多项式计算多项式 p 在在 x 点的值点的值注:若注:若 x 是向量或矩阵,则采用是向量或矩阵,则采用数组运算数组运算 (点运算点运算)! p=2,-1,0,3; x=2; y=polyval(p,x) x=-1, 2;-2,1; y=polyval(p,x)例:已知例:已知 ,分别取,分别取 x=2 和一个和一个 2 2 矩阵,矩阵, 求求 p(x) 在在 x 处的值处的值32)(23xxxp多项式的多项式的值值u 矩阵多项式矩阵多项式求值求值Y=polyvalm(p,X)l 采用的是普通矩阵

10、运算采用的是普通矩阵运算l X 必须是方阵必须是方阵例:已知例:已知 ,则,则32)(23xxxppolyvalm(p,A) = 2*A*A*A - A*A + 3*eye(size(A) polyval(P,A) = 2*A.*A.*A - A.*A + 3*ones(size(A) p=2,-1,0,3; x=-1, 2;-2,1;polyval(p,x) polyvalm(p,x)多项式的多项式的零点零点x=roots(p):若若 p 是是 n 次多项式,则输出次多项式,则输出是是 p=0 的的 n 个根组成的个根组成的 n 维向量。维向量。)()()(21nxxxxxxxp若已知多项式

11、的全部零点,则可用若已知多项式的全部零点,则可用 poly 函数给出该多项式函数给出该多项式p=poly() p=2,-1,0,3; x=roots(p)例:已知例:已知 ,求,求 p(x) 的零点。的零点。32)(23xxxp poly2sym(p,x) k = conv(p,q)k,r = deconv(p,q) k = polyder(p) k = polyder(p,q)k,d = polyder(p,q) y = polyval(p,x) Y = polyvalm(p,X) x = roots(p)多项式多项式运算运算小结小结多项式运算中,多项式运算中,使用的是多项式使用的是多项式

12、系数向量,不涉及符号计算!不涉及符号计算!线性方程组求解线性方程组求解q 线性方程组求解线性方程组求解linsolve(A,b):解线性方程组解线性方程组 bAx 例:解方程组例:解方程组 A=1 2 1; 1 0 1; 1 3 0; b=2;3;8; x=linsolve(A,b)22338xyzxzxy b是列向量!是列向量!非线性方程的非线性方程的根根q Matlab 非线性方程的数值求解非线性方程的数值求解fzero(f,x0):求方程求方程 f=0 在在 x0 附近的根。附近的根。l 方程可能有多个根,但方程可能有多个根,但 fzero 只给出距离只给出距离 x0 最近的一个最近的一

13、个l fzero 先找出一个包含先找出一个包含 x0 的区间,使得的区间,使得 f 在这个区间在这个区间两个端点上的函数值异号,然后再在这个区间内寻找方程两个端点上的函数值异号,然后再在这个区间内寻找方程 f=0 的根;如果找不到这样的区间,则返回的根;如果找不到这样的区间,则返回 NaN。l x0 是一个标量,不能缺省是一个标量,不能缺省l 由于由于 fzero 是根据函数是否穿越横轴来决定零点,因是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点,如此它无法确定函数曲线仅触及横轴但不穿越的零点,如 |sin(x)| 的所有零点。的所有零点。非线性方程的非线性方

14、程的根根q fzero 的另外一种调用方式的另外一种调用方式fzero(f,a,b)l 方程在方程在 a,b 内可能有多个根,但内可能有多个根,但 fzero 只给出一个只给出一个l 求方程求方程 f=0 在在 a,b 区间内区间内的根。的根。q 参数参数 f 可通过以下方式给出:可通过以下方式给出:l fzero(x3-3*x+1,2); l f=inline(x3-3*x+1); fzero(f,2)l fzero(x)x3-3*x+1,2);l f 不是方程!也不能使用符号表达式!不是方程!也不能使用符号表达式!例:例: fzero(sin(x),10) fzero(sin,10) fz

15、ero(x3-3*x+1,1) fzero(x3-3*x+1,1,2) fzero(x3-3*x+1=0,1)X fzero(x3-3*x+1,-2,0) f=inline(x3-3*x+1); fzero(f,-2,0)注意:注意:fzero只能求解单变量的方程,没法求解复数、只能求解单变量的方程,没法求解复数、多变量以及方程组等。多变量以及方程组等。在搜索过程中出现在搜索过程中出现inf,nan,复数将会终止计算,复数将会终止计算,就是不能求解复数解,并且每次子返回一个解就是不能求解复数解,并且每次子返回一个解 Matlab 符号方程求解符号方程求解器器s=solve(f,v):求方程关于

16、指定自变量的解;求方程关于指定自变量的解;s=solve(f):求方程关于求方程关于默认自变量默认自变量的解。的解。l f 可以是用字符串表示的可以是用字符串表示的方程方程,或符号,或符号表达式表达式;l 若若 f 中不含等号,则表示解方程中不含等号,则表示解方程 f=0。q solve例:解方程例:解方程 x3-3*x+1=0 syms x; f=x3-3*x+1; s=solve(f,x) s=solve(x3-3*x+1,x) s=solve(x3-3*x+1=0,x)Matlab 符号方程求解符号方程求解器器q solve 也可以用来解方程组也可以用来解方程组solve( f1 , f

17、2 , . , fN , v1 , v2 , . , vN)求解由求解由 f1 , f2 , . , fN 确定的方程组关于确定的方程组关于 v1 , v2 , . , vN 的解的解例:解方程组例:解方程组 x,y,z=solve(x+2*y-z=27,x+z=3, . x2+3*y2=28,x,y,z)222273 328 xyzxzxy 输出变量的顺序要书写正确!输出变量的顺序要书写正确!例:解方程组例:解方程组 关于关于y,z的解的解y,z=solve(u*y2+v*z+w=0,y+z+w=0,y,z )S=solve(u*y2+v*z+w=0,y+z+w=0,y,z )disp(S.

18、y),disp(S.y),disp(S.z),disp(S.z)200uyvzwyzw solve 在得不到解析解时,会给出数值解。在得不到解析解时,会给出数值解。例:解方程组例:解方程组 x,y,z=solve(x+2*y-z=27,x+z=3, . x5+3*y2=28,x,y,z)522273 328 xyzxzxy x,fval,flag,out=fsolve(fun,x0,options):参数大部分与参数大部分与fzero相同,优化参数更多,更灵活。相同,优化参数更多,更灵活。注意注意x0的长度必须与变量的个数相等。的长度必须与变量的个数相等。它与它与fzero的区别是,算法不同,的区别是,算法不同,fsolve的功能强大多很多,它可的功能强大多很多,它可以直接方便的求解多变量方程组,线性和非线性等,甚至求解复以直接方便的求解多变量方程组,线性和非线性等,甚至求解复数方程。数方程。fun同样可以是句柄、同样可以是句柄、inline函数或函数或M文件,但是一般文件,但是一般M文件比较文件比较多,这是由于多,这是由于fsolve是解方程组的,目标函数一般比较烦,直接是解方程组的,目标函数一般比较烦,直接写比较困难写比较困难q fsolve一般非线性方程数值解例:解方程组例:解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论