BK网络学院

首页搜索登录
首页业界网页平面多媒体程序数据库办公工具服务器系统网络安全站长认证壁纸
加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

java经典试题:二元方程求解

[日期:2013-10-21] 作者: 来源: [字体: ]

2.36 二元方程求解

2.36.1题目:求方程的解。

2.36.2 源程序

 

import Java.util.Scanner;

import javax.swing.JOptionPane;

 

public class Quetation {

    public static void main(String args[]){

      double a,b,c,disc,x1,x2,realpart,imagpart;

      Scanner scanner=new Scanner(System.in);

      System.out.print("输入a的值:");

      a=scanner.nextDouble();

      System.out.print("输入b的值:");

      b=scanner.nextDouble();

      System.out.print("输入c的值:");

      c=scanner.nextDouble();

      System.out.print("这个方程");

      if(Math.abs(a)<=Math.pow(10, -6))

          System.out.print("不是一元二次方程");

      else{

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

          if(Math.abs(disc)<=Math.pow(10, -6))

              System.out.println("有两个相等实根:"+-b/(2*a));

          else if(disc>Math.pow(10, -6)){

              x1=(-b+Math.sqrt(disc))/(2*a);

              x2=(-b+Math.sqrt(disc))/(2*a);

              System.out.println("有两个不等实根:"+x1+"和"+x2);

          }

          else{

              realpart=-b/(2*a);

              imagpart=Math.sqrt(-disc)/(2*a);

              System.out.println("有两个共轭复根:");

              System.out.println(realpart+"+"+imagpart+"i");

              System.out.println(realpart+"-"+imagpart+"i");

          }

      }

    }

}

 

2.36.3 运行结果:

 

输入a的值:1

输入b的值:2

输入c的值:1

这个方程有两个相等实根:-1.0

 

输入a的值:1

输入b的值:2

输入c的值:2

这个方程有两个共轭复根:

-1.0+1.0i

-1.0-1.0i

 

输入a的值:2

输入b的值:6

输入c的值:1

这个方程有两个不等实根:-0.17712434446770464和-0.17712434446770464

 

2.36.4 源程序揭秘

方程的解实际上应该有以下几种可能。

,不是二次方程。

,有两个相等实根。

,有两个不等实根。

,有两个共轭复根。

算法原理:

程序中用disc代表,先计算disc的值,以减少以后的重复计算。对于判断是否等于0时,要注意:由于disc是实数,而实数在计算和存储时会有一些微小的误差,因此不能直接进行如下判断:"if(disc==0)……",因为这样可能会出现本来是零的量,由于上述误差而被判别为不等于零而导致结果错误。所以采取的办法是判别disc的绝对值(Math.abs(disc))是否小于一个很小的数(例如,在java中调用Math类方法Math.pow(10,-6),返回10的-6次方),如果小于次数,就认为disc等于0.程序中以realpart代表实部,以imagpart代表虚部,增加可读性。

关键词:试题  二元  方程  求解 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
最新图文
本文评论   查看全部评论 (2)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2016/12/25 13:34:51
http://www.blue1000.com/bkhtml/c149/2013-10/71384.htm 个人评语大全 http://www.blue1000.com/show/7218.html 品德评语大全 http://www.blue1000.com/show/7215.html
第 1 楼
* 匿名 发表于 2016/12/24 13:29:20
http://www.blue1000.com/bkhtml/c149/2013-10/71384.htm 初二作文 愚人节 http://www.blue1000.com/details/zs1974.html 美丽的宁夏 作文 http://www.blue1000.com/details/zs1975.html