java实现一元二次函数求解
在进行java学习的时候,完成的一道习题。
题目要求:输入a,b,c三个数,代入到ax2+bx+c=0中进行运算,输出x1和x2,其中x1为较大的解,x2为较小的解,结果保留两位小数。
在保留两位小数时,我用的是 java.math类中的BigDecimal方法:
import java.math.BigDecimal;
其中使用了BigDecimal.ROUND_HALF_DOWN将小数点后两位之后的数字直接抹去。
BigDecimal z = new BigDecimal(x1);
x1 = z.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();
BigDecimal d = new BigDecimal(x2);
x2 = d.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();
这个程序的核心思想是通过二元一次函数的求根公式,先求出Δ,然后判断是否为Δ是否为0,再将a,b,c带入求根公式当中进行计算,最后将大的数存入x1,小的数存入x2,得出最终结果。
具体代码如下:
import java.math.BigDecimal;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner cin = new Scanner(System.in);System.out.println("Please enter the A:");double a = cin.nextDouble();System.out.println("Please enter the B:");double b = cin.nextDouble();System.out.println("Please enter the C:");double c = cin.nextDouble();double dert = b*b-(4*a*c);double x1 = 0.0;double x2 = 0.0;boolean s = false;if(dert>=0){if(dert != 0){x1 = (-b+Math.sqrt(dert))/(a*2);x2 = (-b-Math.sqrt(dert))/(a*2);}else{x1 = x2 = -(b/(a*2));}s = true;x1 = x1 *100 / 100;x2 = x2 *100 / 100;BigDecimal z = new BigDecimal(x1);x1 = z.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();BigDecimal d = new BigDecimal(x2);x2 = d.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();}if(!s){System.out.println("Don't have X");}else{if(x1<x2){double t = x1;x1 = x2;x2 = t;} System.out.println(x1+" "+x2);}cin.close();}
}
下面展示一段测试结果:
而当Δ小于零时:
希望以上代码对于需要的人有所帮助,其中有很大的不足请在评论区批评指正。
java实现一元二次函数求解相关推荐
- JAVA学习-JAVA实现一元二次方程求解
JAVA实现一元二次方程求解 求3X2+4X-1=0的根 代码: public class SolveEquation {//定义公共类public static void main(String[] ...
- java实现一元二次方程求解问题
import java.util.Scanner;class Exer1{public static void main(String[] args){Scanner scan = new Scann ...
- 一元二次函数求解(三角函数、二元一次函数转换为一元二次函数的思路)
下面式子一和式子二是最初的两个式子,其中只有和是未知数,其余的都是已知数.通过推导求出相应的 和两个未知数的值. 式子一: 式子二: 通过上面的两个式子进行联立求解 和 的值. 一开始上面的两个式子求 ...
- C#实现一元二次函数求解(实根+虚根)含源码
代码: //求解ax^2+bx+c=0 using System; using System.ComponentModel;class Programme {static void Main(){st ...
- java 输入 方程,用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a、b及c从命令行做参数输入 java...
题目: 用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a.b及c从命令行做参数输入 java 答案参考: 以下程序在jdk5.0测试通过 import java.util.Sca ...
- 二次函数怎么解用计算机,解二次函数的方法:一元二次函数过已知点,用EXCEL求解系数...
excle利用公式计算二次函数ax2十bx十x的值 假设X在的位置为表格的:D1; 那么在一个需要输出结果的表格中设置公式如下: =(a*D1*D1) (b*D1) D1 即可. Excel 一元二次 ...
- 洛谷——P1024 [NOIP2001 提高组] 一元三次方程求解
P1024 [NOIP2001 提高组] 一元三次方程求解 题目描述 有形如:a x^3 + b x^2 + c x + d = 0a**x3+b**x2+c**x+d=0 这样的一个一元三次方程.给 ...
- c语言求一元二次函数根,编写求一元二次函数的根的函数 C
二次函数与一元二次方程,一元二次不等式的关系? 二次方程ax²+bx+c=0可以看做给定二次函数y=ax²+bx+c的函数值为0时的情况因此当函数与X轴没有交点时,二次方程也无解二次不等式可以看做是二 ...
- 试题 算法训练 一元三次方程求解
试题 算法训练 一元三次方程求解 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 有形如:ax3+bx2+cx+ ...
最新文章
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- 后台开发经典书籍--大话设计模式
- og-bin=mysql-bin_TiDB Binlog 常见问题
- 分享一个帮助用户全屏阅读的jQuery插件 - jQuery fullscreen
- 记录如何防止跨站点脚本攻击之抄写
- Django的Modelforms的介绍
- java 注解校验_Java开发编写自定义校验注解和校验器
- 【数据分享】糖尿病患者研究数据集
- Elastic-jobQuartz定时任务
- yuicompressor java_YUI Compressor使用配置方法 JS/CSS压缩工具
- jq ui.dialog.js简介
- 2021年A特种设备相关管理(电梯)考试题库及A特种设备相关管理(电梯)证考试
- 甲骨文裁员,华大人员瘦身优化,亚马逊鼓励离职?
- 7-6 字符串逆序 (10 分)
- 开源框架Banner实现图片轮播
- html 设计好看的按钮,html 好看按钮
- unity转微信小程序小游戏
- 【转】MIT牛人解说数学体系
- 【装Linux系统时卡在logo处】禁用独显驱动
热门文章
- C++沉思录 第十章
- 人工智能 无人驾驶的第一本书推荐
- 提示 api-ms-win-crt-runtime-l1-1-0.dll丢失 ivms-4200 安装好运行报错api-ms-win-crt-runtime-|1-1-0.dll
- 1116. 【HNOI2008】T_OY(踢欧阳^_^) (Standard IO)斜率优化dp
- 我所遇到的团队管理问题与解决方案
- Altair 画世界热力地图
- POJ 2017 计算公路里程 模拟题
- 数字孪生钢铁行业可视化解决方案开发案例
- group by分组取组内第一条
- 涉及国家秘密的计算机系统集成,深圳哪些企业有涉及国家秘密的计算机信息系统集成资质证书?...