Writing/understanding easing?

Hi People… and you Math-dudes who thinks all math is simple…

I am not at all good at math.
I do understand the Penner-easing, in how they work in general


Math.easeInCubic = function (t, b, c, d) {
    return c*(t/=d)*t*t + b;
}; 

One part of it makes out the “easing” part, with calculating a value between 0-1,
and then adds on the beginning and mulitplying it with the change.

But how can one learn all about how to make the magic part of it,
the thing that calculates the easing. I understand the great use of 0-1,
and I understand how to do an algorithm which makes a linear tween.
-but when understanding and knowing how to use sine and cos, and other
types -and still remain an easing non-linear curve is what I would love to learn.

I hope you can give pointers on how to think and how to do when making own tweens.

Thanks

/ martin