「java方程求根」java 求方程的根
今天给各位分享java方程求根的知识,其中也会对java 求方程的根进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、如何用java编写一元二次方程的求根问题
- 2、Java程序 求方程的根
- 3、JAVA求一元二次方程的根,简单问题
- 4、java编写程序求一元二次方程的根
- 5、java求一元二次方程的根
- 6、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方程求根的信息别忘了在本站进行查找喔。