exitflag = 1 output =
iterations: 6 cgiterations: 0 algorithm: 'lipsol'
附录6: (用MATLAB求解模型四目标最优化问题) clear all;clc f=[0;0;0;0;1]; A=[0 0 1 0 0]; b=[242];
Aeq=[0.2896 0.1843 0.1698 -1 0;1 1 1 0 0;0 0 0 0.75 -1]; beq=[0 2569 529]; lb=zeros(5,1);
[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb) 输出结果如下:
>> Optimization terminated successfully. x =
1.0e+003 * 2.2171
0.2421 %由此可知当?=242时模型稳定% 0.1098 0.7053 0.0000 fval = 1.6409e-012 exitflag = 1 output =
iterations: 6
cgiterations: 0 algorithm: 'lipsol' lambda =
ineqlin: 1.9145e-014 eqlin: [3x1 double] upper: [5x1 double] lower: [5x1 double]
附录7(用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 579]; lb=zeros(4,1);
[x,fval,exitflag,output,lambda]=linprog(f,[],[],Aeq,beq,lb) 输出结果如下:
>> Exiting: One or more of the residuals, duality gap, or total relative error has grown 100000 times greater than its minimum value so far: the primal appears to be infeasible (and the dual unbounded). (The dual residual < TolFun=1.00e-008.) x =
1.0e+003 * 2.5685 0.0005 0.7439 0.0000 fval = 4.8164e-006
exitflag = %表明得到的数据是发散的% -1 output =
iterations: 3 cgiterations: 0 algorithm: 'lipsol' lambda =
ineqlin: [0x1 double] eqlin: [3x1 double] upper: [4x1 double] lower: [4x1 double]
附录8(用MATLAB求模型六目标最优化问题)
clear all;clc for i=50:10:300 f=[]; A=[]; b=[]; Aeq=[]; beq=[]; lb=zeros(1,1);
[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb) end
输出结果如下: x =
370 361 351 342 332 323 313 304 294 285 275 266 256 247 228 218 209 199 190 180 171 161 152 142 133
附录9(用C语言求不同M值时各年的增量) main() {int x[70],n,d;
int sum,sum1,sum2; clrscr(); sum=0; sum1=0; sum2=0;
printf(\ scanf(\
printf(\ x[1]=0.75*x[0]; for(n=2;n<=60;n++) {x[n]=0.95*x[n-1]; }
for(n=0;n<=60;n++) {sum=sum+x[n];
printf(\ \ /*打印出各年龄段的数量*/ }
for(n=13;n<=60;n++) {sum1=sum1+x[n]; }
printf(\ /*用总和来控制,使之等于M在第t年数量*/ printf(\/*每年的增量约等于13—16岁雌性个体的数量
*/
}
附录10(求不同M值增量d的关系) clear all;clc
t=[1 2 3 4 5 6 7 8 9 10]; t1=[1 2]; t2=[1 2 3]; t5=[1 2 3 4]
t3=[1 2 3 4 5 6]; t4=[1 2 3 4 5 6 7 8]; M1=[665 707 757]; M2=[594 638 699 729]; M3=[526 562 602 640 689 741];
M4=[456 489 521 557 596 638 682 729]; M5=[388 414 444 472 507 538 581 623 665 707]; M6=[322 342 365 390 418 445 472 507 543 581]; M7=[250 267 286 305 325 348 371 401 426 456]; M8=[179 191 205 219 235 251 268 286 307 327]; M9=[113 124 134 141 152 161 173 185 199 212]; f=inline('k(1)*t+k(2)','k','t'); k1=[0.5 30];
m1=lsqcurvefit(f,k1,t2,M1) z1=f(m1,t2) k2=[0.5 30];
m2=lsqcurvefit(f,k2,t5,M2) z2=f(m2,t5) k3=[0.5 30];
m3=lsqcurvefit(f,k3,t3,M3) z3=f(m3,t3) k4=[0.5 30];
m4=lsqcurvefit(f,k4,t4,M4) z4=f(m4,t4) k5=[0.5 30];
m5=lsqcurvefit(f,k5,t,M5) z5=f(m5,t) k6=[0.5 30];
m6=lsqcurvefit(f,k6,t,M6) z6=f(m6,t)