MATLAB实验三代数方程的近似解.pptx
q 问题背景和实验目的实验三、近似求解代数方程u 解方程(代数方程)是最常见的数学问题之一,也是众多应用领域中不可避免的问题之一。u 目前还没有一般的解析方法来求解非线性方程,但如果在任意给定的精度下,能够解出方程的近似解,则可以认为求解问题已基本解决,至少可以满足实际需要。u 本实验主要介绍一些有效的求解方程的数值方法:对分法,迭代法 和 牛顿法。同时要求大家学会如何利用Matlab 来求方程的近似解。第1页/共24页相关概念u 如果 f(x)是一次多项式,称上面的方程为线性方程;否则称之为非线性方程。q 线性方程 与 非线性方程本实验主要讨论非线性方程的数值求解第2页/共24页q 基本思想基本思想对分法将有根区间进行对分,判断出解在某个分段内,然后再对该段对分,依次类推,直到满足给定的精度为止。q 适用范围求有根区间内的 单根 或 奇重实根。q 数学原理:介值定理设 f(x)在 a,b 上连续,且 f(a)f(b)0,则由介值定理可得,在(a,b)内至少存在一点 使得 f()=0。第3页/共24页q 具体步骤具体步骤对分法设方程在区间 a,b 内连续,且 f(a)f(b)0,给定精度要求 ,若有|f(x)|,则 x 就是我们所需要的 f(x)在区间(a,b)内的 近似根。.Matlab程序见 第4页/共24页q 收敛性分析收敛性分析对分法收敛性设方程的根为 x*(ak,bk),又 ,所以0(k )对分法总是收敛的u 但对分法的收敛速度较慢u 通常用来试探实根的分布区间,或给出根的一个较为粗糙的近似。根据上面的算法,我们可以得到一个每次缩小一半的区间序列 ak,bk ,在(ak,bk)中含有方程的根。第5页/共24页迭代法q 基本思想基本思想u 构造 f(x)=0 的一个等价方程:u 从某个近似根 x0 出发,计算得到一个迭代序列 k=0,1,2,.(x)的不动点f(x)=0 x=(x)等价变换f(x)的零点第6页/共24页u 若 收敛,即 ,假设(x)连续,则q 收敛性分析收敛性分析迭代法的收敛性即注:若得到的点列发散,则迭代法失效!第7页/共24页q 定义:定义:迭代法收敛性判断q 定理定理 2:如果定理如果定理 1 的条件成立,则有如下估计的条件成立,则有如下估计如果存在 x*的某个 邻域 =(x*-,x*+),使得对 x0 开始的迭代 xk+1=(xk)都收敛,则称该迭代法在 x*附近局部收敛。q 定理定理 1:设 x*=(x*),的某个 邻域 内连续,且对 x 都有|(x)|q 1,则对 x0,由迭代 xk+1=(xk)得到的点列都收敛。第8页/共24页迭代法收敛性判断q 定理定理 3:已知方程 x=(x),且(1)对 xa,b,有(x)a,b;(2)对 xa,b,有|(x)|q syms x f=sin(x)+3*x2;g=diff(f,x)g=diff(sin(x)+3*x2,x)第19页/共24页f=inline(函数表达式,变量1,变量2,.)y=f(数值列表)代入的 数值列表 顺序应与定义时的 变量名 顺序一致例:附录:inlinel inline 命令可以用来定义一个内联函数l 调用方式:第20页/共24页u 这种函数定义方式是将 f 作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于 Matlab 的数值计算内核的,所以它的运算速度较快,程序更有效率。u 这种定义方式的缺点:l 定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。l 该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。自定义函数方式(三)第21页/共24页自定义函数方式(三)第22页/共24页教材:P87,4q 作业(要求写实验报告)上机作业第23页/共24页感谢您的观看!第24页/共24页