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 + -
显示快捷键?