资源简介
c/c++ 最速下降法计算最优值 利用armijo计算最优步长
代码片段和文件信息
#include
#include
#include
#include
#include
#define m 2
#define epsilon pow(10-5)
double norm_1(double *x);
double fun_obj(double *x);//原函数
void fun_grad(double *xdouble *grad);//求梯度:
void armijograd(double *x0double *grad);
int main()
{
int i;
double *x;
x = (double*)malloc(sizeof(double)*m);
x[0] = 3.0;
x[1] = 1.0;
double *grad;
grad = (double*)malloc(sizeof(double)*m);
grad[0] = 0.0;
grad[1] = 0.0;
armijograd(xgrad);
for(i = 0;i printf(“%f “x[i]);
free(x);free(grad);
return 0;
}
double fun_obj(double *x)//原函数
{
double f = 0.0;
f = pow(x[0]-12)+pow(x[1]-12);
return f;
}
void fun_grad(double *xdouble *grad)//求梯度:
{
grad[0] = 2*(x[0]-1);
grad[1] = 2*(x[1]-1);
}
double norm_1(double *x)
{
double sum = 0.0;
int i;
for(i=0;i sum+=x[i]*x[i];
sum = sqrt(sum);
return sum;
}
void armijograd(double *x0double *grad)
{
int max_iter = 5000; // max number of iterations
double EPS = 1e-6; //threshold of gradient norm
double rho = 0.45; double sigma = 0.2; // Armijo pa
- 上一篇:坦克大战:(MFC]).zip
- 下一篇:命名管道 vc
相关资源
- 命名管道 vc
- 坦克大战:(MFC]).zip
- ue4蓝图c++动态改变staticmeshactor材质动
- SHA-256算法的C++实现及demo
- matlab2013a/b vs2013支持
- MATLAB数字图像处理:从仿真到C C++代码
- C程序——三次样条插值算法、最小二
- mfc中自绘menu控件的美化
- C++基础入门.md
- 最高响应比算法调度作业.cpp
- 分治法—最近点对.cpp
- Dijkstra最短路径算法C语言实现
- 猜动物游戏.zip
- C语言-打字母小游戏
- 一种有限状态机(FSM)的实现方式
- c语言汉诺塔代码
- C语言编写的猜数游戏
- c语言商品信息管理系统c语言课程作业
- 学生管理系统c++
- OpenCV贾志刚视频教程完整版
- 基于qt的心电监护软件系统设计
- 基于C++的JPEG图片信息隐藏及提取
- C语言源代码 《烟花》
- 超市收银管理系统
- 基于c的单片机病床呼叫系统
- opencv实现surf算法
- c语言程序设计_销售管理系统
- opencv简单的暗通道去雾算法
- C++继承,剪刀石头布
- 运输问题c语言代码
评论
共有 条评论