Let me know RootOf, X90(and X98 ... X_variable) to solve equation by using of Symbol method
1 次查看(过去 30 天)
显示 更早的评论
for example, matlab code is here
syms Ls Lm Cs Cm w=solve('(Cm^2/4)*(Lm^2-Ls^2)^2*w^4+(50^2*Cm^2*(Lm^2-Ls^2)^2+(3/4)*Cm^2*Ls^2*50^2)*w^2-Lm^2*((50*(Cs+Cm))/2)*w=Lm^2-Cm^250^4')
and The result is here, no error.
w =
RootOf(2*Cm^2*Lm^2*Ls^2*X90^4 - Cm^2*Ls^4*X90^4 - Cm^2*Lm^4*X90^4 + 20000*Cm^2*Lm^2*Ls^2*X90^2 - 10000*Cm^2*Ls^4*X90^2 - 7500*Cm^2*Ls^2*X90^2 - 10000*Cm^2*Lm^4*X90^2 + 100*Cs*Lm^2*X90 + 100*Cm*Lm^2*X90 + 4*Lm^2 - 4*Cm^1000, X90)
This is the result. However the problem is that I cannot understand this. help me. specialists!
0 个评论
回答(1 个)
Kai Gehrs
2011-8-31
Hi,
the 'RootOf' is a way to encode the symbolic solutions of polynomials of higher degree for which either no symbolic closed form exists or for which the symbolic representation is quite lengthy.
Note that for polynomials of degree 5 or higher (if they are irreducible) there is no way to express the roots in closed symbolic form.
In case of your exmaple the polynomial has degree 4. For degree 4 polynomials there is a way to express the solutions in explicit form, but in general it leads to huge expression swell.
If you are using a more current release of the Symbolic Math Toolbox, then you can use the 'MaxDegree' option for 'solve' to set the value to '4' in order to force MATLAB to give you explicit solutions for your equation:
w=solve('(Cm^2/4)*(Lm^2-Ls^2)^2*w^4+(50^2*Cm^2*(Lm^2-Ls^2)^2+(3/4)*Cm^2*Ls^2*50^2)*w^2-Lm^2*((50*(Cs+Cm))/2)*w=Lm^2-Cm^250^4','MaxDegree',4)
If you working with an older version, the only workaround I see is using the 'evalin' command and directly calling MuPAD's solve (MuPAD is the symbolic engine for the Symbolic math Toolbox):
>> syms Ls Lm Cs Cm ;
>> evalin(symengine,'solve((Cm^2/4)*(Lm^2-Ls^2)^2*w^4+(50^2*Cm^2*(Lm^2-Ls^2)^2+(3/4)*Cm^2*Ls^2*50^2)*w^2-Lm^2*((50*(Cs+Cm))/2)*w=Lm^2-Cm^250^4,w,MaxDegree=4,IgnoreSpecialCases)')
ans =
[ (9*((3^(1/2)*(128*(Cm^1000/((Cm^2*Lm^4)/4 + (Cm^2*Ls^4)/4 - (Cm^2*Lm^2*Ls^2)/2) - Lm^2/((Cm^2*Lm^4)/4 + (Cm^2*Ls^4)/4 - (Cm^2*Lm^2*Ls^2)/2))^2*((2500*Cm^2*Lm^4)/((Cm^2*Lm^4)/4 +
...
Hope this helps and best regards,
-- Kai
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Special Values 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!