关于用matlab 求一个高次方程! 很简单的- 谁来回答下!

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:16:29
function e=e(x)
e=x^4+10*x^3+37*x^2+102.055x+120.0;
fsolve(e=0);
roots(e);

不会用matlab 想解一个一元高次方程- 方程如上面 怎么解啊!

最简单的方法是用矩阵来表示多项式:
p=[1,10,37,102.055,120];%注意要按照降幂来排列啊
roots(p);
p
结果:
ans=

6.1749
-0.9139 + 2.9823i
-0.9139 - 2.9823i
-1.9974

先定义符号变量,用solve看是否有解析解,没有可以用fsolve解数值解。
>> syms x
>> e=x^4+10*x^3+37*x^2+102.055*x+120

e =

x^4 + 10*x^3 + 37*x^2 + (20411*x)/200 + 120

>> solve(e)
ans =

- (3*((3^(1/2)*134692303226362507^(1/2))/720000 + 1879754867/2160000)^(1/3) + 9*((3^(1/2)*134692303226362507^(1/2))/720000 + 1879754867/2160000)^(2/3) - 5053/20)^(1/2)/(6*((3^(1/2)*134692303226362507^(1/2))/720000 + 1879754867/2160000)^(1/6)) - ((5053*(3*((3^(1/2)*134692303226362507^(1/2))/720000 + 1879754867/2160000)^(1/3) + 9*((3^(1/2)*134692303226362507^(1/2))/720000 + 1879754867/2160000)^(2/3) - 5053/20)^(1/2))/20 + (25233*6^(1/2)*((3*3^(1/2)*134692303226362507^(1/2))/40000 + 1879754867/40000)^(1/2))/200 + 6*((3^(1/2)*134692303226362507^(1/2))/720000 + 18797548