资源

化学平衡(omod8)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*姓名:omod8*//*标题:化学平衡(omod8)*//*产品:或*//*系统:所有*//*关键字:或*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考编号:*//*MISC:的OPTMODEL章节中的示例8*//*数学编程*//*                                                             *//***************************************************************//*PROC NLP示例8*/proc-nlp-tech=tr-pall;数组c[10]-6.089-17.164-34.054-5.914-24.721-14.986 -24.100 -10.708 -26.662 -22.179;阵列x[10]x1-x10;最小y;参数x1-x10=.1;边界1.e-6<=x1-x10;林肯2.=x1+2.*x2+2.*x3+x6+x10,1.=x4+2.*x5+x6+x7,1.=x3+x7+x8+2.*x9+x10;s=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10;y=0。;do j=1到10;y=y+x[j]*(c[j]+log(x[j]/s));结束;运行;过程操作模型;设置CMP=1..10;数字c{CMP}=[-6.089-17.164-34.054-5.914-24.721-14.986 -24.100 -10.708 -26.662 -22.179];var x{CMP}初始值0.1>=1.e-6;条件2.=x[1]+2.*x[2]+2.*x[3]+x[6]+x[10],1.=x[4]+2.*x[5]+x[6]+x[7],1.=x[3]+x[7]+x[8]+2.*x[9]+x[10];/*替换PROC NLP模型中的变量*/impvar s=CMP}x[i]中的总和{i;最小y=CMP中的和{j}x[j]*(c[j]+log(x[j]/s));解决;打印x y;/*广义读取*/数据补偿;输入ca1a2a3;数据线;-6.089   1 0 0-17.164  2 0 0-34.054  2 0 1-5.914   0 1 0-24.721  0 2 0-14.986  1 1 0-24.100  0 1 1-10.708  0 0 1-26.662  0 0 2-22.179  1 0 1;数据原子;输入b@@;数据线;2. 1. 1;过程操作模型;设置CMP;设置ELT;数字c{CMP};编号a{ELT,CMP};数字b{ELT};将数据原子读入ELT=[_n_]b;将数据comp读入CMP=[_n_]英语教学中的c{i}<a[i,_n_]=col(“a_”||i)>;var x{CMP}初始值0.1>=1.e-6;ELT}中的conbal{i:b[i]=CMP}a[i,j]*x[j]中的sum{j;impvar s=CMP}x[i]中的总和{i;最小y=CMP中的和{j}x[j]*(c[j]+log(x[j]/s));打印b;解决;打印x;退出;数据补偿;输入名称$c a h a n a o;数据线;沪-6.089 1 0 0H2-17.164 2 0 0水-34.054 2 0 1编号-5.914 0 10氮气-24.721 0 2 0NH-14.986 1 10号编号:24.100 0 1 1O-10.708 0 1号氧气-26.662 0 2俄亥俄州-22.179 1 0 1;数据原子;输入名称$b;数据线;H 2。编号1。O 1。;proc选择模型;设置<string>CMP;设置ELT;数字c{CMP};编号a{ELT,CMP};数字b{ELT};将数据原子读入ELT=[name]b;将数据comp读入CMP=[name]英语教学中的c{i}<a[i,name]=col(“a_”||i)>;var x{CMP}初始值0.1>=1.e-6;ELT}中的conbal{i:b[i]=CMP}a[i,j]*x[j]中的sum{j;impvar s=CMP}x[i]中的总和{i;最小y=CMP中的和{j}x[j]*(c[j]+log(x[j]/s));解决;打印x;退出;