资源

化学平衡示例(omode08)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*姓名:omode08*//*标题:化学平衡示例(omode08)*//*产品:或*//*系统:全部*//*关键字:或*//*程序: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));结束;运行;proc选择模型;设置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}init 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中的sum{i}x[i];最小y=CMP中的和{j}x[j]*(c[j]+log(x[j]/s));解决;打印x y;/*广义读取*/数据补偿;输入c a_1 a_2 a_3;数据线;-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;proc选择模型;设置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}init 0.1>=1.e-6;con bal{i在ELT中}:b[i]=sum{j在CMP中}a[i,j]*x[j];impvar s=CMP中的sum{i}x[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=[名称]b中;将数据comp读入CMP=[name]英语教学中的c{i}<a〔i,name〕=col(“a_”| | i)>;var x{CMP}init 0.1>=1.e-6;con bal{i在ELT中}:b[i]=sum{j在CMP中}a[i,j]*x[j];impvar s=CMP中的sum{i}x[i];最小y=CMP中的和{j}x[j]*(c[j]+log(x[j]/s));解决;打印x;退出;