24小时热门版块排行榜    

查看: 1011  |  回复: 10

tmw1987

铁杆木虫 (正式写手)

[交流] 【求助】函数求零点!!!苦恼挣扎求解中…… 已有4人参与

大侠:
    小弟我遇到如下图所示的周期性函数,需要求解前四十个零点值对应的x值。我用fzero函数求解,但是只能一个个求解,感觉如此强大的matlab肯定有更加高明的方法可以求解。
   函数和图形都已知,如何一次性求解多个零点值!
  请赐教!!!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tmw1987

铁杆木虫 (正式写手)

请大侠出动!!!
2楼2010-06-16 18:12:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csdww928

金虫 (正式写手)


adu886886(金币+1):谢谢提供意见 2010-06-16 19:05:41
find不是就可以了吗?
3楼2010-06-16 18:49:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

引用回帖:
Originally posted by tmw1987 at 2010-06-16 17:59:04:
大侠:
    小弟我遇到如下图所示的周期性函数,需要求解前四十个零点值对应的x值。我用fzero函数求解,但是只能一个个求解,感觉如此强大的matlab肯定有更加高明的方法可以求解。
   函数和图形都已知,如何一 ...

给出函数看看 呵呵 fzero是针对你给出的区间的
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
4楼2010-06-16 19:30:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tmw1987

铁杆木虫 (正式写手)

引用回帖:
Originally posted by lijinfeng042 at 2010-06-16 19:30:06:

给出函数看看 呵呵 fzero是针对你给出的区间的

大侠:
    您好!附图是公式,其中K,L,l,a1,a2都是已知的参数,求x的数值!
    请指点!
5楼2010-06-16 19:37:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)


robert2020(金币+1):好久不见了,辛苦了! 2010-06-16 22:12:06
引用回帖:
Originally posted by tmw1987 at 2010-06-16 17:59:04:
大侠:
    小弟我遇到如下图所示的周期性函数,需要求解前四十个零点值对应的x值。我用fzero函数求解,但是只能一个个求解,感觉如此强大的matlab肯定有更加高明的方法可以求解。
   函数和图形都已知,如何一 ...

if Yn*Yn+1<0, then fzero~=(Xn+Xn+1)/2
6楼2010-06-16 20:14:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


tmw1987(金币+3):谢谢专家!!! 2010-06-16 22:10:40
robert2020(金币+1):辛苦了~~ 2010-06-16 22:12:28
引用回帖:
Originally posted by tmw1987 at 2010-06-16 17:59:04:
大侠:
    小弟我遇到如下图所示的周期性函数,需要求解前四十个零点值对应的x值。我用fzero函数求解,但是只能一个个求解,感觉如此强大的matlab肯定有更加高明的方法可以求解。
   函数和图形都已知,如何一 ...

给个参数 呵呵喝得晕晕的 用全是1模拟 图像太那个......
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
7楼2010-06-16 21:44:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tmw1987

铁杆木虫 (正式写手)

引用回帖:
Originally posted by lijinfeng042 at 2010-06-16 21:44:39:

给个参数 呵呵喝得晕晕的 用全是1模拟 图像太那个......

K=0.2040,L=0.022,l=0.02,a2=1.6e-7,a1=1e-7
非常感谢!!!
8楼2010-06-16 22:13:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tmw1987

铁杆木虫 (正式写手)

请大侠出动!!!
9楼2010-06-16 22:34:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
robert2020(金币+2):辛苦了~~ 2010-06-17 13:43:41
引用回帖:
Originally posted by tmw1987 at 2010-06-16 22:13:41:

K=0.2040,L=0.022,l=0.02,a2=1.6e-7,a1=1e-7
非常感谢!!!

一时也没什么好方法 还是原始那种 在一定的精度里寻找
>> myfun=inline('(1-0.2040)*sin((0.022-0.02)*x/sqrt(1.6e-7)-x*0.02/sqrt(1e-7))-(0.2040+0.02)*sin((0.022-0.02)*x/sqrt(1.6e-7)-x*0.02/sqrt(1e-7)) ','x')
myfun =
     Inline function:
     myfun(x) = (1-0.2040)*sin((0.022-0.02)*x/sqrt(1.6e-7)-x*0.02/sqrt(1e-7))-(0.2040+0.02)*sin((0.022-0.02)*x/sqrt(1.6e-7)-x*0.02/sqrt(1e-7))

>> [x,Fval,exitflag]=fsolve(myfun,[0:0.05:1]')

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.



x =
            0
     0.053937
      0.10787
      0.16181
      0.21575
      0.26969
      0.37756
     -0.16181
      0.32362
       0.4315
      0.48543
      0.53937
      0.59331
      0.64724
      0.70118
      0.75512
      0.80906
      0.86299
      0.91693
      0.80906
       1.1327
Fval =
            0
  -7.005e-017
   1.401e-016
-2.1015e-016
   2.802e-016
  1.5072e-009
-2.5225e-015
  2.1015e-016
  4.4846e-015
  4.6247e-015
-6.3045e-016
   7.005e-016
  1.2616e-015
   8.406e-016
-2.9428e-015
   9.807e-016
  9.8141e-016
  1.1208e-015
  -3.223e-015
  5.0457e-015
  5.6111e-016
exitflag =
     1
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
10楼2010-06-16 23:05:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tmw1987 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见