「java方程求根」java 求方程的根

博主:adminadmin 2023-01-18 05:12:09 377

今天给各位分享java方程求根的知识,其中也会对java 求方程的根进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何用java编写一元二次方程的求根问题

import java.util.Scanner;

public class 一元二次方程 {

public static void main(String[] args) {

System.out.println("请输入你一元二次方程的a,b,c");

Scanner input=new Scanner(System.in);

int a=input.nextInt();

int b=input.nextInt();

int c=input.nextInt();

double d=b*b-4*a*c;

double e,f;

if (d==0){

System.out.println("这是个完全平方");

e=f=-b/2*a;

System.out.print(e);

}

else if(d0) {

System.out.println("无效根");

}

else {

System.out.println("这是个不完全平方,需要用求根公式");

double g=Math.sqrt(Math.abs(b));

e=-(b+g)/2*a;

f=-(e);

System.out.println("第一根是"+e);

System.out.println("第二根是"+f);

}

}

}

这是我的运行结果

扩展资料:

利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。

需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数

Java程序 求方程的根

package wukong.xiyou;

public class SquraEquation {

public double Calculation(double num){

return Math.sqrt(num);

}

}

class SunRise{

public static void main(String[] args) {

SquraEquation se = new SquraEquation();

double root = se.Calculation(4);

System.out.println(root);

}

}

JAVA求一元二次方程的根,简单问题

1、首先你的包确实导入错误,应该是import java.lang.Math;没有后面的*,因为你导入的已经是一个具体的类,所以就不要写后面的*.当你导入的是一个包中所有的类的时候,例如导入lang包下所有的类,就要写成import java.lang.*;

其次,java.lang这个包是java编译是自动导入的,你可以不写这条导入语句,就能正常执行程序

还有,你想调用abs,sqrt这样的方法,这些都是静态方法,虽然不用生成对象,进行调用,但是它们是要用类名进行调用的,你应该写成Math.abs() ;

和Math.sqrt() ;就可以执行了

2、当判别式0,这个时候就产生虚根了,写起来比较麻烦,算法是这样的

举个简单例子说明吧:

求一元二次方程:x^2+x+1=0的虚根

解:△=1^2-4×1×1=-3

由求根公式x=[-b±√(-△)i]/2a =[-1±√(-△)i]/2=[-1±√3i]/2

3、NAN这个我写一下它的全称你就知道了no a number就是运算结果不是数字,如果你将0作为除数,就能得到这个结果

你的程序我修改了一下

import java.io.*;

class wp{

private double a,b,c,realpart,imagpart,disc;

BufferedReader s1 = new BufferedReader(new InputStreamReader(System.in));

BufferedReader s2 = new BufferedReader(new InputStreamReader(System.in));

BufferedReader s3 = new BufferedReader(new InputStreamReader(System.in));

wp(){

try{

a=Double.valueOf(s1.readLine()) ;

b=Double.valueOf(s2.readLine()) ;

c=Double.valueOf(s3.readLine()) ;

}

catch(Exception e)

{

System.out.println("输入错误!!!") ;

}

}

void solve(){

realpart=-(b/(2*a));

System.out.println(realpart) ;

imagpart=(Math.sqrt(b*b-4*a*c)/(2*a));

System.out.println(imagpart) ;

if(Math.abs(a)=0.000001){

System.out.println("Is not a quadratic!");

}

else{

System.out.println("It is a quadratic");

disc=b*b-4*a*c;

if(Math.abs(disc)=0.0000001){

System.out.println("has two equal roots="+(realpart+imagpart));

}

else if(disc0.0000001)

System.out.println("has distinct real roots="+(realpart+imagpart)+"+"+(realpart-imagpart));

else

System.out.println("has complex roots=");

System.out.print("x1 = "+realpart+"+"+(Math.sqrt(-(b*b-4*a*c))/(2*a)+"i")) ;

System.out.print(" x2="+realpart+"-"+(Math.sqrt(-(b*b-4*a*c))/(2*a)+"i")) ;

}

}

public static void main(String[] args){

wp w=new wp();

w.solve();

}

}

java编写程序求一元二次方程的根

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Equation {

JLabel l1 = new JLabel("请输入一元二次方程各项的系数:", JLabel.CENTER);

JTextField t1 = new JTextField(10);

JTextField t2 = new JTextField(10);

JTextField t3 = new JTextField(10);

JButton but1 = new JButton("求解");

JButton but2 = new JButton("重置");

public Equation() {

JFrame f = new JFrame();

l1.setFont(new Font("华文行楷", Font.PLAIN, 24));

l1.setForeground(Color.blue);

JLabel l2 = new JLabel("二次项系数:");

JLabel l3 = new JLabel("一次项系数:");

JLabel l4 = new JLabel("常数项 :");

Container c = f.getContentPane();

c.setLayout(new GridLayout(6, 1));

JPanel p2 = new JPanel(new FlowLayout());

JPanel p3 = new JPanel(new FlowLayout());

JPanel p4 = new JPanel(new FlowLayout());

JPanel p5 = new JPanel(new FlowLayout());

JPanel p6 = new JPanel(new FlowLayout());

p2.add(l1);

p3.add(l2);

p3.add(t1);

p4.add(l3);

p4.add(t2);

p5.add(l4);

p5.add(t3);

p6.add(but1);

p6.add(but2);

c.add(p2);

c.add(p3);

c.add(p4);

c.add(p5);

c.add(p6);

f.setTitle("求一元二次方程的解");

f.setBounds(200, 200, 400, 280);

f.setVisible(true);

f.setResizable(false);

// 设置按钮but1的按钮事件

but1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (t1.getText().equals("") | t2.getText().equals("")

| t3.getText().equals("")) {

JOptionPane.showMessageDialog(null, "请输入方程各项的系数!", "警告",

JOptionPane.WARNING_MESSAGE);

}

double a = Double.parseDouble(t1.getText());

double b = Double.parseDouble(t2.getText());

double c = Double.parseDouble(t3.getText());

double m = Math.pow(b, 2) - 4 * a * c;

double n1 = (-b + Math.sqrt(m)) / 2 * a;

double n2 = (-b - Math.sqrt(m)) / 2 * a;

if (m 0) {

JOptionPane.showMessageDialog(null, "该方程无实根", "提示信息",

JOptionPane.INFORMATION_MESSAGE);

} else if (m == 0) {

JOptionPane.showMessageDialog(null, "该方程有两个相等的实根" + '\n'

+ "x1 = x2 = " + n1, "提示信息",

JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(null, "该方程有两个不相等的实根" + '\n'

+ "x1 = " + n1 + " " + "x2=" + n2, "提示信息",

JOptionPane.INFORMATION_MESSAGE);

}

}

});

// 设置按钮but2的按钮事件

but2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

t1.setText("");

t2.setText("");

t3.setText("");

}

});

}

public static void main(String args[]) {

Equation e = new Equation();

}

}

java求一元二次方程的根

public void main(String args[]){

这句应改为

public static void main(String[] args)

{

养成好习惯!

java 求一元二次方程的根

准确的说:是错在了

System.out.println("方程的1根是"+aa.calculator1());

System.out.println("方程的2根是"+aa.calculator2());

这两句上,因为无法从静态上下文中引用非静态 变量a,b,c,因为你没在double 前声明static ,所以无法引用到a,b,c,的值.即使你在前加了static (static double a,b,c)下面main函数里引用的都为0.0

现修改如下:

import java.math.*;

public class Function

{

public static boolean boo;//------------------------------声明全局变量,再在函数内运算

static double a,b,c,x;

public static double p;

public Function(double a,double b,double c)

{

this.a=a;

this.b=b;

this.c=c;

p=b*b-4*a*c;

if(p=0)

{

// c=a*x*x+b*x;

boo=true;

}

else

{

// System.out.println("方程无实根");

boo=false;

}

}

double calculator1()

{

double s1;

s1=((-b)-Math.sqrt(p))/(2*a);

return s1;

}

double calculator2()

{

double s2;

s2=((-b)+Math.sqrt(p))/(2*a);

return s2;

}

public static void main(String args[])

{

Function aa=new Function(2.0,6.0,3.0);

//System.out.println(boo);

System.out.println(b);//你可以多写这样的语句进行测试

if(boo)

{

System.out.println("方程的1根是"+aa.calculator1());

System.out.println("方程的2根是"+aa.calculator2());

}

else

{

System.out.println("方程无实根");

}

}

}

运行结果://true

//6.0

方程的1根是-2.3660254037844384

方程的2根是-0.6339745962155614

哈哈,总之是static没用好,给分吧快。

java方程求根的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 求方程的根、java方程求根的信息别忘了在本站进行查找喔。