单变量求解C语言,二分法求解单变量非线性方程及其应用与实现.doc
二分法求解单变量非线性方程及其应用与实现
论文关键词:二分法 单变量 非线性方程 收敛性 误差
论文摘要:本文主要通过一个实例来研究单变量非线性方程f(x)=0的二分法求解及此方法的收敛性,根据误差估计确定二分次数并进行求解。同时实现matlab和C语言程序编写。从而掌握过程的基本形式和二分法的基本思想,在以后的学习过程中得以应用。
1. 引 言
在科学研究与工程技术中常会遇到求解非线性方程f(x)=0的问题。而方程f(x)是多项式或超越函数又分为代数方程或超越方程。对于不高于四次的代数方程已有求根公式,而高于四次的代数方程则无精确的求根公式,至于超越方程就更无法求其精确解了。因此,如何求得满足一定精度要求的方程的近似根也就成为了我们迫切需要解决的问题。近年来,随着数学科学研究的不断进展,又更新了许多方程求解的方法。我们知道,对于单变量非线性方程f(x)=0,一般都可采用迭代法求根,由此产生了二分法。
2. 二分法
一般地,对于函数f(x),如果存在实数c,当x=c时f(c)=0,那么把x=c叫做函数f(x)的零点。
解方程即要求f(x)的所有零点。
先找到a、b,使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2], 现在假设f(a)<0,f(b)>0,a
①如果f[(a+b)/2]=0,该点就是零点,
如果f[(a+b)/2]<0,则在区间((a+b)/2,b)内有零点,(a+b)/2=>a,从①开始继续使用中点函数值判断。
如果f[(a+b)/2]>0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=>b,从①开始继续使用中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,这种方法叫做二分法。
给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1. 确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ.
2. 求区间(a,b)的中点c.
3. 计算f(c).
(1) 若f(c)=0,则c就是函数的零点;
(2) 若f(a)·f(c)<0,则令b=c;
(3) 若f(c)·f(b)<0,则令a=c.
4. 判断是否达到精确度ξ:即若┃a-b┃
由于计算过程的具体运算复杂,但每一步的方式相同,所以可通过编写程序来运算。
3. 实例引入
二分法求解单变量非线性方程的例子很多,仅以此例进行分析:
求方程f(x)=x³-x-1=0在区间[1.0,1.5]内的一个实根,要求准确到小数点后第2位。
4. 问题分析
对于以上单变量非线性方程,已知a=1.0,b=1.5,采用二分法求解。首先我们根据二分法所允许的误差范围求得应迭代次数。
二分法允许的误差公式:|x*- | ( - )/2=(b-a)/ 0.005,
其中k为二分次数。
所以求得本题应二分6次达到预定的精度。
5. 解题过程
这里a=1.0,b=1.5,而f(a)<0,f(b)>0。[a,b]的中点x0=1.25,将区间二等分。由于f(x0)<0,即f(x0)与f(a)同号,故所求根x*必在x0右侧,这是应令a1=1.25,b1=1.5,得到新的有根区间[a1,b1].如此反复二分6次,结果如下:
K/二分次数 /区间
左边界值 /右边界值 F( )的符号
展开阅读全文
单变量求解C语言,二分法求解单变量非线性方程及其应用与实现.doc相关推荐
- 二分法求解方程的根java_C语言二分法求解方程根的两种方法
本文实例为大家分享了C语言二分法求解方程根的具体代码,供大家参考,具体内容如下 对于二分法求根,其实和弦截法思想很像,甚至更简单. 原理:先看如下的图 A,B两个点为跟的一个边界,通过一直缩小跟的边界 ...
- c语言结构体成员变量私有化,C语言中结构体变量私有化详解
C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...
- 单片机c51语言变量,单片机c语言教程:C51变量
上课所提到变量就是一种在程序执行过程中其值能不断变化的量.要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间.定义一个变量的格式如下: ...
- c语言中函数static变量,[转]C语言中的 static变量、static函数
1. static 变量 静态变量的类型 说明符是 static. 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量. 例如外部变量虽属于静态 存储方式,但不一定是静态变量, ...
- c语言变量体,c语言之结构体变量的定义
结构体是一种数据类型(像int.char.flaot是数据类型一样),可以用它定义变量. 用结构体类型定义变量的方式有三种: 一.先定义结构体类型,再定义变量 一般形式:struct 结构体名 { 类 ...
- c语言程序二分法求解,C语言二分法查找算法(附带源码)
顺序查找是从第一个数据开始比较,直到找到目标数据.当数据量较大时,顺序查找的效率就会降低. 将数据进行排序以后,我们就可以使用另一种更加有效的查找方法:二分法查找.二分法查找的思想是,对于已经按照从小 ...
- c语言实现结构体变量private,C语言中结构体变量私有化详解
背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...
- C语言循环时无故释放变量吗,C语言 - while循环体内变量重新声明,陷入***循环。...
今天写一个实验代码时,用到了while(exp)循环.发现exp已经为false.但是依然死循环下去. float T = (float)work[srcNode] / (workAll/6); in ...
- 一个完整的c语言的单链表代码,单链表完整C语言纯代码.docx
单链表完整C语言纯代码单链表完整C语言纯代码 带头结点的单链表 PAGE \* MERGEFORMAT 4 单链表 带头结点 #include #include /* 带头结点的单链表的操作 在该链表 ...
- 循环单链表及C语言实现
本博文介绍循环单链表及其C语言的实现 目录 循环单链表 循环单链表的操作 插入 头结点插入 尾结点插入 指定位置插入 删除 头结点删除 尾结点删除 指定位置删除 遍历 查找 循环单链表的C语言实现 循 ...
最新文章
- CTO多要会刷脸--
- 前端入门:快速开发基于 HTML5 网络拓扑图应用
- PHP学习笔记-Cookie
- c与python的区别-c 跟 python的区别有哪些
- 秒杀苹果carplay baidu车联网API冷艳北京车展
- 关于Matlab编程的思考(待续)
- IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)
- css网页练习-3视觉
- 批量ssh免密登陆远程主机
- JavaScript:闭包
- 【leetcode】杨辉三角Ⅱ
- Let's Encrypt 客户端将由EFF管理
- JZOJ7月28日提高组反思
- Java 报错Attempted read from closed stream
- 计算机运算器发展趋势,2020计算器市场发展现状及及前景分析
- 幼儿园计算机教案 认识画图,信息技术教案《认识画图》
- 系统安装,UltraISO制作U盘系统安装盘
- 经典按键java手机游戏_各种免费手机游戏可以玩了!
- oracle 数据库精简,Oracle角色精简总结
- win10下anaconda、tensorflow-cpu以及tensorflow-gpu安装
热门文章
- 20191026每日一句
- 发现一个有意思的英文期刊 China and the World Ancient and Modern Silk Road
- VS生产dll把双目追踪四个圆点计算的物体位姿给unity,在unity中实时变化
- C++读xml 文件信息
- Atitit 提升扩展性的艺术 艾提拉著 目录 1. . 功能扩展 vs 性能扩展	1 1.1. udf机制 sp 等插件机制	1 1.2. 1.5. 脚本。脚本是扩展复杂功能的利器	2	1 1.3
- Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
- paip.日期时间操作以及时间戳uapi php java python 总结
- paip.Image对象出现“对象当前正在其他地方使用或者GDI+中发生一般性错误的解决
- 眼镜蛇效应:事与愿违的经济学教训
- 明汯投资掌门人裘慧明:今年特别难,未来两三年也难