
头文件库:
1. 创建目录
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode)
运用条件:只能在已存在的目录下建立一级子目录
返回值: 返回0表示成功,返回-1表述出错。
mode 表示新目录的权限,可以取以下值:
其中,mode就用0777,0755这种形式。
2. 判断一个目录是否存在
可以使用opendir来判断,这是比较简单的办法。
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name)
***********************************
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
#include<dirent.h>
#include<sys/types.h>
#include<sys/stat.h>
extern int errno
#define MODE (S_IRWXU | S_IRWXG | S_IRWXO)
int mk_dir(char *dir)
{
DIR *mydir = NULL
if((mydir= opendir(dir))==NULL)//判断目录
{
int ret = mkdir(dir, MODE)//创建目录
if (ret != 0)
{
return -1
}
printf("%s created sucess!/n", dir)
}
else
{
printf("%s exist!/n", dir)
}
return 0
}
linux lpopt 安装目录是:在系统 /usr/local 目录下,默认是放在新建的 build 文件夹中。代码是../configure --prefix=/usr/localmake。
linux lpopt检测编译是否成功的代码是:sudo make testsudo make install。
linux lpopt安装代码是:
cd ~/Ipopt-3.12.8/ThirdParty/Blas
./get.Blascd ../ASL
./get.ASLcd ../Lapack
./get.Lapackcd ../Mumps
./get.Mumpscd ../Metis。
/get.Metis
下载完第三方库之后,回到 Ipopt-3.12.8 文件夹路径下,cd ../../mkdir buildcd build。
使用linux lpopt解决非线性规划最优化问题的方法是:
第一步:求解目标函数的梯度。
第二步:求解约束条件的Jacobian矩阵。
第三步:求解目标函数和约束条件的Hessian矩阵。即求解。
得到至此,准备工作已经就绪,接下来调用Ipopt 的API接口进行计算。
1、get_nlp_info设置以下的参数:n=4//变量x个数、m=2//约束条件个数、nnz_jac_g=8//Jacobian非零个数、Nnz_h_lag=10//Hessian非零个数。
2、get_bounds_info 设置以下的参数:x_l[i]设置xi的下界值、x_u[i]设置xi的上界值、g_l[i]设置约束i的下界值、g_u[i]设置约束i的上界值。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)