matlab中负于穷,穷虫50金! MATLAB的fsolve初值问题
樓主可以使用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是否還有別的約束條件呢,樓主可以在看看,這系列值只作為樓主參考。
總結
以上是生活随笔為你收集整理的matlab中负于穷,穷虫50金! MATLAB的fsolve初值问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 02380,oracle
- 下一篇: matlab中打不开保存好的模糊控制器,