運籌學(xué)單純形法c++計算_第1頁
運籌學(xué)單純形法c++計算_第2頁
運籌學(xué)單純形法c++計算_第3頁
運籌學(xué)單純形法c++計算_第4頁
運籌學(xué)單純形法c++計算_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

#include<stdio.h>#include<math.h>intm;/*定義約束條件方程組的個數(shù)*/intn;/*定義未知量的個數(shù)*/floatM=1000000.0;floatA[100][100]; /*用于記錄方程組的數(shù)目和系數(shù);*/floatC[100]; /*用于存儲目標函數(shù)中各個變量的系數(shù)*/floatb[100]; /*用于存儲常約束條件中的常數(shù)*/floatCB[100]; /*用于存儲基變量的系數(shù)*/floatseta[100]; /*存放出基與入基的變化情況*/floatdelta[100];/*存儲檢驗數(shù)矩陣*/floatx[100];intnum[100]; /*用于存放出基與進基變量的情況*/floatZB=0; /*記錄目標函數(shù)值*/voidinput();voidprint();intdanchunxingl();intdanchunxing2(inta);voiddanchunxing3(intajntb);intdanchunxingl()(inti,k=0;intflag=O;floatmin=0;for(i=0;i<n;i++)if(delta[i]>=0)flag=l;else(flag=O;break;)if(flag==l)return-1;for(i=0;i<n;i++)(if(min>delta[i])(min=delta[i];k=i;}}returnk;}intdanchunxing2(inta)(inti,k,j;intflag=O;floatmin;k=a;for(i=0;i<m;i++)if(A[i][k]<=0)flag=l;else(flag=O;break;)if(flag==l)(printf("\n該線性規(guī)劃無最優(yōu)解!\n");return-1;)for(i=0;i<m;i++)(if(A[i][k]>0)seta[i]=b[i]/A[i][k];elseseta[i]=M;}min=M;for(i=0;i<m;i++)(if(min>=seta[i]){min=seta[i];j=i;}}num[j]=k+l;CBO]=C[k];returnj;}voiddanchunxing3(intpjntq)(inti,j,c,l;floattempl/temp2ztemp3;C=p;/*行號*/l=q;/*列號*/templ=A[c][l];b[c]=b[c]/templ;for(j=0;j<n;j++)A[c][j]=A[c][j]/templ;for(i=0;i<m;i++)(if(i!=c)if(A[i][l]!=O){temp2=A[i][l];b[i]=b[i]-b[c]*temp2;for(j=0;j<n;j++)A[i][j]=A[i][j]-A[c][j]*temp2;)}temp3=delta[l];for(i=0;i<n;i++)delta[i]=delta[i]-A[c][i]*temp3;}voidprint()(inti,j=O;printf("\n \n");for(i=0;i<m;i++)(printf(”%8.2f\tX(%d)%8.2f”,CB[i],num[iLb[i]);for(j=0;j<n;j++)printf("%8.2fprintf(”\n");}printf(H\n \nH);printf("\t\t\t”);for(i=0;i<n;i++)printf(H%8.2f,,/delta[i]);printf("\n \n");}voidinput()(inti,j;/*循環(huán)變量*/intk;printf("請輸入行數(shù)m:\n");scanf(,,%dl,/&m);printf("請輸入列數(shù)n:\n");scanf(,,%dl,/&n);printf("請輸入方程組的系數(shù)矩陣(%d行%d列):\n",m,n);for(i=0;i<m;i++)for(j=0;j<n;j++)scanf(”%f”,&A[i][j]);printf("\n請輸入初始基變量的數(shù)字代碼矩陣:\n");for(i=0;i<m;i++)scanf(,,%d,,/&num[i]);printf("\n請輸入方程組右邊的值矩陣b:\rT);for(i=0;i<m;i++)scanf(”%f”,&b[i]);printf("\n請輸入目標函數(shù)各個變量的系數(shù)所構(gòu)成的系數(shù)陣C:\n");for(i=0;i<n;i++)scanf(”%f”,&C[i]);for(i=0;i<n;i++)delta[i]=-C[i];for(i=0;i<m;i++)(k=num[i]-l;CB[i]=C[k];}}main()(inti,j=O;intp,q,temp;input();printf("\n \n");printf("\tCB\tXB\tb\f);for(i=0;i<n;i++)printf("X(%d)\t"J+l);for(i=0;i<n;i++)x[i]=O;printfC'Xn");while(l)(q=danchunxingl();if(q==-l){print));printf("\n所得解己經(jīng)是最優(yōu)解!\n”);printf("\n最優(yōu)解為:\n”);for(j=0;j<m;j++)(temp=num[j]-l;x[temp]=b[j];}for(i=0;i<n;i++)(printf(”x%d=%.2f”』+l,x[i]);ZB=ZB+x[i]*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論