"Sam " <email@example.com> wrote in message <firstname.lastname@example.org>... > Hey y'all, I'm very confused as to how to numerically incorporate dirac delta behaviour into my differential equation. Maybe I'm using a wrong approach? I keep getting error messages to no avail. Any advice would be greatly appreciated! > > function dirac > close all > clc; clear > > %Parameters: > G=1.07; > w=2*pi; > w0=(1.5)*w; > B=(w0)/4; > > % Initial Conditions > y0 = [0,0]; > > % Make a theta vs. time plot > [t,y] = ode23(@f,[0 25],y0,,G,w,w0,B); > > hold all > plot(t,y(:,1)) > > function dydt = f(t,y,G,w,w0,B) > dydt = [y(2);-2*B*y(2)-(w0^2)*sin(y(1))+G*(w0^2)*cos(w*t)+dirac(t-5)]; - - - - - - - - - - - You cannot actually do numerical computation using the dirac delta function directly. It is only numerically meaningful in its integrated form as a unit step function. That is, its integral from 0 to 0 is understood to be 1. That of course is impossible for ordinary numerical integration to accomplish. For that reason you have to treat it in special ways such as with the method Bruno has suggested. Some of the symbolic tools are also able to handle it properly but never, never try to compute numerically with it directly.