I am trying to figure out the difference between Well-conditioned problem and a Stable algorithm:
A well-conditioned problem is one in which rounding errors play very little role.
A stable algorithm is one in which rounding errors are guaranteed not to play a big role.
Which one is true?
I would formulate it slightly different :
A well conditioned problem is a problem where a small change of the input cannot lead to a big change of the output.
A stable algorithm is an algorithm that avoids that small errors are summing up to a big error. For every input, the result has an accuracy not much worse than the accuracy with which the single steps are done.
Note that not only rounding errors can play a role. Some algorithms are based on approximation-methods that give an error even in the case of exact calculation.
An example is Simpson's rule to calculate the integral. Even, if the method is done with exact values and each step is done exactly , the result is not exact.
Stable in this case means that we do not have a significant bigger error than the inevitable error.