matlab 二分法区间,多区间二分法[通俗易懂]

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp预备知识 二分法这里介绍一种多区间二分法,可以求出连续函数在某区间内几乎全部的根.方法就是把这个区间等分为若干个相等的小区间,然后分别判断这些小区间两端函数值的符号,对所有两端异号的区间使用二分法即可.显然,小区间的个数越多,越有可能找到所有的根.例程如下.代码1:bis…

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

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

预备知识 二分法

这里介绍一种多区间二分法,可以求出连续函数在某区间内几乎全部的根.方法就是把这个区间等分为若干个相等的小区间,然后分别判断这些小区间两端函数值的符号,对所有两端异号的区间使用二分法即可.显然,小区间的个数越多,越有可能找到所有的根.例程如下.

代码 1:bisectionN.m

函数的前两个输入变量分别是需要求根的函数句柄和求根区间(二元行矢量或列矢量),第三个变量 $N$ 是子区间端点的个数(即子区间的个数加一).函数中先求出所有的端点 x,以及对应的函数值 y,然后画图.第 6-7 行寻找所有两端异号或有一端为 0 的区间的序号,然后在第 10 行的循环中对这些区间逐个使用二分法.为了提高运算效率,这里并没有使用 “二分法” 中的例程,而是使用了 Matlab 自带的 fzero 函数.

bisectionN 的画图功能是为了让用户判断是否有可能出现漏根,以下举两个例子说明.>> f = @(x)exp(-0.2*x)*sin(x);

>> roots = bisectionN(f, [0, 15], 50)

roots = 0 3.1416 6.2832 9.4248 12.5664

MBisec_1.svg?v=f4593b2f6e7d41

图 1:运行结果

运行结果如图 1,由于画出的曲线较为光滑,可判断漏根的可能性很小.再看另一个例子>> f = @(x)sin(1/x);

>> roots = bisectionN(f, [0, 0.3], 50)

roots = 0.0245 0.0398 0.0455 0.0531 0.0637 0.0796 0.1061 0.1592

MBisec_2.svg?v=52c58dea5c9a75

图 2:运行结果

我们已经知道函数 $ \sin\left(1/x\right) $ 在该区间上有无数个根,且越接近 $x = 0$,相邻根之间的距离越小.运行结果如图 2, 可见在区间 $[0, 0.1]$ 内,子区间端点的函数值非常不平滑,极有可能出现漏根.为了求得更多的根,我们可以增加子区间的个数.

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java:JavaSocket编程开发多人聊天室「建议收藏」

    Java:JavaSocket编程开发多人聊天室「建议收藏」Java|JavaSocket编程开发多人聊天室实现内容运行结果部分代码完整代码实现内容用Java图形用户界面编写聊天室服务器端和客户端,支持多个客户端连接到一个服务器。每个客户端能够输入账号。可以实现群聊(聊天记录显示在所有客户端界面)。完成好友列表在各个客户端上显示。可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。服务器能够群发系统消息,能够强行让某些用户下线。客户端的上线下线要求能够在其他客户端上面实时刷新。运行结果部分代码importjava.awt

    2022年6月17日
  • elastic search面试题_elasticsearch实战

    elastic search面试题_elasticsearch实战1.什么是Elasticsearch?Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTPWeb界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布。2.ES中的倒排索引是什么?传统的检索方式是通过文章,逐个遍历找到对应关键词的位置。倒排索引,是通过分词策略,形成了词和文章的映射关系表,也称倒排表,这种词典+映射表即为倒排索引。其中词典中

    2022年9月13日
  • mybatis 为什么要设置jdbcType

    mybatis 为什么要设置jdbcType以前没注意过这个问题,用ibatis的时候从来没有设置过jdbcType。ibatis也不会出现这个问题。学习了——————————————————————————————————————————————转载自:http://makemyownlife.iteye.com/blog/1610021前天遇到一个问题异常显示如下: 引用Exceptioninthr

    2022年10月20日
  • cloudsim仿真平台扩展的例子_云平台虚拟化技术

    cloudsim仿真平台扩展的例子_云平台虚拟化技术http://1.johnhome.sinaapp.com/?p=257幻灯片1云计算仿真框架CloudSim介绍jiangzw#ihep.ac.cn(以下为本人某次报告做的调研的PPT及其它一些实践记录,为保证清晰度,一些插入的图片较大,可在新标签页中打开)本文基于 署名3.0中国大陆 许可协议发布,未经本人许可不得转载

    2022年10月10日
  • JAX-WS SOA杂谈

    JAX-WS SOA杂谈[b][size=medium]代码优先[/size][color=blue]先编写类,通过注解定义wsdl的各项属性,基于类来生成wsdl文件[/color][size=medium]契约优先[/size][color=blue]先制定标准,与其它系统一起定义一个统一的标准,实现系统之间数据传输的规范性,即先有wsdl再有类[/color][size=me…

    2022年7月15日
  • 三菱数据移位指令_三菱plc循环与移位指令

    三菱数据移位指令_三菱plc循环与移位指令一、实训任务1、循环移位指令编程:控制要求:应用循环右移指令(ROR)编写8灯循环点亮程序。Y0~Y7分别控制8盏灯,按启动按钮X0后,Y0亮1S→Y0灭、Y1亮1S→Y1灭、Y2亮1S→……→Y7灭、Y0亮周而复始运行,按停止按钮X1后,灯全灭。编写并运行程序,写出运行结果。2、位移位指令编程:控制要求:应用位左移指令(SFTL)编写8灯点亮程序。Y10~Y17分别控制8…

    2022年6月7日

发表回复

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

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