funct.c
来自「运筹学非线性规划C语言编写的内点惩罚函数法子程序」· C语言 代码 · 共 30 行
C
30 行
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
const int kkg=3;
double r0;
double f(double x[])
{double ff;
ff=pow((x[0]-8),2)+pow((x[1])-8,2);
return(ff);
}
void strain(double x[],double g[])
{ g[0]=x[0]-1;
g[1]=x[1]-1;
g[2]=11-x[0]-x[1];
}
double objf(double p[])
{int i;
double ff,sg,*g;
g=(double *)malloc(kkg *sizeof(double));
sg=0;
strain(p,g);
for(i=0;i<kkg;i++)
{if(*(g+i)>0) sg=sg+r0/(*(g+i));
else sg=sg+r0*(1e+10);
}
free(g);
ff=f(p)+sg;
return(ff);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?