非线性方程求解算法的程序设计及比对 课程设计 .doc

非线性方程求解算法的程序设计及比对 课程设计 .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非线性方程求解算法的程序设计及比对 课程设计

题 目:非线性方程求解算法的程序设计及比对 摘要 由于五次及其以上代数方程式大多不能用代数公式求解非线性方程的解.或者求解非常复杂。而在工程和科学技术中许多问题常常归结为求解非线性方程式问题.所以需要研究非线性方程的数值解法的问题是非常重要.来适应我们社会的需要. 本课题主要介绍非线性方程的数值解法是直接从方程出发,逐步缩小根的存在区间,或逐步将根的近似值精确化,直到满足问题对精度的要求,主要的方法有二分法,迭代法,牛顿法,弦截法等。并写出这几种非线性方程的数值解法的算法和程序及其优缺点和计算条件. 关键词 二分法;牛顿迭代法;弦截法法;程序框架图;C语言编程 目录 引言 1 第一章 非线性方程求解算法 2 §1.1 二分法 2 §1.1.1 二分法的简介 2 §1.1.2 二分法的原理 2 §1.1.3 二分法的算法 3 §1.2 不动点迭代法 4 §1.2.1不动点迭代法的简介 4 §1.2.2不动点迭代法的几何意义 4 §1.2.3不动点迭代法的算法 5 §1.3 牛顿迭代法 6 §1.3.1牛顿迭代法的简介 6 §1.3.2牛顿迭代法的原理 6 §1.3.3牛顿迭代法的算法 7 §1.4 弦截法 8 §1.4.1弦截法的简介 8 §1.4.2弦截法的原理 8 §1.4.3弦截法的算法 9 第二章 非线性方程求解的C语言算法对比 11 §2.1 C语言求解非线性方程的根 11 §2.1.1构造非线性方程迭代公式 11 §2.1.2计算迭代公式 11 §2.2 C语言算法比较分析 14 参考文献 16 附录A 17 附录B 18 引言 代数方程求根问题是一个古老的数学问题,早在16世纪就得到了三次、四次方程的求根公式.一般(五次及其以上)代数方程式不能用代数公式求解.在工程和科学技术中许多问题常常归结为求解非线性方程式问题.因此,需要研究用数值方法求得满足一定精度的代数方程式的近似解. 根的数值方法,其中是连续的称为非线性方程,此类方程除少数情形外,只能求近似解. 例如,,其根为 像这种方程是可以直接的方法求出解析解.但对于对于多项式方程 当时,就不能得到解析解.对于更一般的情况(如超越方程) 就更难求得解析解了,更就不存在根的解析表达式,在科学研究和科学计算中常常碰到非线性方程求解问题.非线性方程的解一般不能解析求出.所以数值解法显得非常重要,而数值解法在实际中的实现则更为重要. 本课题主要是应用数值解法结合计算机语言来求解非线性方程的解,其中包括的数值解法有二分法、迭代法、牛顿法、弦截法等.主要用的计算机语言C语言、MATLAB等.正好符合用计算机语言来处理复杂计算量的数学问题,以此来分析几种非线性数值解法的优缺点,计算量的大小.来选出更加适合的计算方法. 第一章 非线性方程求解的算法 §1.1 二分法 §1.1.1 二分法的简介 二分法又称二分区间法,是求解方程的近似根的一种常用的简单方法. 设函数在闭区间上连续,且,根据连续函数的性质可知,在内必有实根,称区间为有根区间.为明确起见,假定方程在区间内有惟一实根.二分法的基本思想是: 首先确定有根区间,将区间二等分, 通过判断的符号, 逐步将有根区间缩小, 直至有根区间足够地小, 便可求出满足精度要求的近似根. §1.1.2二分法的原理 设方程在区间内有根,二分法就是逐步收缩有根区间,最后得出 图 1.1 二分法原理图 所求的根,如上图所示,我们可以写出一下内容. (1) 输入有根区间的端点及预先给定的精度; (2) 计算 ; (3) 若,则;否则; (4) 若,则输出方程满足精度要求的根,计算结束;否则转(2).继续执行前面的步骤. y n 图 1.2 二分法的程序框架图 §1.1.3 二分法的算法 给定区间,求在该区间上的根. 输入: a和b; 容许误差 eps;对分次数 k 输出: 近似根. Step 1 Set k = 0 ; Step 2 判断 继续.否则,STOP输出错误; Step 3 Do ; 开始steps 4-6 Step 4 ; Step 5 k++ ; If , Set ;

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档