Marti5 is right...you need to get your fault codes or have a diagnostics run on it. Instructions for finding your fault codes yourself can be found
here. It takes a couple of tries but does get easier once you get it the first time.
If you don't find any fault codes then you should be taking it to a qualified BMW mechanic to do a diagnostic. It can be many different things so you need to nail it down before you start blaming components.