24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 704  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

请叫我呼呼呼

铜虫 (小有名气)

[求助] 复杂方程组求解已有1人参与

syms x1 x2 x3 x4 x5 x6 x7 x8

eqn1 = (x1-x2)*(1-x1-x3+x2+x4+x6+x7)-1.63734*10^(-13)*(1-2*x1-x3)^2;
eqn2 = (x2-x3)*(x2+x4+x7)-5752818*(x1-x2)*(1-x1-x3+x2+x4+x6+x7);
eqn3 = (x3-x4)*(1-x1-x3+x2+x4+x6+x7)-2.17528*10^(-12)*(x2-x3)*(1-2*x1-x3);
eqn4 = (x2+x4+x7)*(x4-x5)-285869.4*(x3-x4)*(1-x1-x3+x2+x4+x6+x7);
eqn5 = x5-x6-x7-8.26*10^(-5)*(x4-x5);
eqn6 = (x6-2*x8)*x6-1.10948*10^15*(x5-x6-x7)*(1-x1-x3+x2+x4+x6+x7);
eqn7 = x7*(x2+x4+x7)-4254857432*(x5-x6-x7)*(1-x1-x3+x2+x4+x6+x7);
eqn8 = x8^2-0.000750773*(x6-2*x8)^2;

eqn1=matlabFunction(eqn1)
eqn2=matlabFunction(eqn2)
eqn3=matlabFunction(eqn3)
eqn4=matlabFunction(eqn4)
eqn5=matlabFunction(eqn5)
eqn6=matlabFunction(eqn6)
eqn7=matlabFunction(eqn7)
eqn8=matlabFunction(eqn8)

f=@(x)[eqn1(x(1),x(2),x(3),x(4),x(6),x(7));
    eqn2(x(1),x(2),x(3),x(4),x(6),x(7));
    eqn3(x(1),x(2),x(3),x(4),x(6),x(7));
    eqn4(x(1),x(2),x(3),x(4),x(5),x(6),x(7));
    eqn5(x(4),x(5),x(6),x(7));
    eqn6(x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8));
    eqn7(x(1),x(2),x(3),x(4),x(5),x(6),x(7));
    eqn8(x(6),x(8))]

options = optimoptions('fsolve','algorithm','levenberg-marquardt')
[x,exitflag]=fsolve(f,[1 1 1 1 1 1 1 1],options)


这是程序,但是猜测的初始值不同解出来的结果就不同。我并不知道初始值的大概是多少。 有没有不用猜测初始值的方法。或者说怎么加一些不等式限制结果?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
转化为极值问题之后,这类问题常有多个局部极值点,所以,迭代法收敛到局部极值点或者鞍点很正常

{x1=0.6355106711326112, x2=-0.1030334431563012,
x3=0.35402353260730507, x4=0.3456964184083561,
x5=-0.2531286421850123, x6=-0.46081051722303384,
x7=0.2076817467914361, x8=-0.42714029617040405}

{x1=0.9028736908415601, x2=0.48571680999216704,
x3=-0.43455809512663685, x4=-0.9741912923385155,
x5=-0.043209954815936744, x6=-0.03908048783795981,
x7=-0.004129453990300291, x8=0.43950983982809383}
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
4楼2017-07-23 19:38:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

Mr__Right

专家顾问 (著名写手)


jjdg: 金币+1, 感谢参与 2017-07-24 22:20:04
这个严格来说,没有精确的实数解。只能在复数域上求精确的解。

或者,求残差某种意义下最小的解,用最优化的办法
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
2楼2017-07-23 19:30:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

请叫我呼呼呼

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by Mr__Right at 2017-07-23 19:30:15
这个严格来说,没有精确的实数解。只能在复数域上求精确的解。

或者,求残差某种意义下最小的解,用最优化的办法

解出来的是实数解,只不过修改了初始猜测后,结果就变了,我现在这个解出来的结果有些不符合实际。所以想试着看能不能再加上一些不等式对一些式子进行限制,这样结果可能会更符合我的需要。
3楼2017-07-23 19:36:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

请叫我呼呼呼

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by Mr__Right at 2017-07-23 19:38:26
转化为极值问题之后,这类问题常有多个局部极值点,所以,迭代法收敛到局部极值点或者鞍点很正常

{x1=0.6355106711326112, x2=-0.1030334431563012,
x3=0.35402353260730507, x4=0.3456964184083561,
x5=- ...

那有没有办法在这个里面再加一些不等式限制呢? 比如说让x1-x2)、(1-x1-x3+x2+x4+x6+x7)等等这些都大于0
5楼2017-07-24 08:34:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见