# Isolate variable in trig equation

• Apr 27th 2011, 11:45 AM
cppProgrammer
Isolate variable in trig equation
Is it possible to solve the following equation for the variable t, where t is both inside and outside of a trig function?

x = cos(a + w*t) + v*t
• Apr 27th 2011, 12:08 PM
Ackbeet
Not possible analytically. You'd have to do it numerically. Do you have a specific x, a, w, and v in mind?
• Apr 27th 2011, 12:20 PM
cppProgrammer
Okay. How about for the following values?

x = 1
a = 0.5*pi
w = pi
v = 2
• Apr 27th 2011, 12:25 PM
Ackbeet
Check out this and this. I would conclude that there is only one solution.
• Apr 27th 2011, 02:50 PM
topsquark
Quote:

Originally Posted by cppProgrammer
Is it possible to solve the following equation for the variable t, where t is both inside and outside of a trig function?

x = cos(a + w*t) + v*t

Out of curiosity, where did this equation come from? It looks like the motion of an object attached to a spring that is moving at a constant speed. You don't see that kind of problem very often.

-Dan
• Apr 28th 2011, 07:02 AM
cppProgrammer
Quote:

Originally Posted by topsquark
Out of curiosity, where did this equation come from? It looks like the motion of an object attached to a spring that is moving at a constant speed. You don't see that kind of problem very often.

-Dan

I'm trying to figure out a precise and reliable way to determine when two convex polygons collide in 2d. With rotation and linear motion, things get complicated.

My thinking is to describe the motion of one of the polygons from the other's frame of reference and then check the path of each of its points against each of the stationary object's edges.

The equation's more complicated than what i wrote but i thought i'd start at the simplest scenario, with only one polygon in rotation and linear motion, and work my way up.

here's a better description of the equation i posted:

x = cos(a + w*t) + v*t, where
a is the starting orientation of point about the center of its orbit,
w is the point's angular velocity,
v is the x component of the point of rotation's linear velocity, and
t is time

I was hoping, since the path of the point in the xt and yt planes is well defined, i might be able to find the values of t for which x is a specific value and then check the value of y at t. I'm a bit out of my depth though, trying to solve the equation.

It seems this isn't possible. I appreciate the help though.
• Apr 28th 2011, 07:10 AM
topsquark
Quote:

Originally Posted by cppProgrammer
...It seems this isn't possible....

Not for general values of the variables, but if you have specific values numerical methods are always an option. One possibility is the Newton-Raphson method. There may be better ones for your specific form of equation, but this one has the advantage of simplicity.

An interesting problem. Good luck with it.

-Dan
• Apr 28th 2011, 11:56 AM
cppProgrammer
The Newton method seems very well suited to this problem. I'm looking forward to implementing it. Thanks for the input.