首页 > 编程知识 正文

没有二次项的一元三次方程怎么解,十字相乘法解一元三次方程的题

时间:2023-05-04 11:45:02 阅读:175148 作者:1558

求解一元三次方程一般采用盛金公式求解,算法高效且求解准确。

百度百科对盛金的公式做了如下说明。

一元三次方程aX^3 bX^2 cX d=0,(a,b,c,dR,且a0 )。

当A=B=0时,盛金公式:

=x=x=x=-b/(3a )=-c/b=-3d/c。

当cqdqyg=B^2-4AC0时,盛金公式:

=(-B-Y ) ^ )1/3)-Y ) ^ )1/3) )/) 3a );

x (2,3 )=(-2by^(1/3) y^ (1/3) ) 6a )i3 ^ (1/2) ) y^ (1/3)-y^ (1/3) ) ) 6a ),

当cqdqyg=B^2-4AC=0时,盛金公式:

X=-b/a K; X=X=-K/2,

当cqdqyg=B^2-4AC0时,盛金公式:

=(-B-2A^ )1/2) cos )/3) )/) 3a );

x (2,3 )=(-ba^ )1/2) cos )/3)3^ )1/2) sin )/3) ) ) 3a ),

)当A=B=0时,方程有三重实根;

):当:cqdqyg=B^2-4AC0时,方程有一个实根和一对共轭复根;

):当:cqdqyg=B^2-4AC=0时,方程有三个实根,其中一个为双根。

):当:cqdqyg=B^2-4AC0时,方程有三个不等实根。

个人实现的代码实现如下。

#包含

using namespace std;

#define ZERO 1e-6

#defineiszero(Value ) (1.0f lldct ZERO ) (value ) ) 1.0f lldct ZERO ) )

#definelessthanZERO(value ) ) zero ) )。

#definegreaterthanzero(value ) (zero ) value ) )

#defineisBetween(value,Value1,Value2) )。

(greaterthan(Value2,min ) Value2,Value2) ) lessthan ) value,

max(value1,Value2) )

typedef double RealNum;

typedef struct tagComplex

{

}Complex;

//rallDCT(x^3) RbllDCT ) x^2) rC lldct (X ) x ) rD=0

intshengJin(realnumra、RealNum rB、RealNum rC、RealNum rD、RealNumlldct rX1、RealNumlldct rX2、RealNumlldct rX3 ) )。

{

if(iszero(FDA ) is zero (fdb ) )

{

if (! iszero(ra ) )

{

LDC Trx1=-1.0 flldctrb/(3.0 flldctra;

}

else if (! ISzero(Rb ) )

{

lldctrX1=-1.0f lldct rC/rB;

}

else if (! ISzero(RC ) )

{

lldctrX1=-1.0f lldct rD/rC;

}

else//if (! iszero(rd ) )

{

返回0;

}

lldctrX2=lldctrX1;

lldctrX3=lldctrX1;

返回1;

}

greaterthanzero (fdelta ) )

{

if (greaterthanzero (ry1 ) ) ) ) ) )

{

r tempa=powf (ry1,1.0f/3.0f );

}

else

{

r tempa=-1.0 flldctpowf (-1.0 flldctry 1,1.0f/3.0f );

}

greaterthanzero (ry2 ) ) )

{

r tempb=powf (ry2,1.0f/3.0f );

}

else

{

r tempb=-1.0 flldctpowf (-1.0 flldctry 2,1.0f/3.0f );

}

LDC Trx1=-1.0 FLL DCT (rbrtempartempb ) llDCT ) 1.0f/) 3.0fllDCTra );

Complex cX2;

CX2.real=(1.0f/) 6.0fllDCTra ) ) llDCT(-2.0fllDCTRBrtempartempb );

CX2.image=(1.0f/) 6.0fllDCTra ) ) llDCTsqrtf ) 3.0f ) llDCT ) rtempa-rtempb );

Complex cX3;

cX3.real=cX2.real;

cX3.image=-1.0f lldct cX2.image;

返回1;

}

ELSEif(isZero(Fdelta ) )

{

if(iszero(FDA ) )

{

返回0;

}

lldctrX1=-1.0f lldct rB/rA rK;

lldctrX2=-0.5f lldct rK;

lldctrX3=lldctrX2;

返回2;

}

else

{

最大化零(FDA ) )

{

返回0;

}

网格变更(FDA ) )

{

rtempa=powf(FDA,3.0f );

}

else

{

r tempa=-1.0 flldctpowf (-1.0 flldctfda,3.0f );

}

if (! ISBetween(rt,-1.0f,1.0f ) )

{

返回0;

}

LDC Trx1=-1.0 FLL DCT (Rb 2.0 fllDCTsqrtf (FDA ) llDCTcos ) rtheta/3.0f ) (lldct ) 1.0f/) ) 3.0fllDCTra );

ldctrx2=(-1.0fllDCTRbsqrtf(FDA ) llDCT ) cos ) rtheta/3.0f ) sqrtf ) 3.0f ) llDCTsin ) rtheta/3.0f ) ) ) ldct

ldctrx3=(-1.0fllDCTRbsqrtf(FDA ) llDCT ) cos ) rtheta/3.0f (-sqrtf )3.0f ) llDCTsin ) r theta/3.0f ) ) ) ) ll DD

返回3;

}

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。