【代码】二分法求最小值

仅适用于以下情况:区间内单调或者最多一个极小值

代码

以[0,pi]内的三角函数为例

clc
clear
close allx=0:pi/1000:pi;
y=test(x);
figure()
plot(x,y,'.')cutnum=100;x1=x(1);
x2=x(end);
error_max=10^-1000;%能接受的误差上限
for i=1:cutnum%这里cutnum是取值上限num=(x(end)-x(1))/(2^i);%每次迭代的步长x0=(x1+x2)/2;%中心点x01=x1+(x2-x1)/8;%取中心点左边的某一个点的横坐标x02=x2-(x2-x1)/8;%取中心点右边的某一个点的横坐标res0=test(x0);res1=test(x01);%取中心点左边的某一个点的纵坐标res2=test(x02);%取中心点右边的某一个点的纵坐标error=abs(res1-res2);%计算误差if error<=error_maxbreakend if res1<res2%左边的点的值较小,下一轮迭代取左边的“半边”x1=x0-num;x2=x0;elseif res1>res2%右边的点的值较小,下一轮迭代取右边的“半边”x1=x0;x2=x0+num;endxxx0(i)=x0/pi;xxx1(i)=x1/pi;xxx2(i)=x2/pi;
end
%% 显示结果
i%循环次数
error%误差
bestans=x0%最优解

test.m

function y=test(x)
y=5*sin(x)+3*cos(0.5*x)+2*sin(4*x)-4*sin(8*x)-9*sin(7*x);

效果

正确

1.多个极小值点,运气好

y=5sin(x)+3cos(0.5x)+2sin(4*x);
输出最小值解为2.9824,实际最小值解应该为2.9824
在这里插入图片描述

2.一个极小值点,计算正确

y=-5sin(x)-3cos(0.5*x);
输出最小值解为1.3788,实际最小值解应该为1.3788
在这里插入图片描述

3.没有极小值点,计算正确

y=5sin(x)+3cos(0.5*x);
输出最小值解为3.1416,实际最小值解应该为3.1416
在这里插入图片描述

有误:多个极小值点,可能会干扰计算精度

y=5sin(x)+3cos(0.5x)+2sin(4x)-4sin(8x)-9sin(7*x);
输出最小值解为2.8913,实际最小值解应该为0.1885
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电池二次利用走向可持续大循环周期的潜力和挑战(第一篇)

一、背景 当前&#xff0c;气候变化是全球可持续发展面临的重大挑战。缓解气候变化最具挑战性的目标是在本世纪中期实现碳中和&#xff08;排放量低到足以被自然系统安全吸收&#xff09;&#xff0c;其中电动汽车&#xff08;EV&#xff09;的引入是一项关键举措。电动汽车在…

SSL根证书是什么

根证书是什么&#xff1f; 根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。 从技术上讲&#xff0c;证书其实包含三部分&#xff0c;用户的信息&#xff0c;用户的公钥&#xff0c;还有CA中心对该证书里面的信息的签名&#…

对代理模式的理解

目录 一、前言二、案例1 代码2 自定义代理类【静态代理】2.1 一个接口多个实现&#xff0c;到底注入哪个依赖呢&#xff1f;2.1.1 Primary注解2.1.2 Resource注解&#xff08;指定name属性&#xff09;2.1.3 Qualifier注解 2.2 面向接口编程2.3 如果没接口咋办呢&#xff1f;2.…

替代安全指标(Surrogate Safety Measures (SSM) )

替代安全措施&#xff08;Surrogate Safety Measures (SSM) &#xff09;用于从数据中寻找接近碰撞&#xff0c;或可能发生&#xff08;但实际没有发生&#xff09;的碰撞事件。 SSM的两个合格标准&#xff1a; &#xff08;1&#xff09;它应该来自与碰撞直接相关的交通冲突&…

阿里巴巴中国站获得1688商品详情 API:如何通过API接口批量获取价格、标题、图片、库存等数据

在数字化时代&#xff0c;数据的重要性不言而喻。对于电商从业者来说&#xff0c;获取商品详情数据是提升业务效率和用户体验的关键。阿里巴巴中国站作为电商行业的巨头&#xff0c;提供了丰富的API接口&#xff0c;方便开发者们批量获取商品信息。本文将详细叙述如何通过阿里巴…

C语言——详解字符函数和字符串函数(二)

Hi,铁子们好呀&#xff01;之前博主给大家简单地介绍了部分字符和字符串函数&#xff0c;那么这次&#xff0c;博主将会把这些字符串函数给大家依次讲完&#xff01; 今天讲的具体内容如下: 文章目录 6.strcmp函数的使用及模拟实现6.1 strcmp函数介绍和基本使用6.1.1 strcmp函…

总结:微信小程序中跨组件的通信、状态管理的方案

在微信小程序中实现跨组件通信和状态管理,有以下几种主要方案: 事件机制 通过事件机制可以实现父子组件、兄弟组件的通信。 示例: 父组件向子组件传递数据: 父组件: <child binddata"handleChildData" /> 子组件: Component({..., methods: { handleChildData(…

Linux网卡与IP地址:通往网络世界的通行证

在探索Linux网卡和IP地址的关系之前&#xff0c;我们得先理解Linux网卡是怎么工作的。想象一下&#xff0c;每台计算机都是一个世界&#x1f30e;&#xff0c;而网卡就是连接这些世界的门户&#x1f6aa;。网卡的工作就是接收和发送数据包&#xff0c;就像邮差&#x1f4ec;递送…

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表

RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表 文章目录 RabbitMQ3.13.0起支持MQTT5.0协议及MQTT5.0特性功能列表1. MQTT概览2. MQTT 5.0 特性1. 特性概要2. Docker中安装RabbitMQ及启用MQTT5.0协议 3. MQTT 5.0 功能列表1. 消息过期1. 描述2. 举例3. 实现 2. 订阅标识…

洛谷 1126.机器人搬重物

思路&#xff1a;BFS 这道BFS可谓是细节爆炸&#xff0c;对于编程能力和判断条件的能力的考察非常之大。 对于这道题&#xff0c;我们还需要额外考虑一些因素&#xff0c;那就是对于障碍物的考虑和机器人方位的考虑。 首先我们看第一个问题&#xff0c;就是对于障碍物的考虑…

linux命令学习(一)grep命令

–colorauto 或者 –color&#xff1a;表示对匹配到的文本着色显示 -i&#xff1a;在搜索的时候忽略大小写 -n&#xff1a;显示结果所在行号 -c&#xff1a;统计匹配到的行数&#xff0c;注意&#xff0c;是匹配到的总行数&#xff0c;不是匹配到的次数 -o&#xff1a;只显…

淘宝店商家电话提取软件操作经验

淘宝爬虫工具是一种用于自动化获取淘宝网站数据的程序。以下是一个简单的淘宝爬虫工具的代码示例&#xff1a; import requests from bs4 import BeautifulSoupdef get_taobao_data(keyword):url fhttps://s.taobao.com/search?q{keyword}headers {User-Agent: Mozilla/5.0…

【洛谷】P9236 [蓝桥杯 2023 省 A] 异或和之和

题目链接 P9236 [蓝桥杯 2023 省 A] 异或和之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路 1. 暴力求解 直接枚举出所有子数组&#xff0c;求每个子数组的异或和&#xff0c;再对所有的异或和求和 枚举所有子数组的时间复杂度为O&#xff08;N^2&#xff09;&…

AI技术创业机会之零售与电子商务

人工智能&#xff08;AI&#xff09;技术的创新与发展为零售与电子商务领域带来了深刻的变革&#xff0c;为创业者创造了丰富的创业机会。以下详述了零售与电子商务背景下AI技术的创业机会及其具体细节与内容&#xff0c;以5000字篇幅深入剖析各细分领域&#xff0c;为有志于投…

C++基础语法、算法、数据结构的简化总结

这里写目录标题 C基础语法变量与运算条件判断循环结构 数组和字符串一维数组二维数组字符串处理 函数与算法函数定义常用算法 数据结构链表与顺序表栈和队列树 计算机基础硬件组成数据单位进制转换 C知识点总结&#xff0c;适合六年级刚学C的学生&#xff1a; C基础语法 变量与…

Qt+OpenGL-part3

1-4EBO画矩形_哔哩哔哩_bilibili 可以绘制两个三角形来组成一个矩形&#xff08;OpenGL主要处理三角形&#xff09; 直接画两个三角形&#xff1a; #include "openglwidget.h" #include <QDebug>unsigned int VBO,VAO; unsigned int shaderProgram;//顶点着…

升级到springdoc的Swagger3

jdk 17、springboot3 依赖配置&#xff1a;就此一个依赖即可 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.5.0</version></dependency>Swagger2-…

Leetcode 215. 数组中的第K个最大元素

心路历程&#xff1a; 这道题本质上是排序不完全的过程&#xff0c;而且这道题有bug&#xff0c;直接用python的排序算法其实就能AC。 可以按照快排排到找到k-1个large元素的思维去做&#xff0c;不过这道题需要考虑空间复杂度&#xff0c;所以需要用指针快排。 其实也可以考虑…

序列超图的下一项推荐 笔记

1 Title Next-item Recommendation with Sequential Hypergraphs&#xff08;Jianling Wang、Kaize Ding、Liangjie Hong、Huan Liu、James Caverlee&#xff09;【SIGIR 2020】 2 Conclusion This study explores the dynamic meaning of items in realworld scenarios and p…

设计模式:抽象工厂

定义 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一个接口&#xff0c;用于创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。这种模式特别适用于处理产品族&#xff0c;但在不可能修改的情况下扩展产品族是困难的。 应用场景 抽象工厂模式通…