24小时热门版块排行榜    

查看: 1853  |  回复: 6

monixia

木虫 (小有名气)

[求助] 求解决matlab解非线性方程组出现的问题 已有1人参与

各位matlab大神,我计算的方程组如下,
>> m=0.00040;
f=@(x)([3.14159*m^3+1.9635e-7*x(1)-0.002*3.14159*0.0005^2;
6*(m+x(2))*1.9635e-7-3.14159*m^3+1.9635e-7*x(3)+1.9635e-7*x(6)*(m+x(2))/x(4)-0.002*3.14159*0.0005^2;
3.14159*m^3*x(4)/(m+x(2))+1.9635e-7*x(1)*x(5)/(x(1)+x(3))-1/6*1e-6;
(6*1.9635e-7*(m+x(2))-3.14159*m^3)*x(4)/(m+x(2))+1.9635e-7*x(3)*x(5)/(x(1)+x(3))+1.9635e-7*x(6)-1/6*1e-6;
fix(0.05/(x(1)+x(3)))*(32*0.0010087*x(5)/0.0005^2*x(3)+7.16*0.07275*(3*(1.0087*x(5)/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x(5)/72.75)^(2/3))))-6455.68*x(6)
0.05/(m+x(2))*(32*0.0010087*x(4)/0.0005^2*x(2)+7.16*0.07275*(3*(1.0087*x(4)/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x(4)/72.75)^(2/3))))-6455.68*x(6)]);
options = optimset('MaxIter',1e30,'MaxFunEvals',1e50,'TolFun',1e-50);
x=fsolve(f,[0.005 0.0005 0.001 0.15 0.9 0.3],options)

No solution found.

fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared, but the vector of function values
is not near zero as measured by the selected value of the function tolerance.

<stopping criteria details>


x =

    0.0070   -0.0001    0.0030    0.0344    1.0563    0.4352


fsolve stopped because the relative norm of the current step, 2.848645e-15, is less than
max(options.TolX^2,eps) = 1.000000e-12. However, the sum of squared function values,
r = 3.833839e-15, exceeds sqrt(options.TolFun) = 1.000000e-25.

Optimization Metric                                               Options
relative norm(step) =   2.85e-15                max(TolX^2,eps) =   1e-12 (default)
r =   3.83e-15                                    sqrt(TolFun) =  1.0e-25 (selected)

如上,初值已经取的很接近实验值了,还是没有满意的结果。将matlab算的带入六个方程,
ans =
   4.7168e-12
ans =
  -8.4160e-11
ans =
   1.5716e-09
ans =
  -1.5222e-09
ans =
   15.7955
ans =
  232.7567
后两项收敛不是很好。我已经尝试把optimset调到很小了,可是还是没有满意的结果。
求助各位大牛,这个该怎么解?还是方程需要修改?

如果圆满解决,可以加金币~
回复此楼

» 猜你喜欢

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

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
1stOpt代码(注意不是MATLAB软件代码):
CODE:
Constant m=0.00040;
Parameters x(1:6);
Function 3.14159*m^3+1.9635e-7*x1-0.002*3.14159*0.0005^2;
6*(m+x2)*1.9635e-7-3.14159*m^3+1.9635e-7*x3+1.9635e-7*x6*(m+x2)/x4-0.002*3.14159*0.0005^2;
3.14159*m^3*x4/(m+x2)+1.9635e-7*x1*x5/(x1+x3)-1/6*1e-6;
(6*1.9635e-7*(m+x2)-3.14159*m^3)*x4/(m+x2)+1.9635e-7*x3*x5/(x1+x3)+1.9635e-7*x6-1/6*1e-6;
(0.05/(x1+x3))*(32*0.0010087*x5/0.0005^2*x3+7.16*0.07275*(3*(1.0087*x5/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x5/72.75)^(2/3))))-6455.68*x6;
0.05/(m+x2)*(32*0.0010087*x4/0.0005^2*x2+7.16*0.07275*(3*(1.0087*x4/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x4/72.75)^(2/3))))-6455.68*x6;

计算结果:
CODE:
函数表达式 1: 3.14159*0.0004^3+1.9635e-7*x1-0.002*3.14159*0.0005^2
         2: 6*(0.0004+x2)*1.9635e-7-3.14159*0.0004^3+1.9635e-7*x3+1.9635e-7*x6*(0.0004+x2)/x4-0.002*3.14159*0.0005^
            2
         3: 3.14159*0.0004^3*x4/(0.0004+x2)+1.9635e-7*x1*x5/(x1+x3)-1/6*1e-6
         4: (6*1.9635e-7*(0.0004+x2)-3.14159*0.0004^3)*x4/(0.0004+x2)+1.9635e-7*x3*x5/(x1+x3)+1.9635e-7*x6-1/6*1e
            -6
         5: (0.05/(x1+x3))*(32*0.0010087*x5/0.0005^2*x3+7.16*0.07275*(3*(1.0087*x5/72.75)^(2/3)/0.0005/(1+3.34*(1.0087
            *x5/72.75)^(2/3))))-6455.68*x6
         6: 0.05/(0.0004+x2)*(32*0.0010087*x4/0.0005^2*x2+7.16*0.07275*(3*(1.0087*x4/72.75)^(2/3)/0.0005/(1+3.34
            *(1.0087*x4/72.75)^(2/3))))-6455.68*x6
目标函数值: 8.44256812628831E-7
x1: 1.38116851215046
x2: 0.213584946434081
x3: 0.106474657467166
x4: 0.0176943028978422
x5: 0.2480594437683
x6: 0.0180988189842738
6个方程目标函数值:
ans =

  2.6982e-007


ans =

  3.1421e-007


ans =

-1.2143e-007


ans =

-1.3880e-007


ans =

  1.4211e-013


ans =

-8.5265e-014

1.5版本计算结果不唯一,以下再例举6组解:
CODE:
目标函数值: 8.81354127610376E-9
x1: 0.0270233957846693
x2: -4.08878886642551E-5
x3: 0.0126231922603729
x4: 0.0323838969507018
x5: 1.10773562695781
x6: 0.383966561657027


目标函数值: 5.88138553710961E-7
x1: 2.08840573452721
x2: -0.0811262956407749
x3: 0.416992754705403
x4: 0.19145905588163
x5: 1.1205806122223
x6: 0.187004870338678


目标函数值: 6.80817986394196E-7
x1: 2.10149925984767
x2: -0.218796314718131
x3: 0.718745532551135
x4: 0.109052962294469
x5: 0.42221573528721
x6: 0.10785410685195

目标函数值: 1.10547660307994E-6
x1: 2.53429273796369
x2: -0.218841716843157
x3: 1.13544861896696
x4: 0.431086688290742
x5: 1.38395310620881
x6: 0.42858810590596

目标函数值: 1.32464424554872E-6
x1: 4.35394653830248
x2: -0.286471171270745
x3: 2.04705166768062
x4: 0.401695771492555
x5: 1.24966197787108
x6: 0.39985126552927

目标函数值: 7.67093610988707E-7
x1: 1.6997802237498
x2: -0.00709436222448859
x3: -0.505554887761384
x4: 0.00623112985186669
x5: 0.00101373791179563
x6: -0.000417366283335469

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-11-05 13:40:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monixia

木虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-11-05 13:40:03
1stOpt代码(注意不是MATLAB软件代码):
Constant m=0.00040;
Parameters x(1:6);
Function 3.14159*m^3+1.9635e-7*x1-0.002*3.14159*0.0005^2;
6*(m+x2)*1.9635e-7-3.14159*m^3+1.9635e-7*x3+1.9635e-7*x6*(m+ ...

非常感谢你的解答,1stOpt用起来真方便。不过,我有个问题就是,我希望找到初值附近的零点,但是几乎每次算出来的值都差很多(至少应该没有负数出现)。是不是不太容易实现在初值附近寻找呢?
3楼2014-11-05 19:09:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by monixia at 2014-11-05 19:09:09
非常感谢你的解答,1stOpt用起来真方便。不过,我有个问题就是,我希望找到初值附近的零点,但是几乎每次算出来的值都差很多(至少应该没有负数出现)。是不是不太容易实现在初值附近寻找呢?...

可以设定x的取值范围
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2014-11-05 20:52:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by monixia at 2014-11-05 19:09:09
非常感谢你的解答,1stOpt用起来真方便。不过,我有个问题就是,我希望找到初值附近的零点,但是几乎每次算出来的值都差很多(至少应该没有负数出现)。是不是不太容易实现在初值附近寻找呢?...

比如:
让所有x都大于0:
CODE:
Constant m=0.00040;
Parameters x(1:6)[0,];
Function 3.14159*m^3+1.9635e-7*x1-0.002*3.14159*0.0005^2;
6*(m+x2)*1.9635e-7-3.14159*m^3+1.9635e-7*x3+1.9635e-7*x6*(m+x2)/x4-0.002*3.14159*0.0005^2;
3.14159*m^3*x4/(m+x2)+1.9635e-7*x1*x5/(x1+x3)-1/6*1e-6;
(6*1.9635e-7*(m+x2)-3.14159*m^3)*x4/(m+x2)+1.9635e-7*x3*x5/(x1+x3)+1.9635e-7*x6-1/6*1e-6;
(0.05/(x1+x3))*(32*0.0010087*x5/0.0005^2*x3+7.16*0.07275*(3*(1.0087*x5/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x5/72.75)^(2/3))))-6455.68*x6;
0.05/(m+x2)*(32*0.0010087*x4/0.0005^2*x2+7.16*0.07275*(3*(1.0087*x4/72.75)^(2/3)/0.0005/(1+3.34*(1.0087*x4/72.75)^(2/3))))-6455.68*x6;

计算结果:
目标函数值: 2.37290707692599E-8
x1: 0.0105848644277172
x2: 0.0161346934843435
x3: 0.000420183576622565
x4: 0.115861612534128
x5: 0.876247555934376
x6: 0.132259599167984
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2014-11-05 20:57:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monixia

木虫 (小有名气)

引用回帖:
5楼: Originally posted by 月只蓝 at 2014-11-05 20:57:57
比如:
让所有x都大于0:

Constant m=0.00040;
Parameters x(1:6);
Function 3.14159*m^3+1.9635e-7*x1-0.002*3.14159*0.0005^2;
6*(m+x2)*1.9635e-7-3.14159*m^3+1.9635e-7*x3+1.9635e-7*x6*(m+x2)/x4-0.0 ...

十分感谢您的回答!本打算用matlab解,现在就用1stopt吧。我有个小问题问一下,像这种多解的方程,我可以取接近实验值的一组解作为方程的解来验证方程的合理性吗?1stopt得到的解是否可靠呢?
6楼2014-11-08 10:42:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
6楼: Originally posted by monixia at 2014-11-08 10:42:38
十分感谢您的回答!本打算用matlab解,现在就用1stopt吧。我有个小问题问一下,像这种多解的方程,我可以取接近实验值的一组解作为方程的解来验证方程的合理性吗?1stopt得到的解是否可靠呢?...

1stopt得到的解是否可靠,你把求出来的解代回原方程就知道能达到多少精度了。
多解取接近实验值有物理意义。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2014-11-08 11:18:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 monixia 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 u1xkze8ybe 2026-07-30 7/350 2026-07-31 12:10 by syhhffkrym
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 u1xkze8ybe 2026-07-30 3/150 2026-07-31 12:08 by syhhffkrym
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 u1xkze8ybe 2026-07-30 6/300 2026-07-31 12:05 by syhhffkrym
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +6 锦衣卫寒战 2026-07-28 6/300 2026-07-31 11:27 by syl200707
[高分子] HXDI做水性聚氨酯乳液,是不是特别容易出渣 15+3 yuyusuv 2026-07-29 3/150 2026-07-31 09:21 by huizingga
[基金申请] 小木虫看见有人已经知道结果了 +15 1234567wang 2026-07-25 19/950 2026-07-31 08:30 by ZJTJZ
[基金申请] 2026年国自然面上资助率 +8 布布和一二 2026-07-30 8/400 2026-07-31 01:51 by alongwaytogo
[基金申请] 系统今天又提示维护了,估计离放榜不远了 +11 winnerche 2026-07-29 15/750 2026-07-30 23:08 by jnhyjjm
[基金申请] 微信指数没变化,科研之友没阅读 +14 wangze12014 2026-07-28 17/850 2026-07-30 20:10 by kissu88
[考博] 申请2027年材料/化学类博士 10+3 考研老狗? 2026-07-25 5/250 2026-07-30 19:33 by 白色木鱼
[基金申请] 你们的时间戳变了吗 +3 archvillain 2026-07-30 4/200 2026-07-30 18:53 by levinzhwen
[基金申请] 今年的WR进展到哪一步了? +5 wsgjhwz 2026-07-25 9/450 2026-07-30 12:59 by 可淡不可忘
[有机交流] 产物和副产物价值比较 30+4 小汤02 2026-07-27 5/250 2026-07-30 12:44 by czyzsu
[基金申请] 时间戳他又来了 +14 晓晓爱翠翠 2026-07-26 17/850 2026-07-29 16:30 by 呵呵二哥
[有机交流] 这个自发加氧反应的机理是什么? 50+4 YUAN2273 2026-07-25 7/350 2026-07-29 12:27 by xiaobenpu
[基金申请] 没消息就是被刷了呗 +13 lambert2014 2026-07-24 14/700 2026-07-29 10:38 by msh145800
[基金申请] 这种情况还有戏吗 +5 drbart 2026-07-27 11/550 2026-07-29 05:50 by drbart
[基金申请] 同事接到电话了,我却没有 +4 1234567wang 2026-07-27 4/200 2026-07-28 10:11 by GOODLUCKER
[基金申请] 准备明年的基金了 +5 Tide man 2026-07-27 5/250 2026-07-28 09:25 by newfuzzy1
[分析] 水蒸气蒸馏法乳化现象 +3 月光娇娇 2026-07-26 3/150 2026-07-26 23:25 by caiyun
信息提示
请填处理意见