在求解高阶方程组时,如何让MATLAB返回数值?
当我试图解方程时(因为我没有足够的声誉,所以我只能在这里发布方程的latex代码) (方程式看起来或多或少像:5*p*(1-p)^4+p^5=0.9) 通过MATLAB,在求解高阶方程组时,如何让MATLAB返回数值?,matlab,numeric,Matlab,Numeric,当我试图解方程时(因为我没有足够的声誉,所以我只能在这里发布方程的latex代码) (方程式看起来或多或少像: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) 然后MATLAB返回了这个: ans = RootOf(z^5 - (10*z^4)/3 + 5*z^3 - (10*
我使用了代码:
clc;close all; clear all;
syms x
eqn=5*x*((1-x)^4)+x^5==0.9;
% solx=solve(eqn,x)
solve(eqn,x)
然后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]
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]
然后我继续尝试通过以下代码获取数值:
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)
但是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]
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]
有人能给我一些想法如何解决这个问题或一些链接,我应该参考?我参考了Mathwork上的link(),但没有帮助获得数值
请提前表示感谢。对于那些
RootOf
要获得数值近似值,您必须使用vpa
:
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)
结果:
>> mysol = vpa(sol)
mysol =
0.9791481609736960010570740114736
0.13006272993340436563484822895086 + 0.23845812045897270134074538059624i
1.047029856246414300503281431979 + 0.99001796114505954590535961748791i
1.047029856246414300503281431979 - 0.99001796114505954590535961748791i
0.13006272993340436563484822895086 - 0.23845812045897270134074538059624i
对于那些
RootOf
的值,必须使用vpa
,以获得数值近似值:
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)
结果:
>> mysol = vpa(sol)
mysol =
0.9791481609736960010570740114736
0.13006272993340436563484822895086 + 0.23845812045897270134074538059624i
1.047029856246414300503281431979 + 0.99001796114505954590535961748791i
1.047029856246414300503281431979 - 0.99001796114505954590535961748791i
0.13006272993340436563484822895086 - 0.23845812045897270134074538059624i
你用的是什么版本的matlab?我用第一个代码得到一个数值解。我用的是matlab R2014b,它太旧了吗?你用的是什么版本的matlab?我用的是第一个代码得到的数值解。我用的是matlab R2014b,它太旧了吗?非常感谢!!@scmg,它现在工作了,我得到的值与你上面列出的值相同!@CatherineChen如果它对我有效的话你,别忘了接受答案!非常感谢!!@scmg,它现在起作用了,我得到的值与上面列出的值相同!@CatherineChen如果它对你有效,别忘了接受答案!