y=@(T) I*T*sind(A)-(0.5*G*(T^2));
root = fzero(y, 0)
abouve eqation is for a projectile that projected at an angle (gose in a kind of ar half oval shape)
want to find the time it hist ground but fzero only gives me the biginning which is 0

23 件のコメント

Walter Roberson
Walter Roberson 2011 年 2 月 24 日
Maybe it just doesn't like buxZED... won't let me submit an answer to this one.
Walter Roberson
Walter Roberson 2011 年 2 月 24 日
root = fzero(y,[eps, realmax])
buxZED
buxZED 2011 年 2 月 24 日
any clue why?
can you post as a comment?
Paulo Silva
Paulo Silva 2011 年 2 月 24 日
Hey Walter, answers stop working for me too :(
We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.
buxZED
buxZED 2011 年 2 月 24 日
??? Error using ==> fzero at 260
Function values at interval endpoints must be finite and real.
Error in ==> p34 at 26
root = fzero(y,[eps, realmax])
>>
buxZED
buxZED 2011 年 2 月 24 日
root = fzero(y,eps, realmax)
gives me a - answer, imposible
Matt Fig
Matt Fig 2011 年 2 月 24 日
Plot the function, look at the plot and pick a closer guess than zero.
buxZED
buxZED 2011 年 2 月 24 日
@matt Fig
that was my inicial thought
but we are not alowed to use neumerical methods or guess work
Matt Fig
Matt Fig 2011 年 2 月 24 日
You do realize that FZERO is a numerical root finder, right?
buxZED
buxZED 2011 年 2 月 24 日
is there a way to force fzero to go to the next positive root?
Walter Roberson
Walter Roberson 2011 年 2 月 24 日
Ummm, make it fzero(y,[eps,sqrt(realmax)/G]
Using fzero(y,eps,realmax) would cause realmax to be interpreted as an Option, and then it would use eps as the starting guess, not constrained from going backwards.
Walter Roberson
Walter Roberson 2011 年 2 月 24 日
No, there is no way to force fzero to go to the next positive root. You can only exclude the area you already searched from the area fzero is to search next.
Matt Fig
Matt Fig 2011 年 2 月 24 日
rt = 0;
d = .1;
cnt = 1;
while ~rt
rt = fzero(y,rt+d*cnt);
cnt = cnt + 1;
end
buxZED
buxZED 2011 年 2 月 24 日
it works
but i want to understand what while ~rt means (what dose ~ say)
dose this stop counting as it finds the first root after zero?
Walter Roberson
Walter Roberson 2011 年 2 月 24 日
~ is logical negation. It is true if and only if the thing being tested is exactly 0.
buxZED
buxZED 2011 年 2 月 24 日
so dose this stops finding roots after it reached the 1st root after 0?
Matt Fig
Matt Fig 2011 年 2 月 24 日
When rt is not zero, then ~rt is false. That would stop the WHILE loop.
buxZED
buxZED 2011 年 2 月 24 日
y=@(T) I*T*sind(A)-(0.5*G*(T^2));
%root = fzero(y, eps, realmax)
rt = 0;
d = .1;
cnt = 1;
while ~rt
rt = fzero(y,rt+d*cnt);
cnt = cnt + 1;
end
fprintf('the root is %g\n' , rt)
gives me the root is 7.11215e-026
but its not posible as the projectile takes around 1.5sec to reach maximum hight, the root should be around 3
can you point me in the right derection?
buxZED
buxZED 2011 年 2 月 24 日
is there a way to systematicaly increase the T value till Y become zero and get that value?
Matt Fig
Matt Fig 2011 年 2 月 24 日
Change from:
while ~rt
to:
while rt<.1
or similar. It might help if you actually gave us some values for I, A and G.
buxZED
buxZED 2011 年 2 月 24 日
it worked Matt
thank you so much
and also ~ would allow me to use matlab in many new ways
thank you again :D
Matt Tearle
Matt Tearle 2011 年 2 月 25 日
Can I suggest using an initial guess of 2*I*sind(A)/G? Just sayin'...
Matt Fig
Matt Fig 2011 年 2 月 25 日
Come on now, Matt! Where is the fun of solving the equation with your brain instead of making MATLAB do it?

サインインしてコメントする。

 採用された回答

Honglei Chen
Honglei Chen 2012 年 9 月 17 日

0 投票

The anwser is in the comments above
From Matt Fig
rt = 0;
d = .1;
cnt = 1;
while rt<.1
rt = fzero(y,rt+d*cnt);
cnt = cnt + 1;
end

2 件のコメント

Matt Fig
Matt Fig 2012 年 9 月 17 日
Digging deep, Honglei! How did you come across this one from over a year ago?
Honglei Chen
Honglei Chen 2012 年 9 月 17 日
I'm helping cleaning up some old, unanswered questions :)

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by