查看: 400|回复: 6|关注: 0

[已答复] 数值解非线性方程组时找不到解,大神们快救救孩子吧/哭

[复制链接]

新手

5 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
发表于 2019-1-23 17:10:58 | 显示全部楼层 |阅读模式
function y=fun(x)
alpha=0.125*pi/180;x1=0;z1=5;x2=0;z2=25;L1=5;L2=5;f=30;h0=20;n2=1.49386;
y(1) = tan(alpha) - x(1)/x(2);
y(2) = n2*sin(atan((x1 - x(1))/(z1 - x(2))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 - alpha + atan((x1 - x(1))/(z1 - x(2)))) ;
y(3) = n2*sin(atan((x2 - x(3))/(z2 - x(4))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 + atan((x2 - x(3))/(z2 - x(4))));
y(4) = L1 + L2 - f + h0 - h0*n2 + n2*((x(1) - x(3))^2 + (x(2) - x(4))^2)^(1/2);
end
----------------------------------------------------------------------
命令行输入
>> fsolve('fun',[0.1 5.1 0.1 25.1])
----------------------------------------------------------------------
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 default value of the function tolerance.

合理的解应该是在初值附近的,可为什么解不出来呢

论坛优秀回答者

入门

150 麦片

财富积分


50500


0

主题

357

帖子

32

最佳答案
  • 关注者: 7
发表于 2019-1-25 20:11:51 | 显示全部楼层
用ga试试
x0 =

    0.4001    5.0017    0.4001   25.0017

新手

5 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
 楼主| 发表于 2019-1-25 20:18:04 | 显示全部楼层

谢谢您的回复,但是我这方面了解的不多,请问ga是遗传算法吗?只要在我的代码上加一段语句就行了吗?

论坛优秀回答者

权威

3372 麦片

财富积分



2

主题

3640

帖子

758

最佳答案
  • 关注者: 154
发表于 2019-1-25 21:01:00 | 显示全部楼层
多解?
0.010908370745773   5.000020907980749  -0.005627034456562  25.000014072488948
0.010936474914031   5.012902889365746 -19.713942662738194   1.706977450852035
0.010829819303442   4.964015630533090  11.024819046149078 -11.730056419409420

1、1.0e-12 *
   0.000084134088585
   0.017487747361322
   0.114542923757011
  -0.003552713678801

2、
   1.0e-13 *
  -0.000641847686111
  -0.939248678832882
   0.001110223024625
   0.071054273576010

3、1.0e-07 *
  -0.000024655082663
  -0.019146747520793
   0.000456688020734
   0.111196740704145

论坛优秀回答者

中级

918 麦片

财富积分


5001500


0

主题

2325

帖子

199

最佳答案
  • 关注者: 130
发表于 2019-1-25 22:24:14 | 显示全部楼层
不加约束多解,1stOpt求解,还有另外两组解:

  1. Constant alpha=0.125*pi/180,xx1=0,z1=5,xx2=0,z2=25,L1=5,L2=5,f=30,h0=20,n2=1.49386;
  2. Parameter x(4);
  3. Function
  4. tan(alpha) - x(1)/x(2);
  5. n2*sin(atan((xx1 - x(1))/(z1 - x(2))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 - alpha + atan((xx1 - x(1))/(z1 - x(2)))) ;
  6. n2*sin(atan((xx2 - x(3))/(z2 - x(4))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 + atan((xx2 - x(3))/(z2 - x(4))));
  7. L1 + L2 - f + h0 - h0*n2 + n2*((x(1) - x(3))^2 + (x(2) - x(4))^2)^(1/2);
复制代码


        1                                 2
x1        -15249.5479714931        15160.6492730515
x2        -6989866.84033214        6949118.74728027
x3        -15234.6608770735        15145.7621785901
x4        -6989880.19602081        6949132.10296889

新手

5 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
 楼主| 发表于 2019-1-30 16:37:19 | 显示全部楼层

您好,我用ga每运行一次就得出不同的解,而且差别非常大,您给出的解非常符合问题的要求,能请您贴出具体代码吗?万分感谢了!

新手

5 麦片

财富积分


050


2

主题

8

帖子

0

最佳答案
 楼主| 发表于 2019-1-30 16:41:13 | 显示全部楼层

您好,我用ga每运行一次就得出不同的解,而且差别非常大,您给出的解非常符合问题的要求,能请您贴出具体代码吗?万分感谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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