Rearrange Variables in an equation
    79 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mech Princess
      
 el 20 de Jul. de 2012
  
    
    
    
    
    Comentada: Star Strider
      
      
 el 29 de En. de 2023
            I declare the variables using sym or syms then i have an equation a+2*b=1; I want MATLAB to give me a=1-2*b; or alternatively b=(1-a)/2;
is there a way to do this?
Also, There maybe more than 2 variables Equation maybe linear or non-linear Equation can change at each iteration. Thanks
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 20 de Jul. de 2012
        
      Editada: Star Strider
      
      
 el 20 de Jul. de 2012
  
      This is one way:
        syms a b
        eqn = (a + 2*b == 1)
        v_a = solve(eqn, a)
        v_b = solve(eqn, b)
producing this output:
v_a =
1 - 2*b
v_b =
1/2 - a/2
I suggest you avoid expressions such as:
        [a b] = solve(eqn, a, b)
even though it is valid syntax, because instead of solving the equation for ‘a’ and then solving it independently for ‘b’, it solves it for ‘a’ first and then solves the resulting equation for ‘b’ in terms of an introduced variable ‘z’. That produces a multi-line warning in red (that I will not reproduce here), and the results:
a =
1 - 2*z
b =
z
that does not make sense to me. I consider this to be a bug, and I would prefer it to be an option rather than the default, but that is not my decision.
3 comentarios
  Star Strider
      
      
 el 20 de Jul. de 2012
				This:
        data = [-1 0 1;-1 +1 -1]';         
        alpha = sym('alpha',[1 3]); 
        advct = alpha * data(:,2)
        v_2 = solve(advct == 0, alpha(1))
gives me these:
advct =
alpha2 - alpha1 - alpha3
v_2 =
alpha2 - alpha3
Is that the result you were hoping for?
Más respuestas (2)
  Nitesh khanna
 el 1 de Ag. de 2020
        how to replace the variables   a, b, c, d  by variables   w, x, y, z  for; in eqn
eqn=a+b+c+d==9;
will this command work
eqn=subs(eqn, [a,b,c,d],[w,x,y,z])
0 comentarios
  Bill Tubbs
      
 el 29 de En. de 2023
        >> syms a b
>> eqn1 = b == (1 - a) / 2;
>> isolate(eqn1, a)
ans =
a == 1 - 2*b
>> isolate(eqn1, b)
ans =
b == 0.5000 - 0.5000*a
2 comentarios
  Star Strider
      
      
 el 29 de En. de 2023
				Definitely!  
I’ve used isolate extensively in my Answers since it was introduced, when its use was appropriate.  
Ver también
Categorías
				Más información sobre Symbolic Variables, Expressions, Functions, and Settings en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!