sorting the roots from the solution of an equation

13 views (last 30 days)
I have the following equation and I solve it using the Function "Solve" and the answer is as follows
syms t px py pz dx dy dz A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 Thickness;
Equation = A21.*((py +t*dy).^5) + (A20.*((py +t*dy).^4)).*(px +t*dx) + A19.*((py +t*dy).^4) + (A18.*((py +t*dy).^3)).*((px +t*dx).^2) + (A17.*((py +t*dy).^3)).*(px +t*dx) + A16.*((py +t*dy).^3) + (A15.*((py +t*dy).^2)).*((px +t*dx).^3) + (A14.*((py +t*dy).^2)).*((px +t*dx).^2) + (A13.*((py +t*dy).^2)).*(px +t*dx) + A12.*((py +t*dy).^2) + (A11.*((py +t*dy))).*((px +t*dx).^4) + (A10.*(py +t*dy)).*((px +t*dx).^3) + (A9.*(py +t*dy)).*((px +t*dx).^2) + (A8.*(py +t*dy)).*((px +t*dx)) + (A7.*(py +t*dy)) + A6.*((px +t*dx).^5) + A5.*((px +t*dx).^4) + A4.*((px +t*dx).^3) + A3.*((px +t*dx).^2) + A2.*(px +t*dx) + A1 - (pz +t*dz)
Answer = solve(S,t)
Answer = RootOf(A20*dx*dy^4*z^5 + A11*dx^4*dy*z^5 + A18*dx^2*dy^3*z^5 + A15*dx^3*dy^2*z^5 + A6*dx^5*z^5 + A21*dy^5*z^5 + 3*A18*dx^2*dy^2*py*z^4 + 3*A15*dx^2*dy^2*px*z^4 + 4*A20*dx*dy^3*py*z^4 + 2*A15*dx^3*dy*py*z^4 + 2*A18*dx*dy^3*px*z^4 + 4*A11*dx^3*dy*px*z^4 + 5*A6*dx^4*px*z^4 + 5*A21*dy^4*py*z^4 + A20*dy^4*px*z^4 + A11*dx^4*py*z^4 + A17*dx*dy^3*z^4 + A10*dx^3*dy*z^4 + A14*dx^2*dy^2*z^4 + A5*dx^4*z^4 + A19*dy^4*z^4 + 6*A18*dx*dy^2*px*py*z^3 + 6*A15*dx^2*dy*px*py*z^3 + 6*A20*dx*dy^2*py^2*z^3 + 3*A18*dx^2*dy*py^2*z^3 + 3*A15*dx*dy^2*px^2*z^3 + 6*A11*dx^2*dy*px^2*z^3 + 4*A20*dy^3*px*py*z^3 + 4*A11*dx^3*px*py*z^3 + 3*A17*dx*dy^2*py*z^3 + 2*A14*dx^2*dy*py*z^3 + 2*A14*dx*dy^2*px*z^3 + 3*A10*dx^2*dy*px*z^3 + 4*A5*dx^3*px*z^3 + 4*A19*dy^3*py*z^3 + 10*A6*dx^3*px^2*z^3 + 10*A21*dy^3*py^2*z^3 + A17*dy^3*px*z^3 + A10*dx^3*py*z^3 + A9*dx^2*dy*z^3 + A13*dx*dy^2*z^3 + A18*dy^3*px^2*z^3 + A15*dx^3*py^2*z^3 + A4*dx^3*z^3 + A16*dy^3*z^3 + 6*A18*dx*dy*px*py^2*z^2 + 6*A15*dx*dy*px^2*py*z^2 + 4*A14*dx*dy*px*py*z^2 + 2*A9*dx*dy*px*z^2 + 2*A13*dx*dy*py*z^2 + 6*A20*dy^2*px*py^2*z^2 + 3*A18*dy^2*px^2*py*z^2 + 3*A15*dx^2*px*py^2*z^2 + 6*A11*dx^2*px^2*py*z^2 + 3*A17*dy^2*px*py*z^2 + 3*A10*dx^2*px*py*z^2 + 4*A20*dx*dy*py^3*z^2 + 3*A17*dx*dy*py^2*z^2 + 4*A11*dx*dy*px^3*z^2 + 3*A10*dx*dy*px^2*z^2 + 3*A4*dx^2*px*z^2 + 3*A16*dy^2*py*z^2 + 10*A6*dx^2*px^3*z^2 + 6*A5*dx^2*px^2*z^2 + 10*A21*dy^2*py^3*z^2 + 6*A19*dy^2*py^2*z^2 + A9*dx^2*py*z^2 + A13*dy^2*px*z^2 + A8*dx*dy*z^2 + A18*dx^2*py^3*z^2 + A15*dy^2*px^3*z^2 + A14*dy^2*px^2*z^2 + A14*dx^2*py^2*z^2 + A3*dx^2*z^2 + A12*dy^2*z^2 + 4*A20*dy*px*py^3*z + 3*A17*dy*px*py^2*z + 2*A15*dy*px^3*py*z + 2*A14*dy*px^2*py*z + 2*A18*dx*px*py^3*z + 2*A14*dx*px*py^2*z + 4*A11*dx*px^3*py*z + 3*A10*dx*px^2*py*z + 2*A9*dx*px*py*z + 2*A13*dy*px*py*z + 3*A18*dy*px^2*py^2*z + 3*A15*dx*px^2*py^2*z + 2*A12*dy*py*z + 2*A3*dx*px*z + 5*A6*dx*px^4*z + 4*A5*dx*px^3*z + 5*A21*dy*py^4*z + 3*A4*dx*px^2*z + 4*A19*dy*py^3*z + 3*A16*dy*py^2*z + A8*dy*px*z + A8*dx*py*z + A9*dy*px^2*z + A20*dx*py^4*z + A17*dx*py^3*z + A13*dx*py^2*z + A11*dy*px^4*z + A10*dy*px^3*z + A7*dy*z + A2*dx*z - dz*z + A9*px^2*py + A20*px*py^4 + A17*px*py^3 + A13*px*py^2 + A11*px^4*py + A10*px^3*py + A8*px*py + A18*px^2*py^3 + A15*px^3*py^2 + A14*px^2*py^2 - pz + A6*px^5 + A5*px^4 + A4*px^3 + A21*py^5 + A3*px^2 + A19*py^4 + A16*py^3 + A12*py^2 + A7*py + A2*px + A1, z)
Is there any way to sort the roots in order to apply later the function "roots"? Or is there anyway to get the roots out of this Answer = RootOf(.......
I have all the variables at the end but they are quite a lot that's why I have to solve it generally before and then apply for loop to get the roots.
Many thanks in advance

Accepted Answer

Jack_111
Jack_111 on 16 Oct 2013
This is the Answer
a = char(Answer); % Convert from symbolic to String
R = strrep(a,'RootOf(',''); % Preparing the Expression to be ready to get the Coefficients
R1 = strrep(R,',z)',''); % Preparing the Expression to be ready to get the Coefficients
b = sym(R1); % converting back to Symbolic
Coeff = coeffs(b,z); % I got the Coefficients

More Answers (0)

Categories

Find more on Stateflow Programmatic Interface in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!