精华内容
下载资源
问答
  • Java计算一元二次方程的阶段,要求分别输出x1 x2,或者判断在实数范围内无解
  • 输入一个一元二次方程的系数 a, b, c,求解方程的根。 分析: 1、一元二次方程标准形式: (a ≠ 0) 其中: 是二次项,a 是二次项系数; 是一次项;b 是一次项系数;c 是常数项 2、根据一元二次方程根...

    题目:

    输入一个一元二次方程的系数 a, b, c,求解方程的根。

    分析:

    1、一元二次方程标准形式:

    (a ≠ 0)

    其中:

    是二次项,a 是二次项系数

    是一次项;b 是一次项系数;c 是常数项

    2、根据一元二次方程根的判别式:

     

    ① 当

    时,方程有两个不相等的实数根

    ② 当

    时,方程有两个相等的实数根;

    ③ 当

    时,方程无实数根,但有2个共轭复根

    3、一元二次方程求根公式:

     

    4、程序编写:

    def Quadratic_equation(a=1, b=1, c=1):

    if a != 0:

    print("您计算的一元二次方程为:", f"{a}x**2 + {b}x + {c}")

    d = a ** 2 - 4 * a * c

    if d > 0:

    d = math.sqrt(d)

    x1 = (-b + d) / (2 * a)

    x2 = (-b - d) / (2 * a)

    print(f'两根:x1={x1}, x2={x2}')

    elif d == 0:

    x1 = x2 = -b/ (2 * a)

    print(f'两根:x1={x1}, x2={x2}')

    else:

    print('该方程无实数解')

    else:

    print('您输入的不是一元二次方程')

    【结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!

    后记

    近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

     

    展开全文
  • Python 实现一元二次方程

    千次阅读 2019-06-18 11:50:17
    1.化方程为一般式: 2.确定判别式,计算Δ(希腊字母,音译为戴尔塔)。 ;...0,该方程在实数域内有两个不相等的实数根:;...任何一元二次方程组都能写成一般形式: ① 运用配方法能否出①呢...

    1.化方程为一般式:

     

    2.确定判别式,计算Δ(希腊字母,音译为戴尔塔)。

      

    3.若Δ>0,该方程在实数域内有两个不相等的实数根:;

     

    若Δ=0,该方程在实数域内有两个相等的实数根:

      

    若Δ<0,该方程在实数域内无解,但在虚数域内有两个共轭复根,为

      

    证明:

     

    任何一元二次方程组都能写成一般形式:

    运用配方法能否解出①呢?

    移项,得

      

    .

    二次项系数化1,得

      

    .

    配方

     

      

    ∵a≠0

    ∴4a2>0

    的值有三种情况:

    1)

     

    由②得

     

    2)

     

    由②得

    3)

     

    由②得<0

    ∴实数范围内,此方程无解 [1] 

    判别式

    编辑

    一般的,式子

      

    叫做方程

      

    判别式,通常用希腊字母Δ表示它,即

      

    . [1] 

    求根公式

    编辑

    综上所述,当Δ≥0时,方程

      

    的实数根可写为的形式,

      

    这个式子叫做一元二次方程

      

    求根公式,通过求根公式可知,一元二次方程的根只可能有两个(有相同的算两个)。 [1] 

    注意事项

    编辑

    一定不会出现不能用公式法解一元二次方程的情况。

    但在能直接开方或者因式分解时最好用直接开方法和分解因式法。

     

    Python实现:

    1. 引入math

    2. 定义返回的对象

    3. 判断b*b-4ac的大小

    具体计算代码如下:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    # -*- coding:utf-8 -*-

    #! python2

    import math

    class Result:

      result1 = 0

      result2 = 0

      def __init__(self, r1, r2):

        self.result1 = r1

        self.result2 = r2

      def __return__(self):

        return Result(self.result1, self.result2)

    def main(a, b, c):

      num = b*b-4*a*c

      if num < 0:

        return 'no result'

      elif num == 0:

        return Result((-b+math.sqrt(num))/(2*a), (-b+math.sqrt(num))/(2*a))

      else:

        return Result((-b+math.sqrt(num))/(2*a), (-b-math.sqrt(num))/(2*a))

    if __name__ == '__main__':

      result = main(1, 2, 1)

      print result.result1, result.result2

     

     

    展开全文
  • c++ 求解一元二次方程

    2015-04-10 03:03:26
    假定有一元二次方程ax^2+bx+c=0,其各项系数分别为a,b,c,依次输入a,b,c的值(均为实数),输出该方程对应的解x1和x2 注意:(1)当a为0时,求解一次方程;(2)二次方程需考虑有一个解、两个实数解和两个复数解的...
  • 题目描述 输入描述 每个案例是关于x的一个二次方程...形如ax2+bx+c=0的一元二次方程,Δ\DeltaΔ=b2-4ac。当Δ\DeltaΔ<0时,方程无;当Δ\DeltaΔ>=0时,方程有,其为x1=−b+Δ2a\frac{-b+ \sqrt\De
    题目描述

    输入描述
    每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式。
    输出描述
    每个案例输出两个实数(由小到大输出,中间由空格隔开),保留两位小数;如果无解,则输出“No Solution”。

    示例

    输入
    x^2+x=3x+4
    输出
    -1.24 3.24

    解法

    形如ax2+bx+c=0的一元二次方程,Δ\Delta=b2-4ac。当Δ\Delta<0时,方程无实解;当Δ\Delta>=0时,方程有解,其解为x1=b+Δ2a\frac{-b+ \sqrt\Delta}{2a}, x2=x1=bΔ2a\frac{-b-\sqrt \Delta}{2a}

    1. 将输入方程以等号为界分为左侧和右侧。
    2. 将两侧的式子都进行分割,形成形如ax2,bx,c的字符串,并将其放入vector中。
    3. 对vector进行遍历,分离出二次项、一次项、常数项系数,并分别相加。
    4. 将左侧得到的al,bl,cl与右侧得到的ar,br,cr作差,即可得到形如ax2+bx+c=0中的a,b,c。
    5. 利用求值公式即可求出方程的解x1,x2。
    实现代码
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include<iomanip>
    #include <cmath>
    using namespace std;
    
    void solution(string s,int &a,int &b,int &c)
    {
        vector<string> v;
        int n=s.length(),begin=0;
        //分割
        for (int i=0;i<n;i++)
        {
            if (s[i]=='+')
            {
                v.push_back(s.substr(begin,i-begin));
                begin = i+1;
            }
            else if (s[i]=='-')
            {
                v.push_back(s.substr(begin,i-begin));
                begin = i;
            }
            else if(i==n-1)
                v.push_back(s.substr(begin,i-begin+1));
        }
    
        for (int i=0;i<v.size();i++)
        {
            if (v[i]=="")
                continue;
            if (v[i].length()>2&&v[i][v[i].length()-2]=='^')
            {
                if (v[i][0]=='x')
                    a += 1;
                else if (v[i][0]=='-'&&v[i][1]=='x')
                    a += -1;
                else
                    a += stoi(v[i].substr(0,v[i].length()-3));
    //             cout<<"二次系数:"<<a<<endl;
            }
            else if(v[i][v[i].length()-1]=='x')
            {
                if (v[i][0]=='x')
                    b += 1;
                else if (v[i][0]=='-'&&v[i][1]=='x')
                    b += -1;
                else
                    b += stoi(v[i].substr(0,v[i].length()-1));
    //             cout<<"一次系数:"<<b<<endl;
            }
            else 
            {
                c += stoi(v[i].substr(0,v[i].length()));
    //             cout<<"常系数:"<<c<<endl;
            }
        }
    }
    //     2x^2+x+6-4x=3x+4
    int main ()
    {
        string s,sright,sleft;
        double x1,x2;
        
        while(cin>>s)
        {
            int n=s.length(),i;
            int ar=0,br=0,cr=0,al=0,bl=0,cl=0,a,b,c;
            double delta;
            for(i=0;i<n&&s[i]!='=';i++);
            sright = s.substr(0,i);
            sleft = s.substr(i+1,n-i-1);
            
            solution(sright,ar,br,cr);
    //         cout<<ar<<" "<<br<<" "<<cr<<endl;
            solution(sleft,al,bl,cl);
    //         cout<<al<<" "<<bl<<" "<<cl<<endl;
            
            a = ar-al;
            b = br-bl;
            c = cr-cl;
            delta = b*b-4*a*c;
            if (delta<0)
                cout<<"No Solution"<<endl;
            else
            {
                x1 = (-b-sqrt(delta))/2/a;
                x2 = (-b+sqrt(delta))/2/a;
                cout<<fixed<<setprecision(2)<<min(x1,x2)<<" "<<max(x1,x2)<<endl;
            }
        }
        
        return 0;
    }
    

    此代码可以适用于a1x2+b1x+b3x+c1=a2x2+b2x+c2+c3a_1x^2+b_1x+b_3x+c_1=a_2x^2+b_2x+c_2+c_3此类的非最简式,其中系数可以不为整数。

    展开全文
  • 一元二次方程求解以及表达式

    千次阅读 2019-11-10 16:02:42
    求解一元二次方程,并且写出表达式,这个写的很啰嗦,求大佬给简洁代码。 a ,b ,c = eval(input('方程系数:')) #判断a = 0? if a == 0: if b == 0: if c == 0: print('任意实数') else: print('无解') else...

    求解一元二次方程,并且写出表达式,这个写的很啰嗦,求大佬给简洁代码。

    a ,b ,c = eval(input('方程系数:'))
    #判断a = 0? 
    if a == 0:
        if b == 0:
            if c == 0:
                print('任意实数')
            else:
                print('无解')
        else:
            print('x = ', ((-1 * c) / b))
    else:#打印方程表达式
        if  b > 0 and c > 0:#++
          print('Function = ' + str(a)+'x^2' + ' + ' +
          str(b) + 'x' + ' + ' + str(c) )
    
        elif  b > 0 and c < 0:#+-
            print('Function = ' + str(a) + 'x^2' + ' + ' +
              str(b) + 'x' + ' ' + str(c))
    
        elif  b < 0 and c > 0:  #-+
            print('Function = ' + str(a) + 'x^2' + '  ' +
              str(b) + 'x' + ' + ' + str(c))
    
        elif  b < 0 and c < 0:#--
           print('Function = ' + str(a) + 'x^2' + ' ' +
              str(b) + 'x' + ' ' + str(c))
    
        elif  b == 0 and c == 0:#00
           print('Function = ' + str(a) + 'x^2')
    
        elif b == 0 and c < 0:#0-
           print('Function = ' + str(a) + 'x^2' +  ' ' + str(c))
    
        elif b == 0 and c > 0:#0+
           print('Function = ' + str(a) + 'x^2' + ' + ' + str(c))
    
        #elif b > 0 and c == 0:  #+0
           #print('Function = ' + str(a) + 'x^2' + '+' + str(b) + 'x')
    
        elif b < 0 and c == 0:  # -0
           print('Function = ' + str(a) + 'x^2' + ' ' +
                 str(b) + 'x' )
    
        else:#+0
            print('Function = ' + str(a) + 'x^2' + ' +' +str(b) + 'x')
            #print('pass')
    
    
        Delt = b**2 - 4*a*c#判别式delt
        print('Delt=',Delt)
    
        if a * b != 0:#分母不为零
            x1 = (  (-b) + ( b**2 - 4*a*c )**0.5  ) / (2*a*b)#方程的根
            x2 = (  (-b) - ( b**2 - 4*a*c )**0.5  ) / (2*a*b)
        else:#分母为零
            x1 = ( (-1) * c)**0.5
            x2 = ((-1) * c) ** 0.5
    
    #print('x1 = ',x1,'\n','x2 = ',x2)
        #输出结果
        if Delt == 0:
    
           print('方程的根为:\n x1 = x2 = %f '%(x1))
        elif Delt > 0:
           print('方程的根为:\n x1 = %f  \n x2 = %f ' % (x1, x2))
        else:
           print('方程无实数根')
           print('方程的虚根为:')
           print('x1 = ', x1, '\n', 'x2 = ', x2)
    
    展开全文
  • print "该方程不是一元二次方程,x=”,x1 elif (d>0): x1 = (-b+sqrt(d))/(2*a) x2 = (-b-sqrt(d))/(2*a) print "方程有两个异根","x1=",x1,"x2=",x2 elif(d = 0): x1 = x2 =-b/2a print "方程有两个同根",...
  • 一元二次方程求解

    2017-12-26 21:48:00
     另外说明:b^2-4ac在根号下,b2-4ac为负数,不出来实数根,中学阶段称为“无解”, 其实那是虚数根。 import java.util.Scanner; // Scanner这个工具类,java利用Scanner获取键盘输入 public class equa
  • 1.用函数实现求一元二次方程ax^2+bx+c=0的根,要求二次方程的系数a,b,c由键盘输入。 #include "iostream" #include "math.h" using namespace std; void getValue(double a,double b,double c){ if(b*b-4*a*c<...
  • 算法题(计算一元二次方程的根)

    千次阅读 2019-10-25 22:24:58
    原题链接 ...如果有就按从小到大的方式输出2个,满足a不等0(一元二次方程,我说的没错吧,就是简单题),中间用空格隔开,格式如样例。(结果保留2位小数)。 解题思路 1、正常数学思维即可解题。 ...
  • 解一元二次方程

    2017-03-10 16:41:36
    编写程序实现输入一元二次方程()中的三个参数a,b,c,输出该方程的解,若有一个解则输出“x1=x2=×××”,若有两个解则分别输出x1和x2,无实数解,则输出无实数解!另:需要实现这个功能:解完一个方程输出提示...
  • 首先,先回忆一下一元二次方程的求根公式: 分别读取二次项、一次项和常数项系数并且求出delta 无解情况 此时同时输出delta的值,小于0,无解。 2.只有一个根的情况 当delta等于0,只有一...
  • 6.(编程)求ax2+bx+c=0方程

    千次阅读 2019-05-08 11:40:00
    1.a=0,方程不是二次方程(是一元一次方程); 2.b2-4ac=0,有两个相等的实根; 3. b2-4ac>0,有两个不等的实更; 4. b2-4ac<0,有两个共轭复根(高中所学为无解,但现在应该以p+qi和p-qi的形式输 出复根,...
  • 求解一元二次方程的根 描述 一元二次方程ax2+bx+c=0(注:2为幕指数),a、b、c的值由用户在三行中输入,根据用户输入的数值,求解方程的实数解: (1)如果a值为0,...
  • python简单题目

    2019-09-30 02:30:20
    1:编写程序,求一元二次方程的解。要求:输入a、b、c的值,如果a等于0,输出“a不能为0,不是一元二次方程”;否则输出方程解的情况(无实数解、有一个实数解并输出该解、有两个实数解并输出)。 import matha=int...
  • import java.util.Scanner; /* 题目的要求是:求一元二次方程的根 第一步确定一元二次方程的表达式:a*x^2+b*x+c=0 第二步确定一元二次方程跟的情况 ... 小于0,无实数解 等于0,有两个相同的解...
  • 模拟复数及其运算

    千次阅读 2012-11-26 15:48:53
    比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。 形如z=a+bi的数称为复数(complex number),其中规定i为虚数单位,且i^2=i×i=-1(a,b是任意实数)。我们将复数z=a+bi中的实数a称为...
  • PAGE 7 信息技术 算法及其实现练习 一选择题 1. 在求解一元二次方程实数根的算法...已知abc的值求一元二次方程ax2+bx+c=0a0的实数根 B.计算某个班级语文成绩的平均分 C.列出方程y=2x+1的所有实数解 D.根据圆的半径求圆
  • 第三章流程控制语句

    2020-02-08 18:02:38
    使用代码写出一元二次方程的两个,提示用户输入a b c的值,用方程判别式b^2-4ac,如果它是正值,该方程就有两个实数根,如果它为零显示一个根,如果他是负数,方程式无实数根。 import java.util.Scanner;//从...
  • sdnu1215.复数乘积

    2017-11-01 19:53:54
    sdnu1215.复数乘积 Time Limit: 1000 MS Memory Limit: 131072 KB Total Submission(s): 53 Accepted Submission(s): ...比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。 定义:形如z=a+b
  • sdnu1214.复数加法

    2017-11-01 19:55:25
    1214.复数加法 Time Limit: 1000 MS Memory Limit: 131072 KB Total Submission(s): 47 Accepted Submission(s...比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。 定义:形如z=a+bi的数称
  • 比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。  定义:形如z=a+bi的数称为复数(complex number),其中规定i为虚数单位,且i^2=i*i=-1(a,b是任意实数)  我们将复数z=a+bi中的实数...
  • 1168: 复数加法

    2017-05-24 19:50:45
    比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。定义:形如z=a+bi的数称为复数(complex number),其中规定i为虚数单位,且i^2=i*i=-1(a,b是任意实数)我们将复数z=a+bi中的实数a称为...
  • R-复数及向量下标

    2012-08-21 09:26:51
    比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。  形如z=a+bi的数称为复数(complex number),其中规定i为虚数单位,且i^2=i*i=-1(a,b是任意实数)  我们将复数z=a+bi中的实数a...
  • - 概念引入 - 点值表示 对于一个$n - 1$次多项式$A(x)$,可以通过确定$n$个... - 复数  对于一元二次方程 $$x^2 + 1 = 0$$ 在实数范围内无解,那么我们将实数范围扩充,就得到了复数,再令$i$为该方程的,即 ...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

一元二次方程无实数解