/*
* main.c
*
* Created on: Oct 9, 2018
* Author: lgh
*/ #include <stdio.h>
#include <math.h>
#include "nlopt.h"
#define INF 1e10
int i = ; double step = ; //目标函数;
double utility(unsigned n, const double *x, double *grad, void *data)
{
if (grad) {
grad[] = (-1.0 + x[])*step;
grad[] = (-2.0 + x[])*step;
}
printf("迭代次数 i= %d, x[0]=%f, x[1]= %f,f(x1,x2)=%f\n",
i++, x[], x[], -x[] - * x[] + 0.5*x[] * x[] + 0.5*x[] * x[]);
return (-x[] - * x[] + 0.5*x[] * x[] + 0.5*x[] * x[]);
} //不等式限制条件;
double inconstraint_1(unsigned n, const double *x, double *grad, void *data)
{
if (grad) {
grad[] = 2.0*step;
grad[] = 3.0*step;
}
return ( * x[] + * x[] - );
} //不等式限制条件;
double inconstraint_2(unsigned n, const double *x, double *grad, void *data)
{
if (grad) {
grad[] = 1.0*step;
grad[] = 4.0*step;
}
return (x[] + * x[] - );
} //不等式限制条件;
double inconstraint_3(unsigned n, const double *x, double *grad, void *data)
{
if (grad) {
grad[] = 2.0*step;
grad[] = 6.0*x[] * step;
}
return ( * x[] + * x[] * x[] - );
} int main(int argc, char const *argv[])
{
double tol = 1e-;
double lb[] = { , }; //x1、x2的下边界;
double ub[] = { INF,INF };
double x[] = { , }; //给x1、x2赋予初始值;
double f_min; nlopt_opt opter = nlopt_create(NLOPT_LD_SLSQP/*NLOPT_LD_MMA*/, ); //设置自变量下限;
nlopt_set_lower_bounds(opter, lb); // 目标函数;
nlopt_set_min_objective(opter, utility, NULL); // 不等式约束;
nlopt_add_inequality_constraint(opter, inconstraint_1, NULL, tol);
nlopt_add_inequality_constraint(opter, inconstraint_2, NULL, tol);
nlopt_add_inequality_constraint(opter, inconstraint_3, NULL, tol); // 停止时需要的条件;
nlopt_set_xtol_rel(opter, tol); // 开始优化;
nlopt_result result = nlopt_optimize(opter, x, &f_min); if (result)
{
printf("极小值=%g, x=(%g,%g)\n", f_min, x[], x[]);
} //free
nlopt_destroy(opter);
getchar();
return ;
}

nlopt 二次优化的更多相关文章

  1. 12. 亿级流量电商系统JVM模型参数二次优化

    亿级流量电商系统JVM模型参数预估方案,在原来的基础上采用ParNew+CMS垃圾收集器 一.亿级流量分析及jvm参数设置 1. 需求分析 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该 ...

  2. paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。

    paper 4中介绍了支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西.不妨回忆一下上次最后一张图: 可以看到两个支撑着中间的 ga ...

  3. (转载)SVM-基础(二)

    支持向量机: Support Vector  by pluskid, on 2010-09-10, in Machine Learning     52 comments 本文是"支持向量机 ...

  4. 支持向量机(SVM)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略 ...

  5. Linq语言性能比较

    我不只一次听到不少做技术的朋友随口一句,“linq性能是最差的”,由于缺少具体的数字比照也就没在意,但心里隐隐觉得事实应该不是这样的,我记得我第一次听到有人贬低C# 3.0是在我工作后不久的一个夏季, ...

  6. SVM系列之拉格朗日对偶

    在学习SVM(Support Vector Machine) 支持向量机时,对于线性可分的分类样本求出的分类函数为: 其中,分类超平面可以表示为:

  7. PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)

    主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:59:22  大家好,今天一起交流下PRML第7章.第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分 ...

  8. opencv7-ml之svm

    因为<opencv_tutorial>这部分只有两个例子,就先暂时介绍两个例子好了,在refman中ml板块有:统计模型.普通的贝叶斯分类器.KNN.SVM.决策树.boosting.随机 ...

  9. Deep Learning in NLP (一)词向量和语言模型

    原文转载:http://licstar.net/archives/328 Deep Learning 算法已经在图像和音频领域取得了惊人的成果,但是在 NLP 领域中尚未见到如此激动人心的结果.关于这 ...

随机推荐

  1. vmware 两删除一清空

    快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...

  2. 富文本编辑器handyeditor,上传和预览图片的host地址不一样

    使用富文本编辑器(官网)时,大多时候都会用到图片上传,但是下载的富文本编辑器的默认配置是只有一个上传地址的host的. var he = HE.getEditor('editor', { autoHe ...

  3. keras Dense 层

    文档地址:https://keras.io/layers/core/#dense keras.layers.Dense(units, activation=None, use_bias=True, k ...

  4. 分析CSS布局神器

    只要在页面下加入如下css,整个css布局就清晰了 * { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,2 ...

  5. tensorflow cpu问题

    返回: -- ::] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 ...

  6. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_13-用户退出-前端

    调试前端的退出 logout方法 找到路由 退出对应的组件页面 这就是退出的组件 退出的方法 把这两个js的引用,从上面复制到下面引用.因为可能存在js的冲突问题. 资料里面给了一个前端 整个覆盖当前 ...

  7. QML显示圆形图片

    Item {//一个圆形图片 width: parent.width height: parent.height Image { id: rdJpg anchors.centerIn: parent ...

  8. 运维之利器--Ansible

    一.简介 Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署. ...

  9. 定时杀死warn进程

    6 6 * * * /root/wz/mysqlRestart.sh    #MySQL restart7 6 * * * /bin/sh /home/warn/kill_.sh8 6 * * * / ...

  10. notepad++(NPP)更换主题颜色

    NPP主题网站:https://lonewolfonline.net/notepad-colour-schemes/ 笔者下载了Nord Notepad++ Theme 然后打开%AppData%\N ...