Hi Sergey, this is one of those situations where English people tend to 'break the rules'!
We use 'must' as a strong 'obligation', either as something we have committed ourselves to doing, or perhaps as an order, e.g. 'I must get on with my work.' 'You must get that ceiling fixed.' 'You must be careful when you drive in the dark.' So we use it as an imperative.
But, we also use it as an assumption, e.g 'You must think I'm mad!' "You must be cold if the heating is broken.'
This breaks the grammar rule of only using it when we have clear evidence that something is true. (So for instance, although the heating is broken, it is not necessarily true that you are cold, therefore it would be grammatically incorrect to use 'must' in this instance, even though we do actually use it this way in speech.)
Likewise, we break the grammar rule with 'have to'. As with 'must' we use it as a way of talking about something we have committed ourselves to do, e.g. I have to go shopping (- or else we'll have nothing to eat tonight.)
This again goes against the grammar rule, which states that 'have to' indicates an external demand, and is usually an imperative :-(
Also, when used in speech, there is an implication of 'time' when we reverse the given grammar rules. We tend to use 'must' when something absolutely has to happen & has to happen soon, and 'have to' when it has to be done but can happen at an undefined time.
E.g. 'I must leave now, to pick my son up from school' = urgent/defined time.
'I have to go shopping, or we'll have nothing to eat tonight' = not so urgent, as long as I do actually do the shopping before dinner time.
I hope that helps, if not, please feel free to contact me for more explanation/examples.
(An idiomatic expression for when we are confused about something: 'It's as clear as mud!' - meaning, it really isn't very clear at all!)