资源

入门示例(nlpsg01)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:nlpsg01*//*标题:入门示例(nlpsg01)*//*产品:或*//*系统:所有*//*关键字:或*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考:*//*MISC:入门部分的示例*//*内点非线性规划求解器*//*数学规划章节*//*                                                             *//***************************************************************/过程操作模型;变量x{1..3}>=0;最小化f=(x[1]+3*x[2]+x[3])**2+4*(x[1]-x[2])**2;conconst1:1..3}x[i]=1中的和{i;对比2:6*x[2]+4*x[3]-x[1]**3-3>=0;/*起点*/x[1]=0.1;x[2]=0.7;x[3]=0.2;用NLP求解;打印x;退出;过程操作模型;数量n=1000;数量b=5;varx{1..n}>=-1<=1init 0.99;变量y{1..n}>=-1<=1init-0.99;varz{1..b}>=0<=2init 0.5;最小化f=sum{i in 1..n}x[i]*y[i]+sum{j in 1..b}0.5*z[j]^2;cons1{k在1..n}中:x[k]+y[k]+和{j在1..b}z[j]=b中;con cons2:sum{i in 1..n}(x[i]+y[i])+sum{j in 1..b}z[j]>=b+1;用NLP/algorithm=activeset logfreq=10求解;退出;过程操作模型;var x>=-1<=1;变量y>=-1<=1;最小f=exp(sin(50*x))+sin(60*exp(y))+正弦(70*sin(x))+sin(80*y))-sin(10*(x+y))+(x^2+y^2)/4;用nlp/multistart=(maxstarts=30)seed=94245求解;退出;数据样本;输入x1x2 y;数据线;4  8   43.7162  5  351.2981 62 2878.9185 75 3591.5965 54 2058.7196 84 4487.8798 29 1773.5236 33  767.5730 91 1637.663 59  215.2862 57 2067.4211 48  394.1166 21  932.8468 24 1069.2195 30 1770.7834 14  368.5186 81 3902.2737 49 1115.6746 80 2136.9287 72 3537.84;/*带交互项的需求模型:y=a*x1+b*x2+c*x1*x2*/过程操作模型;设置obs;数字x1{obs},x2{obs{,y{obsneneneep;1..nvar中的num mycov{i,1..i}中的j;变量a、b、c;将数据样本读入obs=[_n_]x1x2 y;obs}中的impvar Err{i=y[i]-(a*x1[i]+b*x2[i]+c*x1[i]*x2[i]);最小f=obs}Err[i]^2中的和{i;用nlp/covest=(cov=5 covout=mycov)求解;打印mycov;打印b c;退出;