首页 > 其他分享 >二分法&三分法模板

二分法&三分法模板

时间:2022-10-29 11:22:43浏览次数:78  
标签:三分法 INT double eps long mid 二分法 lmid 模板

二分法求函数零点

long double l=INT_MIN,r=INT_MAX,mid,eps=1e-6;
while(r-l>eps)
{
  	mid=(l+r)/2;
  	if(f(mid)<0) l=mid;
  	else r=mid;
}
cout<<l<<endl;

三分法求单谷函数最小值

long double l=INT_MIN,r=INT_MAX,lmid,rmid,eps=1e-6;
while(r-l>eps)
{
  	lmid=l+(r-l)/3;
  	rmid=r-(r-l)/3;
  	if(f(lmid)<f(rmid)) r=rmid;
  	else l=lmid;
}
cout<<f(l)<<endl;

求导二分法求单谷函数最小值

inline long double df(long double x)
{
    long double dx=1e-6;
    return (f(x+dx)-f(x-dx))/(dx*2);
}

signed main()
{
    long double l=INT_MIN,r=INT_MAX,mid,eps=1e-6;
    while(r-l>eps)
    {
        mid=(l+r)/2;
        if(df(mid)<0) l=mid;
        else r=mid;
    }
    cout<<f(l)<<endl;
    return 0;
}

优化三分法求单谷函数最小值

long double l=INT_MIN,r=INT_MAX,lmid,rmid,eps=1e-6;
while(r-l>eps)
{
  	lmid=(l+r)/2-eps*0.01;
  	rmid=(l+r)/2+eps*0.01;
  	if(f(lmid)<f(rmid)) r=rmid;
  	else l=lmid;
}
cout<<f(l)<<endl;

标签:三分法,INT,double,eps,long,mid,二分法,lmid,模板
From: https://www.cnblogs.com/lingyunvoid/p/16838320.html

相关文章

  • 【模板】边双
    这里介绍一种与众不同的写法。前置知识:强联通分量回忆强联通分量的算法过程,我们利用有向图的dfn树将图上的所有边分成四种:树边、前向边、后向边和横向边。其中在原......
  • 二分模板
    二分模板一共有两个,分别适用于不同情况。算法思路:假设目标值在闭区间[l,r]中,每次将区间长度缩小一半,当l=r时,我们就找到了目标值。版本1当我们将区间[l,r]划分成[l,m......
  • 标准模板库 02 容器vector
    容器大致分为序列式容器(Sequence),关联式容器(Associative)和无序容器(Unordered),无序容器也可以归为关联式容器内。序列式容器(Sequence)array:数组,是一种固定大小的结构,静态空......
  • 标准模板库 01 概念
    STL是可复用的标准模板库,在泛性思维上架设的一个概念结构,使抽象概念为主体,并使其系统化。容器(containers):用于存放数据,包含各种如vector,list,deque,set,map等数据结构。分配......
  • P4213 【模板】杜教筛(Sum)
    题目链接P4213【模板】杜教筛(Sum)题目描述给定一个正整数,求\[ans_1=\sum_{i=1}^n\varphi(i)\]\[ans_2=\sum_{i=1}^n\mu(i)\]输入格式本题单测试点内有多组数据。......
  • 考场Dev配置及代码模板
    编译选项:-std=c++14-O2-Wl,--stack=104857600-Wall-Wextra-Wshadow-Wl开大栈空间-Wall显示所有警告-Wextra比较始终为true或始终为false,则发出警告,但不警告常......
  • 洛谷P3391 【模板】文艺平衡树
    题目描述您需要写一种数据结构(可参考题目标题),来维护一个有序数列。其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4] 的话,结果是5 2 ......
  • 递归代码模板--分治代码模板--动态规划的关键
    递归代码模板Pythondefrecursion(level,param1,param2,...):#recursionterminator//递归终结者iflevel>MAX_LEVEL:#process_resu......
  • 利用Github Actions自动将Markdown文件转为Latex文档并生成PDF(制作一个支持自动编译
    首先放上成品的仓库地址:​​Gtihub-ACM_Template_Library​​,欢迎Star哦~效果展示:1.创建GithubActions首先创建一个GithubActions的YML文件(可以通过Github模板生成),然后......
  • 设计模式---模板方法模式
    简述提取算法中不变的部分封装成方法,变化的部分延迟到子类。延迟到子类这个说法在学习设计模式的时候经常出现,实际就是利用多态在子类中重写方法,使得实行时根据实例的......