楼主可以使用1stOpt这个软件来求解,相对于matlab求解此类方程时的,1stOpt省去了fsolve需要的初值的问题,而且精度一般都很高。
下面是程序:
Parameter x(1:12);
//Constant
Constant B = 0.003;
Constant C = 0.0027;
//ConstStr
ConstStr H = x1+75*(B+C)+0.5*x11;
ConstStr alpha1 = 0.5+6*x10-H;
ConstStr beta1 = H*(0.01-1)+(0.5+6*x10)*(1+0.01);
ConstStr gamma1 = 0.01*H;
ConstStr alpha2 =0.15-x10;
ConstStr beta2 = 0.3;
ConstStr gamma2 = x10;
ConstStr alpha3 = 0.3+0.2*x10-x8;
ConstStr beta3 = x8*(0.1-1)+(0.3+0.2*x10)*(1+0.1);
ConstStr gamma3 = x6*0.1;
ConstStr Q = 0.01*(1-x9)+2*x9+0.05*x6;
ConstStr P = 0.1+0.25*x6;
ConstStr R = 0.3*(20*B+2*C+x1+x11+0.067*x10);
ConstStr J = 0.64*(B+x1+0.5*x11+x10);
ConstStr f1 = 0.05*(2*gamma1/(beta1+sqrt(beta1^2-4*alpha1*gamma1)))-0.1*x1;
ConstStr f2 = 0.002+0.05*(2*gamma2/(beta2+sqrt(beta2^2-4*alpha2*gamma2)))-Q*x2;
ConstStr f3 = 0.006+0.02*(2*gamma1/(beta1+sqrt(beta1^2-4*alpha1*gamma1)))-P*x3;
ConstStr f4 =0.02+0.1*(2*gamma2/(beta3+sqrt(beta3^2-4*alpha3*gamma3)))-(0.01+R/(0.05+x4))*x4;
ConstStr f5 = 50*x10*x12-(0.06+Q+R/(0.05+x4))*x5;
ConstStr f6 = 50*x11*x12-(0.06+P+R/(0.05+x4))*x6;
ConstStr f7 = (0.005+0.06*x8)-0.08*x7;
ConstStr f8 = x7-2*x8;
ConstStr f9 = (0.04+2*x8)*(1-x9)/(1.05-x9)-J*x9/(0.05+x9);
ConstStr f10 = x2-x5;
ConstStr f11 = x3-x6;
ConstStr f12 = x4-x5-x6;
Function f1=0;
f2=0;
f3=0;
f4=0;
f5=0;
f6=0;
f7=0;
f8=0;
f9=0;
f10=0;
f11=0;
f12=0;
求出来的x系列的值如下:
x1: -0.00241408292469573
x2: -1.19963721286631E-5
x3: -0.00163511248524538
x4: -0.00164712704345382
x5: -1.19975380217937E-5
x6: -0.00163512908617766
x7: -7.04705240745422E-20
x8: 1.73072251386771E-18
x9: -0.00331312406855758
x10: -0.0122596988050143
x11: -1.65447541443873
x12: -0.000192121359156606
但是楼主注意,这个方程组好像答案不唯一,对于x是否还有别的约束条件呢,楼主可以在看看,这系列值只作为楼主参考。
相关资源:PHP寄生虫繁殖劫持程序V3.0_寄生虫程序-PHP代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!