二分法基本思想:

用对分区间的方法,通过判别函数f(x)在每个对分区间中点的符号,逐步将隔根区间缩小,最终求得一个具有相当精确程度的近似根。


二分法具体步骤:

令:

(1)若,则为方程的根,跳出循环;

(2)若,令

(3)若,令

(4)为新的隔根区间,重复上述过程。

输入左右端点a,b以及精度eps,输出近似根x0及二分次数i。

function [x0,i] = dichotomy(a,b,eps)
a0 = a;
b0 = b;
x0 = (a0+b0)/2;for i = 1:1000if abs((b-a)/(2^(i))) > epsif f(a0)*f(x0) < 0b0 = x0;x0 = (a0+b0)/2;elseif f(a0)*f(x0) > 0a0 = x0;x0 = (a0+b0)/2;elseif f(a0)*f(x0) == 0breakendelsebreakend
end[x0,i]

算例如下:

function y = f(x)
y = x^2-15;
% 函数仅为算例

输入命令dichotomy(-100,100,0.1),得到 -3.7109   9.0000,即精度为0.1的近似根为-3.7109,二分次数为9。进一步提高精度:

dichotomy(-4,-3,10^(-10))

得到-3.8730   32.0000,即此精度下近似根为-3.8730,二分次数为32。


误差估计:

注意二分法步骤中,第一次对分后取了对分后区间中点作为近似根,那么相当于把误差控制在整个区间的四分之一。

对分次数 对分后得到近似根 误差限
1
2
n

二分法优缺点:

优点:计算简单,方法可靠,容易估计误差;

缺点:收敛较慢,不能求偶重根,也不能求复根。

MATLAB二分法求解近似根相关推荐

  1. 二分法求解方程的根java_C语言二分法求解方程根的两种方法

    本文实例为大家分享了C语言二分法求解方程根的具体代码,供大家参考,具体内容如下 对于二分法求根,其实和弦截法思想很像,甚至更简单. 原理:先看如下的图 A,B两个点为跟的一个边界,通过一直缩小跟的边界 ...

  2. 基于MATLAB二分法求解一元二次方程的根

    二分法是一种常用的数值解法,在 MATLAB 中也可以使用二分法求解一元二次方程的根. 首先,需要确定一段区间,在该区间内一定存在二次方程的解,然后取该区间的中点作为新的枚举值.根据该值代入二次方程进 ...

  3. 计算方法 - 二分法求近似根

    [问题描述]用二分法求方程e^x+10x-2=0在区间[0, 1]上的近似根 [输出形式]要求误差不超过0.5e^-3 [样例输入] [样例输出]0.25 1.784025 [样例说明]0.25:x的 ...

  4. 二分法求近似根c语言程序,求一C++风格程序,用二分法求f(x)=0的根

    满意答案 vwamuoor8000 推荐于 2018.04.24 #include #include typedef double (*F)(double); /* @brief 二分法求解函数 *  ...

  5. MATLAB 数值求解方程根

    文章目录 1. 问题 2. 解答 3. 参考资料 本文介绍如何利用MATLAB求解给定区间内方程的数值解 1. 问题 针对如下函数,求[0,1]区间内的数值解(该方程无解析解) f(x)=−(−8x7 ...

  6. 二分法求方程根matlab,matlab用二分法求方程 的正根,要求误差小于0.0005

    matlab编程题:用二分法求方程x^3-3*x-1=0的根 先建立二分法的fun.m文件,代码如下:functionfun(a,b,e)%f是自定义的函数%a为隔根区间左端点,b为隔根区间右端点,e ...

  7. matlab求方程在X附近的根,matlab 实验03 求代数方程的近似根(解)

    实验三 求代数方程的近似根(解) 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称 ...

  8. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  9. 【算法设计zxd】第3章 求解方程的近似算法 非线性——二分法(穿根),牛顿法(切线),线性代数

    目录 非线性方程: 非线性方程的收敛性和收敛速度:  建立迭代方程 [例3-5]求9x^2-sin x-1=0,在(0,1)之间的解,要求| 9x^2-sin x-1|<0.00001. 二分 ...

最新文章

  1. relay.build调用关系
  2. g++编译c++11特性 的.cc文件
  3. CEO不当了,CTO也不做了!我要回去写代码,这才是我所热爱的!
  4. 香蕉派安装64位linux,在香蕉派里安装配置archlinux到树莓派
  5. PKI/CA (4)根CA信任模型“证书构建”
  6. 推荐搜索炼丹笔记:SIM 用户行为序列点击率预估模型
  7. js中的对象、原型链机制、构造函数
  8. Linux下安装spf13-vim
  9. Java基础(三)——反射、代理
  10. Java程序的编码规范
  11. 汇编语言是一种什么程序设计语言?
  12. ABB机器人指令列表分类详解
  13. 【浏览器兼容性问题解决方案】
  14. 几何公差基础知识之平行度
  15. Badboy 安装 使用 常见问题 badboy当前页面脚本发生错误
  16. 微信小程序手机号绑定功能(登录后绑定)
  17. 基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析
  18. AMI CORE8 OEM BIOS开发入门
  19. 2022 学术英语写作(东南大学) 最新Unit 1章节测试答案
  20. 公司发的电脑无法登录OneNote账户

热门文章

  1. mt6739 GPIO复用为PWM模式
  2. Unity插件NGUI制作血条--HUD的基本使用
  3. 服务器血量显示插件,RealMobHealth 真实怪物血量数值新增全服务器怪物NPC血量缓存文件...
  4. c语言按键状态机,C语言状态机编程思想
  5. Android手机直播(二)摄像机
  6. animate动画函数的封装方法
  7. idea中集成http请求
  8. 给一个跨行业转行者的回信
  9. VMware虚拟机共享宿主机硬盘步骤
  10. html frameset边框,frameset框架集(示例代码)