cooheting 发表于 2011-5-18 19:40:19

交点值求解的简便方法请教

本帖最后由 cooheting 于 2011-5-18 19:43 编辑

求两个符号函数图形的交点值。两符号函数都是Y1,Y2都是关于x的函数,方程很复杂,用二分法可以将这个算出来,但是太慢,用fsolve也解不了。所以现在在寻找一种更简单快捷的算法,还请各位大侠不吝赐教!非常感谢!

qibbxxt 发表于 2011-5-18 19:40:20

在你的程序后面加上这两句话,根据图像位置选取初值,用fsolve可以求解出来 = ginput(8);
= fsolve(matlabFunction(y1-y2),x0);结果为:>> x

x =

   1.526451614696195
   1.526510732898834
   1.526932841995608
   1.526967855947735
   1.527314743225607
   1.527332660409717
   1.527602005077015
   1.527609348762901

>> fval

fval =

1.0e-005 *

   0.002601063897600
   0.002475371729815
-0.000584077497479
-0.002463275450282
   0.029434522730298
-0.012834425433539
-0.493685365654528
   0.029757211450487

cooheting 发表于 2011-5-18 21:46:42

刚找到了一个更好一点的办法,近似的,不用迭代。用矩阵算更快一点

messenger 发表于 2011-5-19 09:22:41

什么“更好一点的办法”?直接说出来得了,还遮遮掩掩的。如果你不与别人分享,别人也不会和你分享。

刚找到了一个更好一点的办法,近似的,不用迭代。用矩阵算更快一点
cooheting 发表于 2011-5-18 21:46 http://forum.simwe.com/images/common/back.gif

guojunhang 发表于 2011-5-19 13:48:38

如果能画出图形出来,我倒是有个办法
使用ginput命令可以捕捉鼠标的位置,并返回鼠标点击位置的坐标
这样只要点几下鼠标,就能获得交点的坐标,相当于求解了方程
如果配合上放大操作,同时画图时的间隔缩小一些,能获得较为精确的解

guojunhang 发表于 2011-5-20 10:51:50

怒赞一下楼上的版主,领教了

cooheting 发表于 2011-5-20 12:10:49

本帖最后由 cooheting 于 2011-5-20 12:12 编辑

非常感谢楼上各位!特别是qibbxxt版主!!
5# qibbxxt

cooheting 发表于 2011-5-20 23:36:16

用qibbxxt版主的方法是可以求出解来,可是求得的结果中好像未包含所有的解,且其中有些值也并不是解。特再次向qibbxxt版及各位高手请教!
2# qibbxxt

qibbxxt 发表于 2011-5-21 15:06:35

8# cooheting
恩,解的准确性和初值有关系,你可以根据程序,把图形放大,点出准确的初值位置
这样的话,应该可以求出来的
另外,你说的哪一些解不是解?愿闻其祥
页: [1]
查看完整版本: 交点值求解的简便方法请教