FSolve - no solution found, last step ineffective

29 views (last 30 days)
My function looks like this:
function F=Fn2(t)
global wn a g
F=(wn{1}^2)*a{1}(1,1)*sin(wn{1}*t)+(wn{2}^2)*a{2}(1,1)*sin(wn{2}*t)-g;
end
where wn, a, and g are defined in my main program. I call the function like this:
tlo=fsolve(@Fn2,1)
but fsolve can't seem to find a solution to the equation and is returning: "fsolve stopped because the last step was ineffective. However, the vector of function values is not near zero, as measured by the default value of the function tolerance."
"a" and "wn" are always real, and I've messed around with changing fsolve's x0 position. Any ideas why it's not working? Thanks in advance.
  5 Comments
Matt J
Matt J on 28 Nov 2013
What are the values of wn,a, and g and what is the corresponding solution t?
Eli
Eli on 28 Nov 2013
Edited: Eli on 28 Nov 2013
wn{1}=4.628
a{1}(1,1)=-2.92
wn{2}=39.01
a{2}(1,1)=-.0049
g=32.17
This should yield tlo=0.766. I also plotted F exactly as it appears in the function Fn2 and can see that it clearly crosses the X axis around 0.766, so there's either a problem with how Fn2 is receiving input or with how I have fsolve set up

Sign in to comment.

Accepted Answer

Matt J
Matt J on 28 Nov 2013
FSOLVE can do it, but it has a rather narrow radius of capture around the desired tlo, roughly between 0.55 and .79
>> Fn2=@(t) (wn{1}^2)*a{1}(1,1)*sin(wn{1}*t)+(wn{2}^2)*a{2}(1,1)*sin(wn{2}*t)-g;
>> [tlo,fval] = fsolve(Fn2,.6,optimset('Display','none'))
tlo =
0.7667
fval =
7.1054e-15
  3 Comments
Matt J
Matt J on 28 Nov 2013
FZERO has a fair bit larger radius of capture, roughly between .4 and 1.01
>> [tlo,fval] = fzero(Fn2,1)
tlo =
0.7667
fval =
7.1054e-15
Eli
Eli on 28 Nov 2013
Thanks again Matt, it seems like FZERO is the way to go because I won't always have an estimate about where tlo will be.

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!