Ask Your Question
0

solve ode on given interval

asked 8 years ago

soking gravatar image

updated 8 years ago

Hi,

I would like to tell Sage to solve ode on a given interval that I will specify. My final goal is to use this method to solve ode that contains 'piecewise' function like 2*diff(u,x) + u == f(x), where

f = piecewise([((-1,0),0), ((0,1),x), ((1,2),2-x), (RealSet.unbounded_above_closed(2),0)])

Thanks.

Preview: (hide)

Comments

did you try the approach suggested in your previous post, to write f as a sum of unit_step functions? for instance, here it would be unit_step(t)*unit_step(1-t)*t + unit_step(t-1)*unit_step(2-t)*(-t+2). perhaps a method to_unit_step of piecewise functions could be useful to have..

mforets gravatar imagemforets ( 8 years ago )

No, I didn't think about the problem that way, I was rather think of a way to make Sage solve the ode on a specified interval. But, thanks, it's still something that works (at least for this problem).

soking gravatar imagesoking ( 8 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 8 years ago

calc314 gravatar image

Here is a numerical solution using that suggested from your previous post.

var('u x')
f=x*(unit_step(x)-unit_step(x-1))+(2-x)*(unit_step(x-1))
ode = -1/2*(u)+f
ans=desolve_rk4(ode,u,ics=[-1,3],ivar=x,end_points=2,step=0.1)
solnplot=line(ans,color='red')
dirfield=streamline_plot(ode,(x,-1,2),(u,-1,4))
solnplot+dirfield
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

1 follower

Stats

Asked: 8 years ago

Seen: 409 times

Last updated: Jun 13 '17