该结果为当每年没有个体被运走时数量停留在11000左右的数据,用于与初步数据进行对比。
附录2(用MATLAB画出模型一轨迹): clear all;clc
y1=[792 594 564 535 508 482 457 434 412 391 371 352 334 317 301 285 270 256 243 230 215 207 196 186 176 167 158 150 142 134 127 120 113 107 101 95 90 85 80 75 71 67 63 59 56 53 50 47 44 41 38 36 34 32 30 28 26 24 22 20 18]';
y2=[806 604 573 544 516 490 465 441 418 397 377 358 340 322 305 289 274 260 246 233 221 209 198 188 178 169 160 151 143 135 128 121 114 108 102 96 91 86 81 76 72 68 64 60 56 53 50 47 44 41 38 36 34 32 30 28 26 24 22 20 18]';
y3=[746 559 531 504 478 454 431 409 388 368 349 331 314 298 283 268 254 241 228 216 205 194 184 174 165 156 148 140 132 125 118 112 106 100 94 89 84 79 75 71 67 63 59 56 53 50 47 44 41 38 36 34 32 30 28 26 24 22 20 18 17]';
y4=[800 600 569 540 512 486 461 437 415 394 374 355 337 320 303 287 272 258 245 232 220 208 197 187 177 168 159 151 143 135 128 121 114 108 102 96 91 86 81 76 72 68 64 60 56 53 50 47 44 41 38 36 34 32 30 28 26 24 22 20 18]';
x1=[0 0 0 0 3 4 7 20 9 15 9 22 3 23 5 13 21 0 22 14 5 13 10 0 13 30 14 12 0 20 6 3 5 8 12 10 3 7 14 10 16 21 13 10 12 6 3 6 9 13 10 3 6 21 15 4 13 10 32 14 0]';
x2=[0 0 20 21 13 12 13 22 14 40 14 26 13 14 27 3 14 12 20 25 17 14 10 0 2 3 4 4 3 2 3 13 16 13 10 10 12 16 12 10 12 19 13 24 17 16 25 12 45 23 34 13 16 10 17 13 13 12 3 22 20]';
m1=y1-x1; m2=y2-x2; m3=y3; m4=y4; t=0:60
plot(t,m1,'b.'),hold on,plot(t,m4,'m-')
legend('前一年剩余数量的年龄结构情况','前两年剩余数量的年龄结构情况','没有被运走时的年龄结构情况','预测当前的年龄结构情况(无运走)') title('今年时该动物群落的年龄结构情况')
附录3(用SAS对模型一进行检验的程序及调试结果):
data A;
input x1 x2 x3 x4 @@; cards;
594 604 559 600 564 553 531 569 535 523 504 540 505 503 478 512 478 478 454 486 450 452 431 461 414 419 409 437 403 404 388 415 376 357 368 394 362 363 349 374 330 332 331 355 331 327 314 337 294 308 298 320 296 278 283 303 272 286 268 287 249 260 254 272 256 248 241 258 221 226 228 245 216 208 216 232 213 204 205 220 194 195 194 208 186 188 184 197 186 188 174 187 163 176 165 177
on,plot(t,m2,'y*'),hold on,plot(t,m3,'g--'),hold
137 166 156 168 144 156 148 159 138 147 140 151 142 140 132 143 114 133 125 135 121 125 118 128 117 108 112 121 108 98 106 114 99 95 100 108 89 92 94 102 85 86 89 96 87 79 84 91 78 70 79 86 66 69 75 81 65 66 71 76 55 60 67 72 46 49 63 68 50 51 59 64 49 36 56 60 44 39 53 56 47 37 50 53 47 25 47 50 41 35 44 47 35 -1 41 44 28 18 38 41 28 4 36 38 33 23 34 36 28 18 32 34 11 22 30 32 15 13 28 30 24 15 26 28 13 13 24 26 14 12 22 24 -10 19 20 22 6 -2 18 20 18 -2 17 18 ;
proc corr; var x1 x2 x3 x4; run;输出结果如下:
附录4(用MATLAB求解目标最优化问题) clear all;clc f=[0;0;0;1];
Aeq=[0.2857 0.1818 -1 0;1 1 0 0;0 0 0.75 -1]; beq=[0 2569 529 ]; lb=zeros(4,1);
[x,fval,exitflag,output,lambda]=linprog(f,[],[],Aeq,beq,lb) 输出结果如下:
>> Optimization terminated successfully. x =
1.0e+003 * 2.2934 0.2756 0.7053 0.0000
fval = % 返回目标函数值 % 2.0286e-016
exitflag = % 表示求得的解是收敛的 % 1 output =
iterations: 6 cgiterations: 0
algorithm: 'lipsol' % 求目标最优化的方法 % lambda = % 所占的空间 % ineqlin: [0x1 double] eqlin: [3x1 double] upper: [4x1 double] lower: [4x1 double]
附录5(用MATLAB求解模型三目标最优化问题) clear all;clc f=[0;0;0;1];
Aeq=[0.2896 0.1843 -1 0;1 1 0 0;0 0 0.75 -1]; beq=[0 2569 529 ]; lb=zeros(4,1);
[x,fval,exitflag,output,lambda]=linprog(f,[],[],Aeq,beq,lb) 输出结果如下:
> Optimization terminated successfully. x =
1.0e+003 * 2.2020 0.3670 0.7053 0.0000 fval = 2.4791e-016