I use the CVXGEN to handle the MPC problem with the CVXGEN software, this software offers two optimal methods:[vars,status]=cvxsolve(para, settings); [vars,status]=csolve(para, settings). The results of the two statement are sometimes different. For example: for an ordinary MPC problem,[vars,status]=cvxsolve(para, settings) may find the feasible solution to the problem while [vars,status]=csolve(para, settings) may fail in solving the problem.why?
I’m afraid we are not CVXGEN experts here. In fact I’ve never used it. Unless you can establish concrete evidence that CVX is delivering incorrect results there’s nothing we can offer you.
All computations are done in finite precision. That essentially means it would be surprising if they gave exactly same result bit for bit.
Now if your model is unstable/illposed or otherwise badly formulated then finite precision effects could easily explain the difference.
There can be a tons of other reasons such as you have made a mistake, bugs in the software etc. of course. However, any suggestion would be a guess based on the limited information available.