黄金分割算法求函数的极值C++实现
黄金分割算法求极值迭代的最终判断是两次函数值的结果差是否很小,如果小,则说明该处函数的斜率很小,就是一个极值点。
过程如下:
以下是代码:
//黄金分割法!
/*
================================================================
题目:用黄金分割法求解3*x*x*x-2*x*x-16=0的根。
================================================================
*/
#include<stdio.h>
#include <math.h>
#define E 0.5 //精度
//方程的解,可以通过修改方程求解不同的问题
double hs(double x)
{return x*x-x+2;
}
double gen(double a, double b) //黄金分割算法求解函数,a为左区间,b为右区间
{double g,a1,b1;g = (sqrt(5) - 1.0) / 2; //黄金分割的值a1 = a + (1 - g)*(b - a);b1 = a + g * (b - a);while (fabs(b-a) > E){if (hs(a1)>hs(b1)){a = a1;a1 = b1;b1= a + g * (b - a);}else {b = b1;b1 = a1;a1= a + (1 - g)*(b - a);}}return (a+b)/2;
}
int main()
{double a, b, t, fa, fb;printf("输入估计区间: a="); //左区间scanf("%lf", &a);printf("输入估计区间: b="); //有区间scanf("%lf", &b);t = gen(a, b);printf("解得:(%.4lf,%0.4lf) ", t,hs(t));return 0;
}
结果:
黄金分割算法求函数的极值C++实现相关推荐
- 蚁群算法求函数最值c语言,蚁群算法代码(求函数最值)
蚁群算法简单应用 function [F]=F(x1,x2) %目标函数 F=-(x1.^2+2*x2.^2-0.3*cos(3*pi*x1)-0.4*cos(4*pi*x2)+0.7); End f ...
- java模拟退火算法求函数_模拟退火算法从原理到实战【基础篇】
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小 ...
- 粒子群算法求函数极值
粒子群算法是群智能算法中的一种,除此之外还有其他的群智能算法,如蚁群算法.猴群算法.鱼群算法等等.本文是关于粒子群算法的.所有的群智能算法都是通过模拟自然界中的生物群体的行为来解决问题的一种思想,同遗 ...
- 模拟退火算法求函数极值(含MATLAB代码实现)
二.模拟退火算法 1. 简介 模拟退火算法的思想借鉴于固体的退火过程,当固体的温度很高时,内能比较大,固体内的粒子处于快速无序运动状态,当温度慢慢降低,固体的内能减小,粒子逐渐趋于有序,最终 ...
- 偏导,梯度,Hesse矩阵的一些概念和求函数的极值
偏导 偏导函数..简称为偏导数 可以理解为,固定一个变量,求另一个变量的导数; 三元函数的二阶偏导有9个 梯度 梯度(由偏导数组成的一个向量) 梯度的特点: 1 方向,函数变化率最大的方向;(负梯度方 ...
- 【优化求解】猫群算法求函数最优值
猫群算法( Cat Swarm Optimization,缩写为CSO) 是由Shu - An Chu 等人在2006 年首次提出来的一种基于猫的行为的全局优化算法.根据 生物学分类,猫科动物大约有 ...
- 灰狼优化算法求函数最优值matlab,GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)...
2-l*((2)/Max_iteration); % 对每一次迭代,计算相应的a值,a decreases linearly fron 2 to 0% Update the Position of s ...
- 【MATLAB】黄金分割算法实现单变量函数最优值求解
用黄金分割算法求单变量函数f(x)在单峰区间[a,b]上的近似极小点 函数实现: function [i,s,phis,ds,dphi,G] = golds(phi, a,b,epsilon, del ...
- 蚁群算法求最值c语言实现,蚁群算法代码(求函数最值)
<蚁群算法代码(求函数最值)>由会员分享,可在线阅读,更多相关<蚁群算法代码(求函数最值)(4页珍藏版)>请在人人文库网上搜索. 1.function F=F(x1,x2) % ...
最新文章
- 常用的Git Tips
- python用哪个版本比较好 2020_2020年最常见的Python面试题答案
- 面试时候可以问的问题集锦
- Angular jasmine.expect单步调试
- android系统 通知管理,Android的通知系统
- Python 数据科学手册 5.5 朴素贝叶斯分类
- java共同方法_java-现有公共方法的NoSuchMethodError
- 修改Cocos2d-xV3.17.2项目模板的编译路径
- c语言ascii码表_零基础学C语言——变量、常量与数据类型
- 通信与协议Netty+Protobuf-游戏设计与开发(1)
- Linux如何搜索查找文件里面内容
- java中美元符号的作用_$美元符号在配置文件中的意义
- 第一篇 ME909S-821开始使用
- 目标检测之正负样本详解
- net.reflector8.5.0.179过了试用期,要求输入序列号怎么办 注册机 破解
- oracle查询某个时间段是否在另外一个时间段之内
- 微信域名防红防屏蔽技术,微信域名总是被封要怎么解决
- “海马体”平替教程:把拍海马体的钱省下来买排骨不香嘛?好用哭了
- Git安装图文教程(Windows、Linux全平台)
- 爱心信封打开ui动画特效
热门文章
- Docker: Failed to get D-Bus connection: No connection to service
- TypeScript中的枚举类型
- TF-IDF(term frequency–inverse document frequency)
- leetcode - Populating Next Right Pointers in Each Node II
- EDM营销的三个小窍门-EDM营销必看
- windows命名管道
- 武汉区块链软件技术公司:区块链如何化解溯源的短板
- 大型网站系统与Java中间件实践 01 认识分布式
- CMD命令名详细大全
- websphere变成英文了