c语言线性规划求解函数 c语言线性代数方程组求解

C语言 内点法求解线性规划C=c的转置
if(command='c')||(command='C')
m小于等于n 。
if(m=n)
其它我是用数学来算的 , 即利用矩形的数学算法来加入C语言算出来的 。看来你是不需要的!
《运筹学》中的单纯形方法求线性规划问题用C语言怎么算?求代码,谢谢!#includestdio.h
#includemath.h
#includeiostream.h
floatmatrix[100][100],x[100];/*记录总方程的数组,解的数组*/
inta[100];/*记录基础,非基础的解的情况,0:非基础,1:基础*/
intm,n,s,type;/*方程变量,约束数,求最大最小值的类型,0:最小1:最大*/
intindexe,indexl,indexg;/*剩余变量,松弛变量,人工变量*/
voidJckxj()
{
inti,j;
for(i=0;in;i++)
for(j=0;js;j++)
if(matrix[i][j]==1a[j]==1){
x[j]=matrix[i][s];
j=s;
}
for(i=0;is;i++)
if(a[i]==0)x[i]=0;
}
intRj()
{
inti;
for(i=0;is;i++)
if(fabs(matrix[n][i])=0.000001)
if(matrix[n][i]0)return0;
return1;
}
intMin()
{
inti,temp=0;
floatmin=matrix[n][0];
for(i=1;is;i++)
if(minmatrix[n][i]){
min=matrix[n][i];
temp=i;
}
returntemp;
}
voidJustArtificial()
{
inti;
for(i=m+indexe+indexl;is;i++)
if(fabs(x[i])=0.000001){
printf("NoAnswer\n");
return;
}
}
intCheck(intin)
{
inti;
floatmax1=-1;
for(i=0;in;i++)
if(fabs(matrix[i][in])=0.000001max1matrix[i][s]/matrix[i][in])
max1=matrix[i][s]/matrix[i][in];
if(max10)
return1;
return0;
}
intSearchOut(int*temp,intin)
{
inti;
floatmin=10000;
for(i=0;in;i++)
if(fabs(matrix[i][in])=0.000001(matrix[i][s]/matrix[i][in]=0)minmatrix[i][s]/matrix[i][in]){
min=matrix[i][s]/matrix[i][in];
*temp=i;
}
for(i=0;is;i++)
if(a[i]==1matrix[*temp][i]==1)returni;
}
voidMto(intin,inttemp)
{
inti;
for(i=0;i=s;i++)
if(i!=in)
matrix[temp][i]=matrix[temp][i]/matrix[temp][in];
matrix[temp][in]=1;
}
voidBe(inttemp,intin)
{
inti,j;
floatc;
for(i=0;i=n;i++){
c=matrix[i][in]/matrix[temp][in];
if(i!=temp)
for(j=0;j=s;j++)
matrix[i][j]=matrix[i][j]-matrix[temp][j]*c;
}
}
voidAchange(intin,intout)
{
inttemp=a[in];
a[in]=a[out];
a[out]=temp;
}
voidPrint()
{
inti,j,k,temp=0;
for(i=0;in;i++){
for(k=temp;ks;k++)
if(a[k]==1){
printf("X%d",k);
temp=k+1;
k=s;
}
for(j=0;j=s;j++)
printf("%8.2f",matrix[i][j]);
printf("\n");
}
c语言问题?。。∥矣胏语言求线性规划问题?。。?/h2>#includestdio.h
void main()
{
int x,y,z,c,o,p,q,max;float m,n;
x=0;y=0;z=0;
max=0;
for(x=0;x201;x++)
{
for(y=0;y251;y++)///////////这儿写错c语言线性规划求解函数了for(y=0;x251;y++)
{
for(z=0;z101;z++)
{
m=x+1.5*y+4*z;
n=2*x+1.2*y+z;
if(m=2000n=1000)
c=10*x+12*y+14*z;
if(maxc)
{
max=c;o=x;p=y;q=z;
}
}
}
}
printf("max=%d,x=%d,y=%d,z=%d",c,o,p,q);
}
线性规划问题求解这是一个标准的线性规划问题,可以使用单纯形法进行求解 。下面是解题过程:
首先将目标函数和约束条件转化为矩阵形式:
目标函数矩阵:C = [0.1 0.15 0.2 0.25 0.3]
约束条件矩阵:A = [1 1 1 1 1; 0.15 0.2 0.25 0.3 0.35]
将约束条件中的等式 x1+x2+x3+x4+x5=100 转化为不等式,得到:
x1+x2+x3+x4+x5≤100
x1+x2+x3+x4+x5≥100
将不等式转化为标准形式,得到:
x1+x2+x3+x4+x5+s1=100

推荐阅读