Processing math: 0%

First time here? Check out the FAQ!

Ask Your Question
0

Solving an ODE system with initial conditions

asked 12 years ago

dingo_d gravatar image

updated 12 years ago

calc314 gravatar image

Hi!

I want to solve system of equations with initial conditions:

x

y''(t)=-g-\gamma y'(t)

with the initial conditions:

x(0)=0, y(0)=0, x'(0)=v_0 \cos(\theta), y'(0)=v_0 \sin(\theta).

I've solved this with Mathematica with no problem, but I don't know how to work in Sage, and friend has asked me for help. Now, I've searched a bit, and I made this:

t, G, g, v0, T = var('t G g v0 T')
x(t) = function('x',t)
y(t) = function('y',t)
assume(g>0)
assume(G>0)
X = x(t).diff(t,2) == - G*x(t).diff(t,1)
Y = y(t).diff(t,2) == - g - G*y(t).diff(t,1)
desolve_system([X,Y],[x,y],ics = [0,0,v0*cos(T),v0*sin(T)],ivar=t)

And I get, as a result this:

[x(t) == -e^(-G*t)*D[0](x)(0)/G + D[0](x)(0)/G, y(t) == -g*t/G -
(G*D[0](y)(0) + g)*e^(-G*t)/G^2 + (G^2*v0*cos(T) + G*D[0](y)(0) +
g)/G^2]

Now, Mathematica will give me entirely different result. So what am I doing wrong? :\ I defined the variables, I defined the functions, made differential equations. I even tried solving the equations separately (without initial conditions), and the solutions are different.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 12 years ago

calc314 gravatar image

I don't know what you're getting from Mathematica. There may be an issue with getting Sage to use the initial conditions on the derivative. I've removed the initial conditions in your command and used substitutions to take care of the initial conditions.

The following code all indicates that the solutions are right.

ans=desolve_system([X,Y],[x,y],ivar=t)
x1(t)=ans[0].rhs().subs(x(0)==0).subs(diff(x,t,1)(0)==v0*cos(T))
print x1(t)
print x1(0)
print diff(x1,t)(0)
diff(x1(t),t,2)+G*diff(x1(t),t,1)

and

y1(t)=ans[1].rhs().subs(y(0)==0).subs(diff(y,t,1)(0)==v0*sin(T))
print y1(t)
print y1(0)
print diff(y1,t)(0).simplify_full()
lhs=diff(y1(t),t,2)+G*diff(y1(t),t,1)+g
lhs.simplify_full()
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 12 years ago

Seen: 1,260 times

Last updated: Apr 12 '13