一元二次方程

数学、代数名词
收藏
0 有用+1
0
本词条由 中国科学院自然科学史研究所 参与编辑并审核,经 科普中国·科学百科 认证 。
通过化简后,只含有一个 未知数 (一元),并且未知数的最高次数是2(二次)的 整式方程 ,叫做一元二次方程(quadratic equation with one unknown)。
中文名
一元二次方程
外文名
quadratic equation with one unknown
所属学科
代数
类    型
数学、代数名词
定    义
通过化简后,只含有一个未知数(一元),并且未知数的最高次数是2(二次)的 整式方程
解    法
直接开平方法、配方法、公式法、因式分解法
表达式
ax 2 +bx+c=0

简介

播报
编辑
一元二次方程的一般形式是
,其中
是二次项,
二次项系数
是一次项,
一次项系数
常数项
使一元二次方程左右两边相等的未知数的值叫做一元二次 方程的解 ,也叫做一元二次方程的根(root)。 [1]

发展简史

播报
编辑
通过分析 古巴比伦 泥板 上的代数问题,可以发现,在公元前2250年古巴比伦人就已经掌握了与求解一元二次方程相关的 代数学 知识,并将之应用于解决有关矩形面积和边的问题。 [2] 相关的算法可以追溯到 乌尔第三王朝 [3]
在发现于 卡呼恩 (Kahun)的两份 古埃及 纸草 书上也出现了用 试位法 求解 二次方程 的问题。 [4]
公元前300年前后,活跃于 古希腊 文化中心亚历山大的数学家 欧几里得 (Euclid)所著的《 几何原本 》(Euclid’s Elements)中卷II命题5、命题6以及卷VI命题12、命题13的内容相当于二次方程的几何解。
继欧几里得之后,亚历山大数学发展第二次高潮“白银时代”的代表人物 丢番图 (Diophantus)发表了《算术》(Arithmetica)。该书出现了若干二次方程或可归结为二次方程的问题。这足以说明丢番图熟练掌握了二次方程的求根公式,但仍限于正 有理根 。不过他始终只取一个根,如果有两个正根,他就取较大的一个。
中国古代数学 很早就涉及二次方程问题。在中国传统数学最重要的著作《 九章算术 》中就已涉及相关问题。因此可以肯定,二次方程及其解法自东汉以来就已为人们所熟知了。 [5]
公元628年,印度数学家 婆罗摩笈多 (Brahmagupta,公元598-665年以后卒)完成了《 婆罗摩修正体系 》(Brahma-sphuta-siddhanta),其中有两章专论数学。在该书中,婆罗摩笈多明确给出了形如
的求根公式:
[8]
但婆罗摩笈多当时是用语言来表述的,没有使用符号。
前面叙述的这些数学成就大多是后来的数学史家们考证的成果,而近现代数学中 方程思想 的源头一般明确追溯到9世纪初的 阿拉伯世界
公元5-11世纪,是 欧洲历史 上的黑暗时期。天主教会成为欧洲社会的绝对势力。封建宗教统治,使一般人笃信天国,追求来世,从而淡漠世俗生活,对自然不感兴趣。教会宣扬天启真理,并拥有解释这种真理的绝对权威,导致了理性的压抑,欧洲文明在整个中世纪处于凝滞状态。由于罗马人偏重于实用而没有发展 抽象数学 ,终使 黑暗时代 的欧洲在数学领域毫无成就。 [6] 在此期间,阿拉伯人在保存和传播希腊、印度甚至中国的文化,最终为近代欧洲的 文艺复兴 准备学术前提方面作出了巨大贡献。
在推翻 倭马亚王朝 之后, 阿拔斯王朝 将首都迁往 巴格达 ,其第二任哈里发 曼苏尔 (al-Mansur,公元754-775年在位)仿效 波斯 旧制,建立起了完整的 行政体制 。在最初的100年时间里,特别是第五任哈里发 哈伦·拉希德 (Harunal-Rashid,公元786-809年在位)和第七任哈里发 马蒙 (al-Ma'mūn,公元813-833年在位)执政时期,是 阿拉伯帝国 极盛时期,同时阿拉伯帝国的科学 文化事业 在广泛吸收古希腊、印度等文明成果的基础上进入了繁荣昌盛阶段。
阿拉伯数学 的突出成就首先表现在代数学方面。中世纪阿拉伯数学家对世界影响最大的可说是阿尔·花剌子模(al-Khwārizmī,约公元783-850年)。约公元820年,花剌子模的著作《还原与对消之书》(al-Kitāb al-jabr wal-muqābala,简称《代数学》)问世。在该书中,他将“还原(al-jabr)”定义为这样一种运算,即将方程一侧的一个减去的 量移 到方程的另一侧变为加上的量;单词“wa”是“和”的意思;“al-muqābala”的意思是将方程两侧相等的同类正项消去,此处译为“对消”。后来的阿拉伯数学家通常用“还原(al-jabr)”一词来代替整个还原与对消算法,并逐渐用来表示一个数学分支,最终其演变为当代的“代数(algebra)”一词。 [11]
由于花剌子模只承认方程的正根,所以在《代数学》中他将一元二次方程分为六种类型:
其中
,这样便穷尽了有正根的一元二次方程的所有可能,同时花剌子模给出了与当代相同的公式解。《代数学》全书没有符号,但有明确的方程思想,其中“还原与对消”方法作为代数学的基本特征被长期保留下来,并基本确立了后世阿拉伯代数学中方程化简( 多项式 理论)和 方程求解 这两条主要发展脉络。 [7] 正因如此,著名数学史家鲍耶(C.B.Boyer,1906-1976年)将花剌子模称为“代数学之父”。 [1]
花剌子模的工作很快被阿布·卡米尔(Abū Kāmil,约公元850-930年)等阿拉伯数学家继承并发展。虽然花剌子模的《代数学》在12世纪初已被译成 拉丁文 并开始在 伊比利亚半岛 传播,但对花剌子模代数思想在欧洲传播起到关键作用的是意大利数学家 斐波那契 (Fibonacci,约1170-1250)。斐波那契在其著作《 计算之书 》(Liber Abaci,1202)中系统介绍了印度- 阿拉伯数码 ,二次和 三次方程 以及 不定方程 理论。斐波那契参阅了卡米尔的代数学著作,并指出与一元二次方程有关的理论源自花剌子模。《计算之书》对改变欧洲数学的面貌产生了很大影响,并最终引导了16世意大利代数方程求解方向的突破。
随着欧洲人在代数学领域的深入研究,包括一元二次方程在内的数学知识进一步向前发展。法国数学家韦达(F.Vieta,1540-1603)给出了 代数方程 的近似解法与代数方程的多项式分解因式解法,并将 数学符号 系统化。1637年, 笛卡儿 (René Descartes ,1596-1650)完成了对韦达代数符号的改进并首次应用 待定系数法 四次方程 分解成两个二次方程求解。 [11]

解法

播报
编辑

直接开平方法

一般地,对于方程(I)
(I)(x 2 =p是最简单的一元二次方程)
⑴当
时,根据 平方根 的意义,方程(I)有两个不等的 实数根
⑵当
时,方程(I)有两个相等的实数根
⑶当
时,因为对任意的实数
,都有
,所以方程(I) 无实数根 。但是方程(I)在复数域内有解

配方法

一般地,如果一个一元二次方程通过配方转化成
(II)的形式,那么就有:
⑴当
时,根据平方根的意义,方程(II)有两个不等的实数根
⑵当
时,方程(II)有两个相等的实数根
⑶当
时,因为对任意的实数
,都有
,所以方程(II)无实数根,但是在复数域内有解
对于任意的一元二次方程
,配方的方法是在方程两边同时加上一次项系数一半的平方。 [1]

公式法

任何一个一元二次方程都可以写成一般形式
(III)
根据用配方法解一元二次方程的经验来解决这个问题:
移项,得
二次项 系数化为1 ,得
配方,得
即得 ①式
因为
,所以
,式子
的值有以下三种情况:
这时
由①得
方程有两个不等的实数根
这时
由①得
方程有两个相等的实数根
这时
由①可知
取任何实数都不能使
,因此方程无实数根。
一般地,式子
叫做一元二次方程
根的判别式,通常用 希腊字母
”(读作:[ˈdeltə])表示它,即
.
由上可知,
时,方程
有两个不等的实数根;
时,方程
有两个相等的实数根;
时,方程
无实数根。
时,方程
的实数根可写为
这个式子叫做一元二次方程
的求根公式。
求根公式表达了用 配方法 解一般的一元二次方程的结果。解一个具体的一元二次方程时,把各系数直接代入求根公式,可以避免配方过程而直接得出根,这种解一元二次方程的方法叫做 公式法

因式分解法

把一个一元二次方程整理成一般形式
后,如果能够较简便地分解成两个 一次因式 的乘积,则一般用 因式分解 来解这个一元二次方程。
将方程左边分解成两个一次 因式 的乘积后(一般可用 十字相乘法 ),分别令每一个因式等于零,可以得到两个 一元一次方程 。解这两个一元一次方程,得到的两个解都是原方程的解。
如果一元二次方程
存在两个 实根
,那么它可以因式分解为
如上所述,不是用开平方 降次 ,而是先因式分解,使方程化为两个一次式的乘积等于0的形式,再使这两个一次式分别等于0,从而实现降次,这种解一元二次方程的方法叫做 因式分解法
注:当方程 等号 两边同时出现同一个 整式 时,不可以用约分的方法约去相同的整式。

编程解法

用C语言求解一元二次方程的代码如下 [9]
#include <stdio.h> #include <math.h> int main(void) double a ,b , c; double delta; double x1, x2; char ch; printf("请输入一元二次方程的三个系数:\n"); printf("请输入系数 a = \t"); scanf("%lf",&a); printf("请输入系数 b = \t"); scanf("%lf",&b); printf("请输入系数 c = \t"); scanf("%lf",&c); delta = b*b-4*a*c; if(delta>0) x1= ( -b+sqrt(delta) )/(2*a);; x2= ( -b-sqrt(delta) )/(2*a);; printf("有2个实数解:x1 = %lf x2 = %lf\n",x1,x2); else if(delta==0) x1=( -b+sqrt(delta) )/(2*a);; printf("有2个相等实数解:x1=x2 = %lf\n",x1); printf("无实数解\n"); printf("是否继续吗:Y/N\n"); scanf(" %c",&ch); }while(ch=='y'||ch=='Y'); return 0; }
用python语言求解一元二次方程的代码如下 [10]
# 导入math模块 import math # 定义函数,求解一元二次方程 def quadratic_equation(a, b, c): # 计算判别式 discriminant = b ** 2 - 4 * a * c # 如果判别式大于0,则有两个实数根 if discriminant > 0: root1 = (-b + math.sqrt(discriminant)) / (2 * a) root2 = (-b - math.sqrt(discriminant)) / (2 * a) return root1, root2 # 如果判别式等于0,则有一个实数根 elif discriminant == 0: root1 = -b / (2 * a) return root1 # 如果判别式小于0,则无实数根 else: return "无实数根" # 输入参数 a = 1