Finding a root with interval constraint
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Chien-Chia Huang
am 24 Jan. 2014
Kommentiert: Walter Roberson
am 25 Jan. 2014
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 Kommentare
Akzeptierte Antwort
Walter Roberson
am 24 Jan. 2014
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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!