java一元二次函数

本文介绍了如何在Java中通过Scanner类获取用户输入的一元二次方程系数,计算判别式并根据其确定根的存在情况,最后输出两个可能的实数解。
摘要由CSDN通过智能技术生成

一元二次方程: a x 2 + b x + c = 0 , a ≠ 0 ax^2+bx+c=0,a\ne0 ax2+bx+c=0,a=0

  • 首先求判别式: Δ = b 2 − 4 a c \Delta=b^2-4ac Δ=b24ac
  • 根据辨别式了解根的存在情况: Δ { > 0 两个不相等实数根 = 0 两个相等实数根 < 0  没有实数根 \Delta\begin{cases} \gt0 两个不相等实数根\\ =0\quad 两个相等实数根\\ \lt0\ 没有实数根 \end{cases} Δ >0两个不相等实数根=0两个相等实数根<0 没有实数根
  • 目前只考虑 δ ≥ 0 \delta\ge0 δ0的情况
  • 计算两个实数根: { x 1 = − b + b 2 − 4 a c 2 a x 2 = − b + b 2 − 4 a c 2 a \begin{cases} x_1=\displaystyle\frac{-b+\sqrt{b^2-4ac}}{2a}\\ x_2=\displaystyle\frac{-b+\sqrt{b^2-4ac}}{2a}\\ \end{cases} x1=2ab+b24ac x2=2ab+b24ac
  • 合成一个公式: x = − b ± b 2 − 4 a c 2 a 或 x = − b ∓ b 2 − 4 a c 2 a x=\displaystyle\frac{-b\pm\sqrt{b^2-4ac}}{2a}或x=\displaystyle\frac{-b\mp\sqrt{b^2-4ac}}{2a} x=2ab±b24ac x=2abb24ac

  • ne:not equal不等于
  • gt: greater than 大于
  • it :less than小于
  • ge: gerater than or equal to大于或等于
  • frac: fraction 分数、分式
  • sqrt: square root 平方根
  • pm:plus minus 正负号
  • mp:minus plus 负正号

KaTeX parse error: Undefined control sequence: \time at position 2: 4\̲t̲i̲m̲e̲5=20s
4 ⋅ 6 = 20 4\cdot6=20 46=20

package net.daijixiang1.P02.t01;

import java.util.Scanner;

/**
 * 功能:求解一元二次方程
 *  键盘输入三个系数
 * 作者: 代吉祥
 * 日期: 2024年03月20日
 */
public class Equationnew {
    /*
    * IPO模式:I - Input(输入)、P - process(处理)、 O — Output(输出)
    * java是静态语言,变量必须先声明后使用,而Python是动态语言,变量无需声明就可使用
    */
    public static void main(String[] args) {
        //声明部分
        double a,b,c,delta,x1,x2; // 三个输入变量,一个中间变量,两个输出变量
        //创建扫描器对象(必须有一个参数 - System.in - 标准字节输入流 - 键盘)
        Scanner sc =new Scanner(System.in);



        //输入部分
        System.out.print("a = ");
        a = sc.nextDouble();
        System.out.print("b = ");
        b = sc.nextDouble();
        System.out.print("c = ");
        c = sc.nextDouble();

        //处理部分
        //难点:将数学公式(formula) ==>java表达式(express)
        delta = b * b -4 * a * c;
        x1 = (-b + Math.sqrt(delta))/(2 * a );
        x2 = (-b - Math.sqrt(delta))/(2 * a );
        //输出部分
        System.out.println("x1 = " + x1);
        System.out.println("x2 = " + x2);



    }
}

结果

在这里插入图片描述

  • 29
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,以下是Java代码,用于求解一元二次方程的根: ``` public static void solveQuadraticEquation(double a, double b, double c) { double discriminant = b * b - 4 * a * c; if (discriminant > 0) { double root1 = (-b + Math.sqrt(discriminant)) / (2 * a); double root2 = (-b - Math.sqrt(discriminant)) / (2 * a); System.out.println("方程的两个根分别为:" + root1 + " 和 " + root2); } else if (discriminant == 0) { double root = -b / (2 * a); System.out.println("方程的根为:" + root); } else { System.out.println("方程无实数根!"); } } ``` 其中,a、b、c分别表示一元二次方程的三个系数。如果判别式大于0,则有两个实数根;如果判别式等于0,则有一个实数根;如果判别式小于0,则无实数根。函数中的if语句和else if语句用于判断根的情况,并输出结果。 ### 回答2: 一元二次方程的一般形式为ax² + bx + c = 0,其中a、b、c为实数且a≠0。求解一元二次方程的根有两种方法,分别是公式法和因式分解法。以下是利用公式法来写一个求一元二次方程根的函数: ```java public class QuadraticEquation { public static void main(String[] args) { double a = 2; double b = 3; double c = 1; double[] roots = solveQuadraticEquation(a, b, c); System.out.println("一元二次方程的根为:"); System.out.println("x1 = " + roots[0]); System.out.println("x2 = " + roots[1]); } public static double[] solveQuadraticEquation(double a, double b, double c) { double[] roots = new double[2]; double discriminant = b * b - 4 * a * c; if (discriminant > 0) { roots[0] = (-b + Math.sqrt(discriminant)) / (2 * a); roots[1] = (-b - Math.sqrt(discriminant)) / (2 * a); } else if (discriminant == 0) { roots[0] = -b / (2 * a); roots[1] = -b / (2 * a); } else { // 虚根情况 double realPart = -b / (2 * a); double imaginaryPart = Math.sqrt(-discriminant) / (2 * a); roots[0] = realPart + imaginaryPart; roots[1] = realPart - imaginaryPart; } return roots; } } ``` 上述代码通过定义一个`solveQuadraticEquation`函数求解一元二次方程的根。函数的参数为三个实数a,b,c,返回一个包含两个根的数组。函数利用判别式(b² - 4ac)的值,根据不同情况进行计算:当判别式大于0时,存在两个不相等的实数根;当判别式等于0时,存在两个相等的实数根;当判别式小于0时,存在两个虚根。然后通过公式进行计算并将结果存储在数组中,最后返回该数组。在主函数中,我们定义了一组系数进行测试,并打印出根的结果。 ### 回答3: 一元二次方程的一般形式为 ax² + bx + c = 0 ,其中 a、b、c 为实数且 a ≠ 0。我们可以利用 Java 编程语言编写一个函数求解一元二次方程的根。 ```java public class QuadraticEquation { public static void main(String[] args) { double a = 2.0; double b = -5.0; double c = 3.0; double[] roots = findRoots(a, b, c); System.out.println("根的个数: " + roots.length); System.out.println("根1: " + roots[0]); System.out.println("根2: " + roots[1]); } public static double[] findRoots(double a, double b, double c) { double delta = b * b - 4 * a * c; if (delta > 0) { double root1 = (-b + Math.sqrt(delta)) / (2 * a); double root2 = (-b - Math.sqrt(delta)) / (2 * a); return new double[]{root1, root2}; } else if (delta == 0) { double root = -b / (2 * a); return new double[]{root}; } else { return new double[]{}; } } } ``` 在上述代码中,首先我们定义了一个 `QuadraticEquation` 类,其中的 `findRoots` 方法用于求解一元二次方程的根。该方法接收三个参数:方程的系数 a、b 和 c。根据判别式 delta 的值,我们可以得出以下情况: 1. 如果 delta 大于 0,表示方程有两个不同的实数根,使用公式 `root = (-b ± √delta) / 2a` 求解得到根的值。 2. 如果 delta 等于 0,表示方程有一个实数根,使用公式 `root = -b / 2a` 求解得到根的值。 3. 如果 delta 小于 0,表示方程无实数根,返回一个空数组。 在 `main` 方法中,我们通过传入 a、b、c 的值来调用 `findRoots` 方法,并打印出计算得到的根的个数以及每个根的具体值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值