Reading from and Creating a Data Set (omod2)
/***************************************************************/
/* */
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: omod2 */
/* TITLE: Reading from and Creating a Data Set (omod2) */
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: OR */
/* PROCS: OPTMODEL */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* MISC: Example 2 from the OPTMODEL chapter of */
/* Mathematical Programming. */
/* */
/***************************************************************/
data bard;
input y @@;
datalines;
.14 .18 .22 .25 .29 .32 .35 .39
.37 .58 .73 .96 1.34 2.10 4.39
;
proc optmodel;
set I = 1..15;
number y{I};
read data bard into [_n_] y;
number v{k in I} = 16 - k;
number w{k in I} = min(k, v[k]);
var x{1..3} init 1;
min f = 0.5*
sum{k in I}
(y[k] - (x[1] + k /
(v[k]*x[2] + w[k]*x[3])))**2;
solve;
print x;
create data xdata from [i] xd=x;
quit;
proc print data=xdata;
run;