![]() |
符号解三次方程有误?
1 个附件
问题如图,怎样正确计算出三个精确实根?
|
回复: 符号解三次方程有误?
主题帖图片显示太小,问题重发如下:
三次方程 x^3+3*x^2-1=0 的判别式小于零,有三个不相等的实数根。 用MATLAB符号运算(solve函数求解),却得到三个复数根。MATLAB大概是直接将系数代入求根公式求解,因为判别式<0,就不可避免的会对负数开平方,从而算得三个复根。 调用格式如下: >> syms x >> f1=sym('x^3+3*x^2-1=0'); >> x=solve(f1,x) |
回复: 符号解三次方程有误?
[CODE]
syms x s=solve(x^3+3*x-1,x); s=real(s)+1i*imag(s) ds=double(s) [/CODE] 输出: [CODE] s = 1/2*(4+4*5^(1/2))^(1/3)-2/(4+4*5^(1/2))^(1/3) -1/4*(4+4*5^(1/2))^(1/3)+1/(4+4*5^(1/2))^(1/3)+1/2*i*3^(1/2)*(1/2*(4+4*5^(1/2))^(1/3)+2/(4+4*5^(1/2))^(1/3)) -1/4*(4+4*5^(1/2))^(1/3)+1/(4+4*5^(1/2))^(1/3)-1/2*i*3^(1/2)*(1/2*(4+4*5^(1/2))^(1/3)+2/(4+4*5^(1/2))^(1/3)) ds = 0.3222 -0.1611 + 1.7544i -0.1611 - 1.7544i [/CODE] |
回复: 符号解三次方程有误?
谢谢回复,但你计算的结果不对。
这个三次方程判别式小于零,有三个不相等的实数根,请参见我主题贴里的附件图片。 |
回复: 符号解三次方程有误?
[QUOTE=旁听生;57591]谢谢回复,但你计算的结果不对。
这个三次方程判别式小于零,有三个不相等的实数根,请参见我主题贴里的附件图片。[/QUOTE] 我把x^2错输成x了。这个符号解如果引用maple函数就能得到化简后的结果: [CODE] maple('s:=evalc([solve(x^3+3*x^2-1,x)])') maple('simplify(s)') [/CODE] [CODE] ans = s := [1/2*8^(1/3)*cos(2/9*pi)+1/4*8^(2/3)*cos(2/9*pi)-1+i*(1/2*8^(1/3)*sin(2/9*pi)-1/4*8^(2/3)*sin(2/9*pi)), -1/4*8^(1/3)*cos(2/9*pi)-1/8*8^(2/3)*cos(2/9*pi)-1-1/2*3^(1/2)*(1/2*8^(1/3)*sin(2/9*pi)+1/4*8^(2/3)*sin(2/9*pi))+i*(-1/4*8^(1/3)*sin(2/9*pi)+1/8*8^(2/3)*sin(2/9*pi)+1/2*3^(1/2)*(1/2*8^(1/3)*cos(2/9*pi)-1/4*8^(2/3)*cos(2/9*pi))), -1/4*8^(1/3)*cos(2/9*pi)-1/8*8^(2/3)*cos(2/9*pi)-1+1/2*3^(1/2)*(1/2*8^(1/3)*sin(2/9*pi)+1/4*8^(2/3)*sin(2/9*pi))+i*(-1/4*8^(1/3)*sin(2/9*pi)+1/8*8^(2/3)*sin(2/9*pi)-1/2*3^(1/2)*(1/2*8^(1/3)*cos(2/9*pi)-1/4*8^(2/3)*cos(2/9*pi)))] ans = [2*cos(2/9*pi)-1, -cos(2/9*pi)-1-3^(1/2)*sin(2/9*pi), -cos(2/9*pi)-1+3^(1/2)*sin(2/9*pi)] [/CODE] 第二个ans还是没有虚部的。说明化简的还行。 |
所有时间均为北京时间。现在的时间是 05:36。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.