Rather than return an error or warning, it looks like Matlab just chose the first integer value of the parameter x that would satisfy the conditions, i.e., 1. So why does Matlab's symbolic engine (not quite the same as the MuPAD environment) return (X*ndot4A*xiB - 1)/(ndot4B - X*ndot4B) when you don't ask for the return conditions? Firstly, this answer satisfies the inequality and is perfectly valid given that there is no information (assumptions) about the ranges of each variable. Now you'll see that there is an additional parameter ( s.parameters is x) and set of conditions ( s.conditions is X ~= 1 & ndot4B ~= 0 & 0 rather than >=), the parameter x can't actually be equal to zero to guarantee satisfying the inequality (Maple may treat the two cases the same, I'm not sure). S = solve(X*ndot4B*xiA - ndot4B*xiA + X*ndot4A*xiB > 0, xiA, 'ReturnConditions', true) In your case: syms X xiA ndot4B ndot4A xiB When solving inequalities, it's best to use the 'ReturnConditions' option to see the full details of the solution. You (and perhaps Maple) are making some assumptions that aren't necessarily true or that are at least different from each other.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |