用matlab编程3.ppt_第1页
用matlab编程3.ppt_第2页
用matlab编程3.ppt_第3页
用matlab编程3.ppt_第4页
用matlab编程3.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

实验三求代数方程的近似根 解 数学实验 问题背景和实验目的 实验三 近似求解代数方程 解方程 代数方程 是最常见的数学问题之一 也是众多应用领域中不可避免的问题之一 目前还没有一般的解析方法来求解非线性方程 但如果在任意给定的精度下 能够解出方程的近似解 则可以认为求解问题已基本解决 至少可以满足实际需要 本实验主要介绍一些有效的求解方程的数值方法 对分法 迭代法和牛顿法 同时要求大家学会如何利用Matlab来求方程的近似解 相关概念 如果f x 是一次多项式 称上面的方程为线性方程 否则称之为非线性方程 线性方程与非线性方程 本实验主要讨论非线性方程的数值求解 基本思想 对分法 将有根区间进行对分 判断出解在某个分段内 然后再对该段对分 依次类推 直到满足给定的精度为止 具体步骤 对分法 设方程在区间 a b 内连续 且f a f b 0 给定精度要求 若有 f x 则x就是我们所需要的f x 在区间 a b 内的近似根 Matlab程序见fulu1 m 收敛性分析 对分法收敛性 设方程的根为x ak bk 又 所以 对分法总是收敛的 但对分法的收敛速度较慢通常用来试探实根的分布区间 或给出根的一个较为粗糙的近似 根据上面的算法 我们可以得到一个每次缩小一半的区间序列 ak bk 在 ak bk 中含有方程的根 迭代法 x 的不动点 f x 0 x x f x 的零点 若收敛 即 假设 x 连续 则 收敛性分析 迭代法的收敛性 即 注 若得到的点列发散 则迭代法失效 定义 迭代法收敛性判断 定理2 如果定理1的条件成立 则有如下估计 如果存在x 的某个邻域 x x 使得对 x0 开始的迭代xk 1 xk 都收敛 则称该迭代法在x 附近局部收敛 迭代法收敛性判断 定理3 已知方程x x 且 1 对 x a b 有 x a b 2 对 x a b 有 x q 1 q越小 迭代收敛越快 x 越小 迭代收敛越快 则对 x0 a b 由迭代xk 1 xk 得到的点列都收敛 且 迭代法收敛性判断 以上所给出的收敛性定理中的条件的验证都比较困难 在实际应用中 我们常用下面不严格的判别方法 当有根区间 a b 较小 且对某一x0 a b x0 明显小于1时 则我们就认为迭代收敛 普通迭代法参考程序见fulu2 m 迭代法的加速 设迭代xk 1 xk 第k步和第k 1步得到的近似根分别为xk和 xk 令 其中wk称为加权系数或权重 得新迭代xk 1 xk 松弛迭代法 松弛法迭代公式 松弛法具有较好的加速效果 甚至有些不收敛的迭代 加速后也能收敛 缺点 每次迭代需计算导数 参考程序见fulu4 m Altken迭代法 Altken迭代法 用差商近似微商 设x 是方程的根 则由中值定理可得 Altken迭代法 Altken迭代公式 k 0 1 2 Altken法同样具有较好的加速效果 参考程序见fulu5 m 牛顿迭代法 令 设非线性方程f x 0 f x 在x0处的Taylor展开为 牛顿法迭代公式 牛顿迭代公式 k 0 1 2 牛顿法的收敛速度 令 牛顿法至少二阶局部收敛 x 即为牛顿法的迭代函数 参考程序见fulu6 m 牛顿法迭代公式 牛顿的优点 牛顿法是目前求解非线性方程 组 的主要方法 至少二阶局部收敛 收敛速度较快 特别是当迭代点充分靠近精确解时 在实际计算中 可以先用其它方法获得真解的一个粗糙近似 然后再用牛顿法求解 Matlab解方程函数 roots p 多项式的所有零点 p是多项式系数向量 fzero f x0 求f 0在x0附近的根 f可以使用inline 字符串 或 但不能是方程或符号表达式 solve f v 求方程关于指定自变量的解 f可以是用字符串表示的方程 符号表达式或符号方程 solve也可解方程组 包含非线性 得不到解析解时 给出数值解 linsolve A b 解线性方程组 其他Matlab相关函数 g diff f v 求符号表达式f关于v的导数g diff f 求符号表达式f关于默认变量的导数g diff f v n 求f关于v的n阶导数 diff f是符号表达式 也可以是字符串 默认变量由findsym f 1 确定 symsx f sin x 3 x 2 g diff f x g diff sin x 3 x 2 x f inline 函数表达式 变量1 变量2 y f 数值列表 代入的数值列表顺序应与定义时的变量名顺序一致 例 附录 inline inline命令可以用来定义一个内联函数 调用方式 这种函数定义方式是将f作为一个内部函数调用 其特点是 调用方式最接近于我们平时对函数的定义 使程序更具可读性 同时由于它是基于Matlab的数值计算内核的 所以它的运算速度较快 程序更有效率 这种定义方式的缺点 定义一个内联函数用去的内

温馨提示

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

评论

0/150

提交评论