Try to use solve but getting "Error in MuPAD command: Index exceeds matrix dimensions"

2 vues (au cours des 30 derniers jours)
Hello,
I get the following error message when I try to use solve using a system of equations and specifying the variables to be solved for:
Error in MuPAD command: Index exceeds matrix dimensions.
Essentially, I have 7 equations with 3 variables (a, lambda1 and lambda2) and one parameter (2). Below is my source code. I am using the Student version of MATLAB R2010a.
syms a s lambda1 lambda2;
S = solve('lambda1 - lambda2 + 1=0','a>=0', 's/2 - a >= 0', 'a*lambda1=0','lambda2*(s/2 - a)=0','lambda1>=0','lambda2>=0','a','lambda1','lambda2');
Please note that when I take away either the 'a', 'lambda1', or the 'lambda2' (i.e. so that I am just solving for 2 variables instead of 3), then the error message goes away. But when I try to solve for all 3 variables 'a', 'lambda1' and 'lambda2', then I get the error message.

Réponse acceptée

Walter Roberson
Walter Roberson le 9 Juil 2017
This appears to be the same bug as https://www.mathworks.com/support/bugreports/677110 except no trig is involved.
Workaround:
Call the MuPAD symbolic engine directly. For example,
>> S = evalin(symengine,'solve([p1-y1,p2-y2,p3-sin(y3)],[y1,y2,y3])')
  1 commentaire
Trevor Gates
Trevor Gates le 9 Juil 2017
Thank-you, that worked beautifully! Below is how I was able to implement it in my code:
text = ['solve([',eq1,', ', eq3, ', ', eq4, ', ', eq3a, ', ', eq4a, ', ', eq6a, ', ', eq6b, '], [a])'];
[a_sol] = evalin(symengine,text);

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with MuPAD dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by