怎么用MATLAB解带参数的一元三次方程解方程:(
展开全部
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<t<0.25,而是 |t| ≤ sqrt(27/256),对于临界点 t≈0.3248,对应的三个根为 [ 3/4, -3/8, 3/4]。
>> 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<t<0.25,而是 |t| ≤ sqrt(27/256),对于临界点 t≈0.3248,对应的三个根为 [ 3/4, -3/8, 3/4]。
2017-05-25
展开全部
可以用sym定义符号和需要求解的方程
用solve进行求解。
用solve进行求解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询