风也温柔

计算机科学知识库

java 常用算法-二分法的算法matlab编程_二分法编程matlab

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

  

  大家好java 常用算法-二分法的算法matlab编程_二分法编程matlab,我是架构君,一个会写代码吟诗的架构师。今天说一说二分法的算法编程_二分法编程,希望能够帮助大家进步!!!

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

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

  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)

  ③ 若f(mid)·f(b)

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

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

  % 定义区间[2,3]

  x = 2:0.1:3;

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

  ty = zeros(1,(x));

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

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

  y = fun(x);

  % 绘制示意图

  plot(x,y,'b.-',x,ty,'r--','',3.5);

  ('x轴');

  ('y轴');

  title('二分法寻根测试');

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

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

  while(tmp>ep)

  if fun(a)*fun(b)

  mid = (a+b)/2;

  if fun(a)*fun(mid)

  if fun(b)*fun(mid)

  tmp = abs(a-b);

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

  JG = fun(mid);

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

  % 绘制近似交点

  plot(mid,JG,'r.','',50);

  效果图:

  猜您喜欢:

  文章来源:https://javajgs.com/archives/87112