Finding the Maximum/Minimum value of a function

13 次查看(过去 30 天)
This seems to be quite a simple thing to do, but for some ungodly reason i am having unimaginable trouble doing so, on my Casio calculator its simple as Pie, you put in the function and say find maximum between this point and this point, however I cant for the life of me figure out how to do it on this, and i tried a whole bunch of things that kept giving me errors, i was hoping if someone could help me with this it will be amazing.
What i would like to know is.... How to find the maximum of a function, I am not posting the whole code, just the thing that i am having trouble with..... and this is it....
x(t)=0.03106*exp(-21.43*t)*sin(32.2*t)
v(t)=diff(x(t));
a(t)=diff(v(t));
jerk(t)=diff(a(t));
G=solve(jerk(t)==0,t>0)
G=vpa(G,8)
ezplot (a(t),[0,0.5]) ; title a(t)
Now this is where the problem begins... to solve for maximum acceleration I am differentiating acceleration and then making that equal to ZERO, which should give me the time at which acceleration is ZERO However It is outputting a value for G which is not coherent with the ezplot, why? and how do I fix this?
Any help would be very greatfully appreciated and thanks in advance!!!
Just a little bit more info, It seems that whatever is "outisde" the ezplot the equation COMPLETELY diregards, it is wierd but i am telling the truth, at one point i wanted to find the maximum of x(t), which say it was at t=0.5 but it showed me the maximum to be t=0.46 JUST because the top of the graph was cut and 0.46 was the "maximum" of the graph that ezplot saw what is going on???? if someone can please confirm I am not insane that would be great.

采纳的回答

Walter Roberson
Walter Roberson 2015-8-23
What value of G is it outputting?
When you apply solve() to something that is not a polynomial, it is not certain that it will be able to find all of the roots; it might return only one numeric root and that one root could be anywhere. There are an infinite number of solutions spaced pi/32.2 apart. The first positive one is at approximately -(5/161)*arctan(10976809340/56816825393)+5/161*pi -- approximately because it depends on whether 0.03106 means 3106/10000 exactly or if the 0.03106 is to be interpreted as 0.03106 +/- 0.000005 .
  3 个评论
Walter Roberson
Walter Roberson 2015-8-25
As you are going to name a numeric range:
G = vpasolve(jerk(t)=0, t, [0, 0.15])
0.15>t>0 does not mean what you would expect: it is parsed as ((0.15>t)>0) and the first part (0.15>t) returns a value of 1 if the condition is true and 0 if the condition is false. So you would then proceed to test either 1>0 or 0>0 . The first of those is of course true and the second is false -- which turns out to be the same as if you had just tested 0.15>t . In MATLAB break up your range tests
0.15 > 0 & t > 0
Eli Kroitor
Eli Kroitor 2015-8-25
Hey walter thank you so much for that! I now understand what i did wrong, i never even knew vpasolve even exsisted! again thank you so much, i always seem to have trouble with the simplest things in matlab, I think something should be straight forward and easy awhich leads me to cutting corners, and when it doesent work i just get more and more impatient which just leads to more and more mistakes, Thanks again haha

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Particle & Nuclear Physics 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by