Solve is more formal, like a mathematical problem, but it can be used informally also, like to solve a problem you had with a neighbor for example.
Straighten out, is in my understanding to correct someone's mistake, or a situation that someone else has caused. For example my father has to straighten out my problems with the credit company because I have no money to give them.
You can also straighten someone out. It means to force them, either verbally or physically to rectify a bad situation that they created. Often it can mean to beat someone up, so you simply straighten them out for whatever wrong they did to you.
Work something out can be to work out the answer to a puzzle, or it can mean when two people work out their differences, especially in a relationship...see the Beatles song 'we can work it out'
You can also work out what someone's motives are towards you...eg, 'I have worked out what she is doing'.
Smooth something over is similar to straighten something out, but without the threat of violence, it means to try and make peace from a difficult situation, usually you smooth over someone else's mistake/bad behavior.
Get to the bottom of something is like solving a mystery, so yes it can answer the question about motives or causes, for example getting to the bottom of a crime.
These are just basic explanations, you should look into them a little deeper for more nuanced shades of meaning.