Many things could cause what you are describing. Without scanning your car's computer for what is going on it would be hit and miss diagnosing the cause(s). A number of people are not aware of this but many auto parts stores, including AutoZone, offer free diagnostic hook-ups. I would call around to find an auto parts store that does the free diagnostic scan on your car's computer. This is not a direct solution to your problem. It is the most economical and feasible one I can think of.
The computer diagnostic scanners that the auto parts store will hook up for free is the same one(s) used by many mechanics who will charge you for the service.