1、之所以代入t=0.2会得到有虚部的解,是由数值计算误差造成的,可以试试:
>> syms x t;
>> f = (-8)*(x^3) + 9*(x^2) - 16* (t^2);
>> w = solve(f,x);
>> double(subs(w,sym(0.2)))
ans =
1.0528
-0.2419
0.3141
此种情况下,0.2是以符号量的形式代入之后再转换为double类型,计算就不会有数值误差。
2、可以用根轨迹分析的方法得出,方程有三个实数解的条件并非0
可以用sym定义符号和需要求解的方程
用solve进行求解。