# Not getting wet when it rains

## Mathematical description of the problem

Sometimes one wonders if when in a thunderstorm the rain
comes from behind there is an optimum walking speed that 
allows to get less wet than normally.:

In order to determine if this is true it is helful to build
a small model of yourself that is easily handled with
mathematical means

If you happened to be exacly rectangular in shape the top
of your head would obviously be hit by an amount of water
that depends on the following factors:
 * The speed v[Rain\,y] of the raindrops
 * The amount p of water air that consists of rain
 * And the area A[Top] that is hit by the rain:

V_Top:V[Top]=p*v[Rain\,y]*A[Top]*t;

The amount of rain that will hit your front and your back
will be zero if you are moving forwards as fast as the rain
does and will be higher the more the two speeds deviate from
another:

V_Sides:V[Sides]=p*abs(v[Rain\,x]-v[Walk\,x])*A[Sides]*t;

The last calculations can be added up to a total amount of
rain per second:

V=V[Top]+V[Sides];
V_total:at(%,[V_Top,V_Sides]);

## One solution

If the main goal is to get less wet in a fixed amount of time
there clearly is a solution: Walk exactly as fast as the wind 
makes the rain move horizontally:

Q=V/t;
at(%,V_total);
Q_total:ratsimp(%);

The constants that were picked in order to be able to display 
the following animation were a little bit random, to be honest.
But they are good enough to show the fundamental shape of the
curves.

load("draw")$

with_slider_draw(
    vr,makelist(i,i,-10,10),
    title=concat("Rain velocity in x-direction:",vr),
    explicit(
       at(
            rhs(Q_total),
            [
                p=.01,
                v[Rain\,y]=20,
                v[Rain\,x]=vr,
                A[Top]=.1,
                A[Sides]=.6
            ]
        ),
        v[Walk\,x],-10,10
    ),
    grid=true,
    yrange=[0,.14],

    ylabel="Amount of water per second",
    xlabel="Walking speed"
)$

## A second solution

If your aim is to arrive at home at least half-way dry it is the 
amount of water per meter that counts, not the amount of water per time

The total amount of water after having walked for the distance x is easy
to calculate:

x=v[Walk\,x]*t;
solve(%,t);
s1:at(V_total,%);

The amount of water per distance will be calculated by maxima instead:

Q='diff(V,x);
Q_perMeter:ev(%,s1,diff);

This time the meaning of the equation is more difficult to make out:

with_slider_draw(
    vr,makelist(i,i,-10,10),
    title=concat("Rain velocity in x-direction:",vr),
    explicit(
        at(
            rhs(Q_perMeter),
            [
                p=.01,
                v[Rain\,y]=20,
                v[Rain\,x]=vr,
                A[Top]=.1,
                A[Sides]=.6

            ]
        ),
        v[Walk\,x],0,10
    ),
    grid=true,
    yrange=[0,2],
  ylabel="Amount of water per second",
    xlabel="Walking speed"
)$

The overall shape of the curve shows that if you move too slow you will stay 
in the rain for too long a time. But wait until we zoom into it:

with_slider_draw(
    vr,makelist(i,i,-10,10),
    title=concat("Rain velocity in x-direction:",vr),
    explicit(
        at(
            rhs(Q_perMeter),
            [
               p=.01,
                v[Rain\,y]=20,
                v[Rain\,x]=vr,
                A[Top]=.1,
                A[Sides]=.6
            ]
        ),
        v[Walk\,x],0,60
    ),
    grid=true,
    yrange=[0,.04],
    ylabel="Amount of water per second",
    xlabel="Walking speed"
)$

It seems that this time there is a optimum speed, too - if the rain is falling horizontally
enough.

## The total amount of water in a given distance

Just to make this document contain a nice integral sign:

V[Water]=integrate(Q[Rain](x),x,0,Distance);

## Credits

Special Thanks to Robin Lehmann and Marco Juresic for asking this question in 1996!

This file was generated by the HTML export of a post-15.04 wxMaxima with MathJAX enabled.