一元二次方程求根Java源程序代码

一元二次方程求根Java源程序代码


2024年4月14日发(作者:)

//求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类

class OnceBasicQuadraticEquation //求解一元二次方程ax^2+bx+c的实根和复根的类,其中

getRoot()方法求根和显示根

{

private double a; //方程的二次项系数

private double b; //方程的一次项系数

private static double c; //方程的常数项

//以上三个成员变量分别是方程的系数

OnceBasicQuadraticEquation() //无参构造方法

{

a = 0;

b = 0;

c = 0;

}

OnceBasicQuadraticEquation(double a,double b,double c) //有参构造方法

{

this.a = a;

this.b = b;

this.c = c;

}

public void setA(double a)

{

this.a = a;

}

public double getA()

{

return a;

}

public void setB(double b)

{

this.b = b;

}

public double getB()

{

return b;

}

public void setC(double c)

{

this.c = c;

}

public double getC()

{

return c;

}

//以上六个方法分别对应三个系数的置取方法

public double getDlt() //计算判别式Δ=b^2-4ac的值

{

double result = (b,2) - 4 * a * c;

return result;

}

private double getRightRoot() //求解右侧较大实根的方法

{

double rightRoot = 0;

rightRoot = (-b + (getDlt())) / (2 * a);

return rightRoot;

}

private double getLeftRoot() //求解左侧较小实根的方法

{

double leftRoot = 0;

leftRoot = (- b - (getDlt())) / (2 * a);

return leftRoot;

}

public void getRoot() //求解并显示实根或复根的方法

{

if(a==0)

{

if(b==0)

{

if(c==0)

{

n("一元二次方程:" + getA() + "x^2+"

解。

//a、b、c全为零时,定义方程有无穷多

+ getB() + "x+"

+ getC() + "t有无穷多解。");

}

else

{

//二次项和一次项系数为零,但常数项不为零,方程变为不等式,无解。

n("一元二次方程:" + getA() + "x^2+"

+ getB() + "x+"

+ getC() + "t无解。");

}

}

else

{

//二次项系数为零,一次项系数不为零,方程是一次方程,有唯一解。

double result = 0;

result = -getC() / getB();

n("一元二次方程:" + getA() + "x^2+"

+ getB() + "x+"

+ getC() + "t有唯一解:" + result);

}

}

else //二次项系数不为零,方程有两个实根或复根。

{

if(getDlt()==0) //判别式Δ=b^2-4ac=0,方程有两个相等实根。

{

double result = 0;

result = -getB() / (2 * getA());

n("一元二次方程:" + getA() + "x^2+"

+ getB() + "x+"

+ getC() + "t有唯一解:" + result);

}

else if(getDlt()>0) //判别式Δ=b^2-4ac>0,方程有两个相异实根。

{

n("一元二次方程:" + getA() + "x^2+"

+ getB() + "x+"

+ getC() + "t有两个实根:"

getRightRoot());

}

else //判别式Δ=b^2-4ac<0,方程有两个复根。

{

//double imaginaryNumber1 = 0;

double imaginaryNumber = 0;

double realNumber = 0;

getLeftRoot()

"和"

+ + +

imaginaryNumber = (-getDlt()) / (2 * a);

realNumber = -getB() / (2 * a);

n("一元二次方程:" + getA() + "x^2+"

+ getB() + "x+"

+ getC() + "t有两个复根:"

+ realNumber + "±" + imaginaryNumber + "i");

}

}

}

}

public class Test

{

public static void main(String [] args)

{

OnceBasicQuadraticEquation e1 = new OnceBasicQuadraticEquation(4,13,3);

t();

}

}


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713094533a2181864.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信