某次為了完成課程要求所做:
單純形法**如下,使用方法修改二位陣列a[ip][jp],
#include
#define ip 3
#define jp 7
int i,j,m,n,flag=1;
float max=-1
,min=
1000
,guiyi;
float c[jp-1]
=;float a[ip]
[jp]=,
,};float x[ip]=;
float zc[jp-1]
=;int ji[ip]=;
//第3、4、5為4.5.6前係數
void
show()
;void
jinji()
;void
chuji()
;void
trans()
;void
show_result()
;int
main()
}show_result()
;c=getchar()
;return0;
}void
show()
printf
("\n");
for(i=
0;i)printf
("\n");
}}void
jinji()
printf
(" ");
}}printf
("%.2f "
,zc[j]);
}printf
("%d\n"
,m);
}void
chuji()
printf
("%d"
,n);
}void
trans()
for(i=
0;i//改變基
ji[n]
=m;//矩陣是從0開始的
}void
show_result()
printf
("\n(x1,x2,x3)=(%.2f,%.2f,%.2f)"
,x[0
],x[1]
,x[2])
;printf
("最優解為%f"
,c[0
]*x[0]
+c[1
]*x[1]
+c[2
]*x[2]
);}
對偶單純形法
#include
#define ip 4
#define jp 8
int i,j,m,n,flag=1;
float min=
0,guiyi;
float c[jp-1]
=;float a[ip]
[jp]=,
,,};
float x[3]
=;//原先最優解
float zc[jp-1]
=;//檢驗數
int ji[ip]=;
//基void
show()
;void
jinji()
;void
chuji()
;void
trans()
;void
trans_init()
;void
show_result()
;int
main()
if(min>a[ip-1]
[jp-1]
)show_result()
;//至此單純形法結束
}else
min=0;
c=getchar()
;//暫停一下
return0;
}void
show()
printf
("\n");
for(i=
0;i)printf
("\n");
}}void
jinji()
printf
("%.2f "
,zc[j]);
}printf
("\n");
min=0;
for(j=
0;j1;j++)}
// printf("%d",m);
}void
chuji()
// printf("%d",n);
}void
trans_init()
for(i=
0;i1;i++)}
}void
trans()
float tem[ip]
;//保留矩陣a中行變換需要歸零的列
for(i=
0;i)for
(i=0
;i//改變基
ji[n]
=m;//矩陣是從0開始的
}void
show_result()
printf
("\n(x1,x2,x3)=(%.2f,%.2f,%.2f)"
,x[0
],x[1]
,x[2])
;printf
("最優解為%f"
,c[0
]*x[0]
+c[1
]*x[1]
+c[2
]*x[2]
);}
單純形法簡介
考慮目標函式,ma xz 3 x1 4 x2增加x1 和x2 的值都將改進 z 的值,單純形法的設計要求每次都選擇使 z值有最大改善的那個變數。意味著在上述目標函式中,首先選擇增加x2 的值。通過對問題約束施加以下兩項要求來方便單純形法的計算 1.所有的約束都是等式,並且具有非負右端項 2.所有變數...
單純形法python實現
coding utf 8 單純形法的實現,只支援最簡單的實現方法 且我們假設約束矩陣a的最後m列是可逆的 這樣就必須滿足a是行滿秩的 m n的矩陣 import numpy as np class x object def init self,c,a,b 形式 minf x c.tx s.t.ax ...
單純形法中大m法 單純形法(大M法)
function x,fval,flag,iteration original m c,a,b 原始單純形法 大m法,無需給出初始基變數 programmed by liyang faruto s studio bnu math last modified 2008.4.27 求解標準型線性規劃 m...