Solve symbolic equation by comparing coefficients
    5 views (last 30 days)
  
       Show older comments
    
    Jörn Froböse
 on 9 Feb 2022
  
    
    
    
    
    Commented: Jörn Froböse
 on 17 Feb 2022
            I have an equation like this:  , which I need to rearrange to this form:
, which I need to rearrange to this form:  .
.
 , which I need to rearrange to this form:
, which I need to rearrange to this form:  .
.Obviously, the above holds true  for
 for  and
 and  . However, I would like to do this automatically. How can d and e be found using Matlabs Symbolic Toolbox?
. However, I would like to do this automatically. How can d and e be found using Matlabs Symbolic Toolbox?
 for
 for  and
 and  . However, I would like to do this automatically. How can d and e be found using Matlabs Symbolic Toolbox?
. However, I would like to do this automatically. How can d and e be found using Matlabs Symbolic Toolbox?The following approach won't help, since the system isn't well defined.
syms a b c d e f x y z
eq = a*x + y*(b + c*z)==0;
target = x + y*(d + e*z)==0;
solve([eq target],[d e])
Any help would be appreciated!
2 Comments
  HighPhi
      
 on 9 Feb 2022
				syms a b c d e f x y z
eq(a,b,c) = a*x + y*(b + c*z);
target(a,b,c,d,e) = x + y*(d + e*z);
eq2(a,b,c,d,e) = subs(eq, [b, c], [d*a, e*a])
simplify(eq2)
D = solve(eq2 == 0, d)
E = solve(eq2 == 0, e)
not sure if that helps much but maybe it'll help you get closer to where you want to be. (I'm not totally positive what you're trying to do with it 😝 )
Accepted Answer
  Prachi Kulkarni
    
 on 15 Feb 2022
        
      Edited: Prachi Kulkarni
    
 on 15 Feb 2022
  
      Hi,
For a given example expression of the form a*x + y*(b + c*x), you can get the coefficients d and e of the reduced forms as follows.
syms x y z
eq = 2*x + y*(3 + 4*z); % input equation
[d,e] = reducedCoefficients(eq);
function [d,e] = reducedCoefficients(eq)
    coef = coeffs(eq);
    b = coef(1);
    c = coef(2);
    a = coef(3);
    d = double(b/a);
    e = double(c/a);
end
4 Comments
  Prachi Kulkarni
    
 on 17 Feb 2022
				Hi,
For the general case, you can get the coefficients d and e of the reduced form as follows.
syms a b c x y z
eq = a*x + y*(b + c*z);
coef = coeffs(eq,[x,y,z]);
b = coef(1);
c = coef(2);
a = coef(3);
d = b/a;
e = c/a;
For your specific case, you can get the coefficients lambda and gamma of the reduced form as follows.
syms eta a Q d2ydt2 y t
eq = 4*(eta.^2)*d2ydt2 + 1.5*a*(Q.^2)*(1+cos(t))*y + y;
coef = coeffs(eq,[d2ydt2,y,cos(t)]);
lambda = coef(1)/coef(3);
gamma = coef(2)/coef(3);
More Answers (0)
See Also
Categories
				Find more on Symbolic Math Toolbox in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!









