在求解高阶方程时如何让MATLAB返回数值?

1 matlab numeric

当我试图解决方程时(因为我没有足够的声誉,所以我只能在这里发布方程的乳胶代码)

\begin{equation}
\Comb{5}{1} P_s(1-P_s)^4+\Comb{5}{5} P_s^5\geq0.9
\end{equation}
Run Code Online (Sandbox Code Playgroud)

(该等式看起来或多或少像:5*P*(1-P)^ 4 + P ^ 5 = 0.9)

通过MATLAB,
我使用了代码:

clc;close all; clear all;
syms x
eqn=5*x*((1-x)^4)+x^5==0.9;
% solx=solve(eqn,x)
solve(eqn,x)
Run Code Online (Sandbox Code Playgroud)

然后MATLAB返回了这个:

ans =

 RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20, z)[1]
 RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20, z)[2]
 RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20, z)[3]
 RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20, z)[4]
 RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20, z)[5]
Run Code Online (Sandbox Code Playgroud)

然后我继续尝试通过此代码获取数值:

clc;close all; clear all;
syms z
eqn=z^5 - (10*z^4)/3 + 5*z^3 - (10*z^2)/3 + (5*z)/6 - 3/20==0;
solve(eqn,z)
Run Code Online (Sandbox Code Playgroud)

但是MATLAB仍然返回了这个:

ans =

 RootOf(z1^5 - (10*z1^4)/3 + 5*z1^3 - (10*z1^2)/3 + (5*z1)/6 - 3/20, z1)[1]
 RootOf(z1^5 - (10*z1^4)/3 + 5*z1^3 - (10*z1^2)/3 + (5*z1)/6 - 3/20, z1)[2]
 RootOf(z1^5 - (10*z1^4)/3 + 5*z1^3 - (10*z1^2)/3 + (5*z1)/6 - 3/20, z1)[3]
 RootOf(z1^5 - (10*z1^4)/3 + 5*z1^3 - (10*z1^2)/3 + (5*z1)/6 - 3/20, z1)[4]
 RootOf(z1^5 - (10*z1^4)/3 + 5*z1^3 - (10*z1^2)/3 + (5*z1)/6 - 3/20, z1)[5]
Run Code Online (Sandbox Code Playgroud)

有人可以提供一些想法如何解决这个问题或我应该参考的一些链接?我在Mathwork上提到了链接(http://www.mathworks.com/help/symbolic/solve.html#zmw57dd0e111578),但没有帮助获取数值.

请支持非常感谢提前.

scm*_*cmg 5

您必须使用vpa那些RootOf来获得数值近似值:

clc;close all; clear all;
syms x
eqn=5*x*((1-x)^4)+x^5==0.9;
% solx=solve(eqn,x)
sol = solve(eqn,x);
my_sol = vpa(sol)
Run Code Online (Sandbox Code Playgroud)

结果:

>> mysol = vpa(sol)

mysol =

                                        0.9791481609736960010570740114736
 0.13006272993340436563484822895086 + 0.23845812045897270134074538059624i
   1.047029856246414300503281431979 + 0.99001796114505954590535961748791i
   1.047029856246414300503281431979 - 0.99001796114505954590535961748791i
 0.13006272993340436563484822895086 - 0.23845812045897270134074538059624i
Run Code Online (Sandbox Code Playgroud)