partfrac() function returning same expression that was given as input

8 views (last 30 days)
I have the following expression:
(4*l^2*m5 - 2*dl^2*m5*cos(2*THETA1(t) - 4*THETA2(t) + 4*THETA3(t) - 4*THETA4(t) + 2*THETA5(t)))/(12*dl^2)
I want the denominator (i.e. 12*dl^2) to be divided across all the numerator terms so that the resulting expression is the sum of a bunch of terms.
partfrac((4*l^2*m5 - 2*dl^2*m5*cos(2*THETA1(t) - 4*THETA2(t) + 4*THETA3(t) - 4*THETA4(t) + 2*THETA5(t)))/(12*dl^2))
ans =
(- m5*cos(2*THETA1(t) - 4*THETA2(t) + 4*THETA3(t) - 4*THETA4(t) + 2*THETA5(t))*dl^2 + 2*m5*l^2)/(6*dl^2)
When I use the partfrac() function in MATLAB to do this, it gives me almost the same expression again.
Please help.

Accepted Answer

Star Strider
Star Strider on 19 Apr 2020
The partfrac function needs more information, specifically the variable (not expression) that you want it to use.
This (note that I provided the variable ‘dl’ and a useful name-value pair):
syms dl l m5 t THETA1(t) THETA2(t) THETA3(t) THETA4(t) THETA5(t)
Eq = (4*l^2*m5 - 2*dl^2*m5*cos(2*THETA1(t) - 4*THETA2(t) + 4*THETA3(t) - 4*THETA4(t) + 2*THETA5(t)))/(12*dl^2);
Eq_pf = partfrac(Eq, dl, 'FactorMode','full')
produces:
Eq_pf =
(l^2*m5)/(3*dl^2) - (m5*cos(2*THETA1(t) - 4*THETA2(t) + 4*THETA3(t) - 4*THETA4(t) + 2*THETA5(t)))/6
That is as much as it can do.
.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!