非线性方程的数值解法之二分法:
  • 摘要:摘要:摘要:求解非线性方程f(x)=0f(x)=0f(x)=0的数值解主要有二分法、简单迭代法以及NewtonNewtonNewton类迭代法等,本文主要介绍二分法及其MATLAB程序实现。

  • 二分法介绍[1]二分法介绍^{[1]}二分法介绍[1]
    假设已找到有根区间[aaa, bbb],满足f(a)f(b)<0f(a)f(b)<0f(a)f(b)<0,并且上述非线性方程在所给区间[aaa, bbb]上只有一个根。下面用简单的方法形成有根区间的序列。先设a1=aa_1= aa1​=a,b1=bb_1 = bb1​=b,即[a1a_1a1​, b1b_1b1​] === [aaa, bbb],对于一般的区间[ana_nan​, bnb_nbn​],设其中点为xnx_nxn​ === an+bn2\dfrac{a_n+b_n}{2}2an​+bn​​,若f(xn)=0f(x_n)=0f(xn​)=0或者bn−an2\dfrac{b_n-a_n}{2}2bn​−an​​<ε<\varepsilon<ε,其中ε\varepsilonε为根的容许误差,则xnx_nxn​即为所求,否则检验f(xn)f(x_n)f(xn​)的符号,若它与f(an)f(a_n)f(an​)同号,就取an+1=xna_{n+1}=x_nan+1​=xn​,bn+1=bnb_{n+1}=b_nbn+1​=bn​。反之,取an+1=ana_{n+1}=a_nan+1​=an​ ,bn+1=xnb_{n+1}=x_nbn+1​=xn​。这样必定有f(an+1)f(bn+1)<0f(a_{n+1})f(b_{n+1})<0f(an+1​)f(bn+1​)<0,所以[an+1,bn+1a_{n+1}, b_{n+1}an+1​,bn+1​]就是新的有根区间。继续上述过程即可。

  • MATLAB程序实现程序实现程序实现

%Date:2019-10-28
%Writer:无名十三%% 本程序目的是利用二分法输出非线性方程的数值解
function result = dichotomy(fun,x1,x2,eps) %参数fun为待输入函数,eps为容许误差,示例如下文
if nargin ~= 4errordlg('输入参数个数不符合要求!', 'Error!')  %参数输入报错
elseif fun(x1) * fun(x2) >= 0errordlg('二分法不能确定该区间内是否有根存在!', 'Warning!')
elseis_eps = (x2-x1) / 2;x = (x2+x1) / 2;  while is_eps >= epsif fun(x) == 0fprintf('\n该方程的根为%f.\n\n', x)breakelseif fun(x1)*fun(x) < 0x2 = x;elseif fun(x2)*fun(x) < 0x1 = x;endis_eps = (x2-x1) / 2;x = (x2+x1) / 2;        endif is_eps < epsfprintf('\n该方程的近似根为%f.\n\n', x)end
end
end
%%
  • 示例1:求非线性方程sin(x)=0sin(x)=0sin(x)=0在区间[-0.7, 0.1]上的数值解。
>> dichotomy(@(x)sin(x), -0.7, 0.1, 0.0001)该方程的近似根为-0.000098.
  • 示例2:求非线性方程9x3−13x+97=09x^3-13x+97=09x3−13x+97=0在区间[-11, 29]上的数值解。
>> dichotomy(@(x)(9*x^3 - 13*x + 97), -11, 29, 0.0001)该方程的近似根为-2.426163.
  • 结束语:上述代码根据本人理解进行整理编写,如有错误或不妥之处,请指正!结束语:上述代码根据本人理解进行整理编写,如有错误或不妥之处,请指正!结束语:上述代码根据本人理解进行整理编写,如有错误或不妥之处,请指正!

  • 参考文献参考文献参考文献
    [1]黄云清.数值计算方法[M].北京.科学出版社.2018年11月[1] 黄云清.数值计算方法[M].北京.科学出版社.2018年11月[1]黄云清.数值计算方法[M].北京.科学出版社.2018年11月

非线性方程的数值解法:二分法的MATLAB实现相关推荐

  1. matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab

    非线性方程的数值解法牛顿下山法matlab 1 非线性方程的数值解法 --计算物理实验作业九 陈万 物理学2013级 130******** ● 题目: 用下列方法求0133=--=x x f(x)在 ...

  2. matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab.docx

    非线性方程的数值解法牛顿下山法matlab.docx 1 非线性方程的数值解法 --计算物理实验作业九 陈万 物理学2013级 13020011006  题目: 用下列方法求 在 附近的根.根的准确 ...

  3. matlab求xk符号解,Matlab学习手抄(6)——非线性方程的数值解法

    1. 二分法 定理: 函数f(x)在区间[a,b]上连续,如果f(a)*f(b)<0,则f(x)=0在[a,b]内至少有一个实根x'. [a,b]对半平分为两个小区间,判断f改变正负号的子区间, ...

  4. 非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)

    牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...

  5. matlab 牛顿法 初值,非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)...

    牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...

  6. MATLAB-非线性方程的数值解法——二分法

    本文主要使用MATLAB实现二分法解非线性方程的功能 二分法在用计算机求非线性方程解的数值方法中是最简单的一种,用人工算效率很低,但用计算机运算时还是一种很有效的方法.本文主要参考<计算方法&g ...

  7. 非线性方程的数值解法

    设有一个单变量的非线性方程 f ( x ) = 0 f(x) = 0 f(x)=0,往往这样的方程没有直接的求根公式,因此没有直接方法计算,只能使用迭代法来求数值解,二分法就是这样的一种方法,这里介绍 ...

  8. 一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)

    精确解为:U(x,t)=e^(x+t); 用紧差分格式: 此种方法精度为o(h1^2+h2^4),无条件差分稳定: 一:用追赶法解线性方程组(还可以用迭代法解) Matlab程序为: function ...

  9. 非线性方程的数值解法:正割法 python

    import sympy from sympy import exp #用来输入指数函数,详见输入案例 x=sympy.symbols("x") yuan=input(" ...

  10. 非线性方程的数值解法:牛顿下山法 python

    import sympy x=sympy.symbols("x") yuan=input("请输入原函数:") yuan=sympy.simplify(yuan ...

最新文章

  1. python如何将列表,字典,元组,集合首字母变成大写 以及其他的大小写转换!
  2. swoole 1.79 websocket 聊天室 基于swoole_server
  3. Android 解决RecyclerView删除Item导致位置错乱的问题
  4. java求数组中满足给定和的数对,【加试题】数组a中有50个互异的整数,已按升序排列。给定一个正整数key,寻找数组a中是否有一对数的和等于给定的数key,算法如下:...
  5. 破解RSA的一些技术
  6. 塑钢瓦图片_塑钢瓦和彩钢瓦哪种好 如何准确选购
  7. (Python)from collections import Counter统计包
  8. 如何让搜索引擎抓取AJAX内容
  9. .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
  10. gdb好文章:GDB十分钟教程
  11. 【OpenCV 例程 200篇】98. 统计排序滤波器
  12. 魅族加入华为鸿蒙系统,华为鸿蒙正式开放系统 魅族表态加入却非手机 很是耐人寻味...
  13. 创意对抗网络(CANs)你知多少?
  14. 机器学习基础算法24-SVM理论部分
  15. 全局变量反汇编与重定位
  16. 一个基于verilog的FPGA 的LCD 1602 显示程序
  17. Axure手机原型图总结
  18. 几款超好看的英文字体
  19. 服务器安装系统要如何载入驱动程序,Dell 服务器安装Windows 2008 R2时手动加载阵列卡驱动...
  20. 浅谈Android指纹识别技术

热门文章

  1. 最优化理论与方法(袁亚湘 孙文瑜)笔记(二)
  2. python面板数据分析代码_【译】用python做计量之面板数据模型
  3. 【工科数学分析】2021-10-01-工科数学分析叒复习(二)
  4. 古墓丽影暗影显卡测试软件,ROG STRIX RTX 2060 S显卡测试 就是这么能打!
  5. 使用360文件粉碎机卸载北信源软件
  6. couchbase php,从PHP SDK设置后,Couchbase视图不会更新
  7. 恶意代码防范技术原理-恶意代码概述
  8. 谷歌搜索没有相机图标_教您如何在Google上搜索图片
  9. 错误“操作必须使用一个可更新的查询”原因及解决办法
  10. 个人网盘源码 本地网盘网站源码