非线性方程的数值解法:二分法的MATLAB实现
非线性方程的数值解法之二分法:
摘要:摘要:摘要:求解非线性方程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实现相关推荐
- matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab
非线性方程的数值解法牛顿下山法matlab 1 非线性方程的数值解法 --计算物理实验作业九 陈万 物理学2013级 130******** ● 题目: 用下列方法求0133=--=x x f(x)在 ...
- matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab.docx
非线性方程的数值解法牛顿下山法matlab.docx 1 非线性方程的数值解法 --计算物理实验作业九 陈万 物理学2013级 13020011006 题目: 用下列方法求 在 附近的根.根的准确 ...
- matlab求xk符号解,Matlab学习手抄(6)——非线性方程的数值解法
1. 二分法 定理: 函数f(x)在区间[a,b]上连续,如果f(a)*f(b)<0,则f(x)=0在[a,b]内至少有一个实根x'. [a,b]对半平分为两个小区间,判断f改变正负号的子区间, ...
- 非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
- matlab 牛顿法 初值,非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)...
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
- MATLAB-非线性方程的数值解法——二分法
本文主要使用MATLAB实现二分法解非线性方程的功能 二分法在用计算机求非线性方程解的数值方法中是最简单的一种,用人工算效率很低,但用计算机运算时还是一种很有效的方法.本文主要参考<计算方法&g ...
- 非线性方程的数值解法
设有一个单变量的非线性方程 f ( x ) = 0 f(x) = 0 f(x)=0,往往这样的方程没有直接的求根公式,因此没有直接方法计算,只能使用迭代法来求数值解,二分法就是这样的一种方法,这里介绍 ...
- 一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)
精确解为:U(x,t)=e^(x+t); 用紧差分格式: 此种方法精度为o(h1^2+h2^4),无条件差分稳定: 一:用追赶法解线性方程组(还可以用迭代法解) Matlab程序为: function ...
- 非线性方程的数值解法:正割法 python
import sympy from sympy import exp #用来输入指数函数,详见输入案例 x=sympy.symbols("x") yuan=input(" ...
- 非线性方程的数值解法:牛顿下山法 python
import sympy x=sympy.symbols("x") yuan=input("请输入原函数:") yuan=sympy.simplify(yuan ...
最新文章
- python如何将列表,字典,元组,集合首字母变成大写 以及其他的大小写转换!
- swoole 1.79 websocket 聊天室 基于swoole_server
- Android 解决RecyclerView删除Item导致位置错乱的问题
- java求数组中满足给定和的数对,【加试题】数组a中有50个互异的整数,已按升序排列。给定一个正整数key,寻找数组a中是否有一对数的和等于给定的数key,算法如下:...
- 破解RSA的一些技术
- 塑钢瓦图片_塑钢瓦和彩钢瓦哪种好 如何准确选购
- (Python)from collections import Counter统计包
- 如何让搜索引擎抓取AJAX内容
- .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)...
- gdb好文章:GDB十分钟教程
- 【OpenCV 例程 200篇】98. 统计排序滤波器
- 魅族加入华为鸿蒙系统,华为鸿蒙正式开放系统 魅族表态加入却非手机 很是耐人寻味...
- 创意对抗网络(CANs)你知多少?
- 机器学习基础算法24-SVM理论部分
- 全局变量反汇编与重定位
- 一个基于verilog的FPGA 的LCD 1602 显示程序
- Axure手机原型图总结
- 几款超好看的英文字体
- 服务器安装系统要如何载入驱动程序,Dell 服务器安装Windows 2008 R2时手动加载阵列卡驱动...
- 浅谈Android指纹识别技术
热门文章
- 最优化理论与方法(袁亚湘 孙文瑜)笔记(二)
- python面板数据分析代码_【译】用python做计量之面板数据模型
- 【工科数学分析】2021-10-01-工科数学分析叒复习(二)
- 古墓丽影暗影显卡测试软件,ROG STRIX RTX 2060 S显卡测试 就是这么能打!
- 使用360文件粉碎机卸载北信源软件
- couchbase php,从PHP SDK设置后,Couchbase视图不会更新
- 恶意代码防范技术原理-恶意代码概述
- 谷歌搜索没有相机图标_教您如何在Google上搜索图片
- 错误“操作必须使用一个可更新的查询”原因及解决办法
- 个人网盘源码 本地网盘网站源码