二分法 matlab应用,MATLAB算法の二分法[通俗易懂]

从今起准备连续多期介绍一些常用的算法,通过不断实践“算法到程序”这一过程来学习matlab编程,久而久之就可做到熟能生巧。今天要介绍的是二分法,它是一种古老且经典的、蕴含深刻哲理的算法。我们知道现实物理世界是有限的,而抛开物理意义却又是无限可分的,而二分法就是基于这种无限可分思想,可以说它是连接有限与无限的纽带。今天主要介绍二分法在数学寻根中的应用,毕竟为的是将算法程序化。要求单调函数f(x)在区…

大家好,又见面了,我是你们的朋友全栈君。

从今起准备连续多期介绍一些常用的算法,通过不断实践“算法到程序”这一过程来学习matlab编程,久而久之就可做到熟能生巧。

今天要介绍的是二分法,它是一种古老且经典的、蕴含深刻哲理的算法。我们知道现实物理世界是有限的,而抛开物理意义却又是无限可分的,而二分法就是基于这种无限可分思想,可以说它是连接有限与无限的纽带。今天主要介绍二分法在数学寻根中的应用,毕竟为的是将算法程序化。

c44a4272014087c41c45594cda565fab.png

要求单调函数f(x)在区间[a,b]上的根,且给定计算精度为e,用二分法寻根的过程大致如下:

1、分别计算f(a),f(b)的函数值,验证f(a)*f(b)是否小于0,若大小于0则说明在区间[a,b]上存在根。

2、计算区间求中点mid = (a+b)/2。

3、计算f(mid)的函数值,

① 若f(mid)=0,则mid就是函数的根;

② 若f(a)·f(mid)<0,则令b=mid;

③ 若f(mid)·f(b)<0,则令a=mid。

4、通过比较区间差绝对值与计算精度e的大小来判断是否达到预设条件,若|a-b|

问题定义:求函数f(x) = 3*x.^3-9*x.^2+5.6*x-7.5在区间[2,3]的根,计算精度为10^-6.

% 定义区间[2,3]

x = 2:0.1:3;

% 定义参考y值,即y=0的直线

ty = zeros(1,length(x));

% 定义在区间[2,3]上单调的函数fun

fun = @(x) 3*x.^3-9*x.^2+5.6*x-7.5;

y = fun(x);

% 绘制示意图

plot(x,y,’b.-‘,x,ty,’r–‘,’LineWidth’,3.5);

xlabel(‘x轴’);

ylabel(‘y轴’);

title(‘二分法寻根测试’);

% 定义计算精度ep和临时变量tmp

% 对于不知道循环次数的,用whlie来实现

while(tmp>ep)

if fun(a)*fun(b) < 0

mid = (a+b)/2;

if fun(a)*fun(mid) < 0

if fun(b)*fun(mid) < 0

tmp = abs(a-b);

disp(‘此区间不存在根!!!’);

JG = fun(mid);

disp([‘在区间[2,3]的近似解为’,num2str(JG)]);

% 绘制近似交点

plot(mid,JG,’r.’,’MarkerSize’,50);

效果图:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128038.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月11日 上午10:00
下一篇 2022年4月11日 上午10:20


相关推荐

  • 通俗语言说BM3D

    通俗语言说BM3D随着友商某以摄像著称的旗舰机型的发布,其SOC中ISP5.0采用的所谓单反级降噪算法BM3D一下火热起来,本文试图用尽量通俗易懂的语言从算法原理的角度揭开BM3D算法的神秘面纱。本文结构如下:1.前言2.硬阈值滤波原理介绍3.维纳滤波原理介绍4.BM3D原理详述1.前言图像去噪是计算机视觉前处理中很重要的一个环节,对于手机camera来讲,去噪的好坏直接影响最终图像的质量,图像…

    2022年6月7日
    56
  • gmap绘制路径_cad画可见点

    gmap绘制路径_cad画可见点将在地图上用鼠标左键点击的点绘制出来(两点之间用直线连接),并且能够随地图一起实现等比例缩放和拖拽。GMap主要涉及到几个坐标的转换:经纬度与GPoint的转换:GPoint是gMapControl控件坐标,坐标原点(0,0)位于控件的左上角,这个转换用函数FromLatLngToLocal()完成。GPoint与经纬度的转换:将控件坐标转换成经纬度,用函数FromLocalToL

    2025年7月30日
    4
  • pd.notnull

    pd.notnull

    2022年6月10日
    31
  • 加多宝首度披露"换头手术"的详细内幕

    加多宝首度披露"换头手术"的详细内幕12月下旬,加多宝与王老吉的“改名案”和“怕上火案”判决结果先后出台,两大凉茶巨头之间的官司纠纷再起波澜。而加多宝集团品牌管理部负责人王月贵,在出席活动时首度披露了加多宝“换头手术”的详细内幕——由此,加多宝打赢凉茶之战的始末得以首次公开。以下为发言及访谈摘要:  快速出击,跟时间赛跑  在2012年,就在我们红罐凉茶迅速成长的时候,加多宝突然遭遇品牌地震,我们被迫放弃了使用和推广了17

    2025年6月30日
    5
  • BP神经网络的Matlab实现——人工智能算法

    BP神经网络的Matlab实现——人工智能算法这几天在各大媒体上接触到了人工智能机器学习,觉得很有意思,于是开始入门最简单的机器算法——神经网络训练算法(NeuralNetworkTraining);以前一直觉得机器学习很高深,到处是超高等数学、线性代数、数理统计。入坑发现确实是这样!但是呢由项目实例驱动的学习比起为考试不挂科为目的的学习更为高效、实用!在遗传算法、神经网络算法的学习入门之后觉得数学只要用心看没问题的(即使是蒙特卡洛和马尔

    2022年6月10日
    51
  • 广义容斥原理

    广义容斥原理

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号