Try changing the fluid and/or reset adaptations? Both topics are on here, do a search.
If no codes are being thrown use Chevron Techron fuel injector cleaner (concentrate). It solves rpm fluctuating upon cold start-up. Also, for most BMW problems start off by scanning your car with the Peake Research Tool. It contains the actual BMW codes. If you want to register a newly installed battery for free (just buy a $10 cable) and google/download BMWLogger