错误原因是 !!!solve里别打单引号 “ ' ” !!!
以及注意“==”而非“==”
因为
以下为正确格式:
命令行窗口依次输入
syms x
solx = solve(-(x^6)+3*(x^4)-87.811*(x^2)+1==0,x)
运行结果:
solx =
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 1)^(1/2)
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 2)^(1/2)
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 3)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 1)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 2)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 3)^(1/2)
此时结果是通过root形式展示,进行double转换,即可得到数值解:
即再输入一行
double(solx)
完整版:
syms x
solx = solve(-(x^6)+3*(x^4)-87.811*(x^2)+1==0,x)
double(solx)
结果:
solx =
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 1)^(1/2)
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 2)^(1/2)
root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 3)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 1)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 2)^(1/2)
-root(z^3 - 3*z^2 + (87811*z)/1000 - 1, z, 3)^(1/2)
ans =
0.1067 + 0.0000i
2.3306 - 1.9843i
2.3306 + 1.9843i
-0.1067 + 0.0000i
-2.3306 + 1.9843i
-2.3306 - 1.9843i
另一种表达
syms x
eqn=-(x^6)+3*(x^4)-87.811*(x^2)+1==0
solx = solve(eqn,x)
double(solx)
参考: