matlab中负于穷,穷虫50金! MATLAB的fsolve初值问题

博主分享了一篇关于使用1stOpt软件解决方程组的文章。该软件在处理比MATLAB更复杂的方程时,无需提供初始值,并能获得高精度解。文章列出了一组具体的方程和其解,但指出方程可能有多个解,并提示检查可能存在的额外约束条件。解出的x系列值也在内容中给出。
摘要由CSDN通过智能技术生成

楼主可以使用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是否还有别的约束条件呢,楼主可以在看看,这系列值只作为楼主参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值