Finding a root with interval constraint
2 次查看(过去 30 天)
显示 更早的评论
Hello there!
I am trying to find a point x within the time interval [t-1,t] (for some t, say t = 3) so that the function attains value zero. That is, I want to solve "Q_0 + integral(a+b*sin(c*t+d)-mu,t-1,x) = 0" for x in [t-1,t]. My code is the following
y = fsolve(@(x) Q_0+(a-mu)*(x-t+1)-(b/c)*cos(c*x+d)+(b/c)*cos(c*(t-1)+d),0,optimset('Display','off'))
wherein (a,b,c,d) satisfy a + b*sin(c*t+d), and Q_0 and mu are constants. This code has no problem. However, the solution may sometimes be outside the time interval [t-1,t], which is not what I want.
So, my question is if there is a way to restrict the routine to find a solution that lies within [t-1,t] exactly?
Thanks!
0 个评论
采纳的回答
Walter Roberson
2014-1-24
As your x0 is a scalar (0), your x are scalar, and that implies you can use fzero() instead of fsolve(). With fzero() you can pass the interval [t-1 t] as your x0.
5 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!