# Smoothing a unit step function

I want to smooth a unit step function for use in NDSolve so this function is a smooth function of time (t). How can I do the smoothing? The unit step function is defined by:

α = π/6;
Vbusd[t_] := 5 (1 - Exp[-t]);
Vbusq[t_] := 3 Exp[-t];

n = UnitStep[Vbusd[t]*Cos[t - α - π/6] - Vbusq[t]*Sin[t - α - π/6]]  -
UnitStep[Vbusd[t]*Cos[t - α - (5 π)/6] - Vbusq[t]*Sin[t - α - (5 π)/6]];

• After a second look I think your question is a little unclear. What do you really want? Smoothen n with NDSolve or find a smooth approximation of n which is to be used in NDSolve? Commented Jun 21, 2015 at 9:17
• Thanks alot for help. finding a smooth approximation of n which is to be used in NDSolve.
– mard
Commented Jun 21, 2015 at 9:21
• I normally use Tanh Commented Jun 21, 2015 at 10:48

## 1 Answer

These are the transitions I usually use: (both are $C^{\infty}$)

f[x_] = Piecewise[{{(Erf[Sqrt[2 π] ArcTanh[x]] + 1)/2, -1 < x < 1}}, UnitStep[x]]
g[x_] = Piecewise[{{(Tanh[Sqrt[2] Tan[π/2 x]] + 1)/2, -1 < x < 1}}, UnitStep[x]]

Plot[{UnitStep[x], f[x], g[x]}, {x, -2, 2}]


• Could you please post text (code-styled markdown) that can be cut and pasted rather than images of your code? This makes it easy for people to grab your solution and experiment with it. Commented Jun 21, 2015 at 12:45
• But I do not know time of rising and falling levels for difinition of unitstep and Tanh !
– mard
Commented Jun 21, 2015 at 13:24