单纯形法源程序.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单纯形法源程序

单纯形法源程序 作者 fishfly | 2005 05, 11 来自网友的源程序!, 若涉及到版权问题,请与我联系,马上删除!谢谢 #includestdio.h #includemath.h #includeiostream.h float matrix[100][100],x[100]; /* 记录总方程的数组,解的数组 */ int a[100]; /* 记录基础,非基础的解的情况,0:非基础,1:基础 */ int m,n,s,type; /* 方程变量,约束数,求最大最小值的类型,0:最小 1:最大 */ int indexe,indexl,indexg; /* 剩余变量,松弛变量,人工变量 */ void Jckxj() { int i,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; } int Rj() { int i; for(i=0;is;i++) if(fabs(matrix[n][i])=0.000001) if(matrix[n][i]0) return 0; return 1; } int Min() { int i,temp=0; float min=matrix[n][0]; for(i=1;is;i++) if(minmatrix[n][i]){ min=matrix[n][i]; temp=i; } return temp; } void JustArtificial() { int i; for(i=m+indexe+indexl;is;i++) if(fabs(x[i])=0.000001){ printf(No Answern); return; } } int Check(int in) { int i; float max1=-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) return 1; return 0; } int SearchOut(int *temp,int in) { int i; float min=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) return i; } void Mto(int in,int temp) { int i; for(i=0;i=s;i++) if(i!=in) matrix[temp][i]=matrix[temp][i]/matrix[temp][in]; matrix[temp][in]=1; } void Be(int temp,int in) { int i,j; float c; 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; } } void Achange(int in,int out) { int temp=a[in]; a[in]=a[out]; a[out]=temp; } void Print() { int i,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); } printf(Rj ); for(j=0;j=s;j++) printf(%8.2f,matrix[n][j]); printf(n); } void InitPrint() { int i; printf(X); for(i=0;is;i++) printf( a%d,i); printf( bn); Print(); p

您可能关注的文档

文档评论(0)

tangtianbao1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档