楼主: 李梦博1234

[已解决] 求解非线性方程组时计算时间太长,是不是程序有问题呢?

[复制链接]

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-6 17:41:06 | 显示全部楼层
shihe 发表于 2018-12-6 17:31
你最好给出每个参数具体的范围限制
  1. Ga[20,30]
  2. T1[250,300]
  3. T3[350,420]
  4. T5[280,330]
复制代码
这是参数取值范围,剩下的两个没有范围

论坛优秀回答者

中级

856 麦片

财富积分


5001500


0

主题

2186

帖子

186

最佳答案
  • 关注者: 120
发表于 2018-12-6 17:46:12 | 显示全部楼层 |此回复为最佳答案
最好的近似解了:
ga: 25.5555546999781
t1: 250
t3: 420
t5: 330
lamd: 16.3884340272016
w: -0.00982740667292891

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-6 18:31:59 | 显示全部楼层
shihe 发表于 2018-12-6 17:46
最好的近似解了:
ga: 25.5555546999781
t1: 250

好的,方程感谢您

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-6 18:48:26 | 显示全部楼层
shihe 发表于 2018-12-6 17:46
最好的近似解了:
ga: 25.5555546999781
t1: 250

您好,还有个问题,如果不知道参数取值范围该咋办呢?

论坛优秀回答者

中级

856 麦片

财富积分


5001500


0

主题

2186

帖子

186

最佳答案
  • 关注者: 120
发表于 2018-12-6 22:04:55 | 显示全部楼层
那就看6#的结果

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-7 10:37:29 | 显示全部楼层
shihe 发表于 2018-12-6 22:04
那就看6#的结果

那个很明显不是啊::'(

论坛优秀回答者

中级

856 麦片

财富积分


5001500


0

主题

2186

帖子

186

最佳答案
  • 关注者: 120
发表于 2018-12-7 11:05:50 | 显示全部楼层
那就12#的结果

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-7 14:32:07 | 显示全部楼层

为啥我算的和你的不一样?
  1. Parameters Ga[0,100];
  2. Parameters T1[200,300];
  3. Parameters T3[300,500];
  4. Parameters T5[200,500];
  5. Function (1-Ga/500)^(-2)*log((Ga*(T3-306))/(Ga*(T3-303)-1500))+(1/Ga-1/500)^(-1)*(1/Ga-(T3-303)/(Ga*(T3-303)-1500))-(Ga/400-1)^(-2)*log((Ga*(293-T1))/(Ga*(295.5-T1)+1000))+(1/400-1/Ga)^(-1)*lamd*(T1/(Ga*T1-1000)-(T1+T3-T5)/(Ga*(T1+T3-T5)-1500))+w*(T3-T5)=0;
  6. -(1/400-1/Ga)^(-1)*(-Ga/(Ga*(295.5-T1)+1000)+1/(293-T1))+(Ga*(T3-T5)-1500)/(T5-T1)^2+lamd*Ga*(1/(Ga*T1-1000)-1/(Ga*(T1+T3-T5)-1500))+w*10=0;
  7. (1/Ga-1/500)^(-1)*(1/(T3-306)-Ga/(Ga*(T3-303)-1500))+Ga/(T5-T1)-lamd*(Ga/(Ga*(T1+T3-T5)-1500)-1/T3)+w*Ga=0;
  8. (Ga*(T1-T3)+1500)/(T5-T1)^2+lamd*(-1/T5+Ga/(Ga*(T3+T1-T5)-1500))-w*(Ga+10)=0;
  9. Ga*(T3-T5)-1500-10*(T5-T1)=0;
  10. (Ga*T1-1000)/T5-(Ga*(T1+T3-T5)-1500)/T3=0;
复制代码

这是方程组,下面是结果:
  1. ====== 结果 ======

  2. 迭代数: 2953
  3. 计算用时(时:分:秒:毫秒): 00:38:51:61
  4. 计算中止原因: 达到收敛判定标准
  5. 优化算法: 最大继承法
  6. 函数表达式 1: (1-ga/500)^(-2)*log((ga*(t3-306))/(ga*(t3-303)-1500))+(1/ga-1/500)^(-1)*(1/ga-(t3-303)/(ga*(t3-303)
  7.             -1500))-(ga/400-1)^(-2)*log((ga*(293-t1))/(ga*(295.5-t1)+1000))+(1/400-1/ga)^(-1)*lamd*(t1/(ga*t1-1000)
  8.             -(t1+t3-t5)/(ga*(t1+t3-t5)-1500))+w*(t3-t5)-(0)
  9.          2: -(1/400-1/ga)^(-1)*(-ga/(ga*(295.5-t1)+1000)+1/(293-t1))+(ga*(t3-t5)-1500)/(t5-t1)^2+lamd*ga*(1/(ga
  10.             *t1-1000)-1/(ga*(t1+t3-t5)-1500))+w*10-(0)
  11.          3: (1/ga-1/500)^(-1)*(1/(t3-306)-ga/(ga*(t3-303)-1500))+ga/(t5-t1)-lamd*(ga/(ga*(t1+t3-t5)-1500)-1/t3)
  12.             +w*ga-(0)
  13.          4: (ga*(t1-t3)+1500)/(t5-t1)^2+lamd*(-1/t5+ga/(ga*(t3+t1-t5)-1500))-w*(ga+10)-(0)
  14.          5: ga*(t3-t5)-1500-10*(t5-t1)-(0)
  15.          6: (ga*t1-1000)/t5-(ga*(t1+t3-t5)-1500)/t3-(0)
  16. 目标函数值: 1.33515604928422
  17. Ga: 26.1283404794204
  18. T1: 260.026473574409
  19. T3: 404.12184839648
  20. T5: 322.718891349617
  21. lamd: 58.1512366484342
  22. w: -0.0152713292201812

  23. ====== 计算结束 ======
复制代码

论坛优秀回答者

中级

856 麦片

财富积分


5001500


0

主题

2186

帖子

186

最佳答案
  • 关注者: 120
发表于 2018-12-7 15:25:39 | 显示全部楼层
1:Matlab里的Log()函数在1stOpt对应的应该是Ln();
2:原先你最后一个公式是:log((Ga*T1-1000)/T5)-log((Ga*(T1+T3-T5)-1500)/T3)
现在变成了:(Ga*T1-1000)/T5-(Ga*(T1+T3-T5)-1500)/T3=0

自己修正后再试试。

新手

7 麦片

财富积分


050


2

主题

17

帖子

0

最佳答案
 楼主| 发表于 2018-12-7 16:10:32 | 显示全部楼层
shihe 发表于 2018-12-7 15:25
1:Matlab里的Log()函数在1stOpt对应的应该是Ln();
2:原先你最后一个公式是:log((Ga*T1-1000)/T5)-log(( ...

最后那个公式log出错,我试了一下改成了ln还是出错,我就把log去掉了。用的是1.5免安装版
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表