- 中文名
- 一元二次方程
- 外文名
- quadratic equation with one unknown
- 所属学科
- 代数
- 类 型
- 数学、代数名词
- 定 义
- 通过化简后,只含有一个未知数(一元),并且未知数的最高次数是2(二次)的 整式方程
- 解 法
- 直接开平方法、配方法、公式法、因式分解法
- 表达式
- ax 2 +bx+c=0
简介
播报
编辑
发展简史
播报
编辑
通过分析
古巴比伦
泥板
上的代数问题,可以发现,在公元前2250年古巴比伦人就已经掌握了与求解一元二次方程相关的
代数学
知识,并将之应用于解决有关矩形面积和边的问题。
[2]
相关的算法可以追溯到
乌尔第三王朝
。
[3]
公元前300年前后,活跃于
古希腊
文化中心亚历山大的数学家
欧几里得
(Euclid)所著的《
几何原本
》(Euclid’s Elements)中卷II命题5、命题6以及卷VI命题12、命题13的内容相当于二次方程的几何解。
继欧几里得之后,亚历山大数学发展第二次高潮“白银时代”的代表人物
丢番图
(Diophantus)发表了《算术》(Arithmetica)。该书出现了若干二次方程或可归结为二次方程的问题。这足以说明丢番图熟练掌握了二次方程的求根公式,但仍限于正
有理根
。不过他始终只取一个根,如果有两个正根,他就取较大的一个。
公元628年,印度数学家
婆罗摩笈多
(Brahmagupta,公元598-665年以后卒)完成了《
婆罗摩修正体系
》(Brahma-sphuta-siddhanta),其中有两章专论数学。在该书中,婆罗摩笈多明确给出了形如
的求根公式:
[8]
但婆罗摩笈多当时是用语言来表述的,没有使用符号。
公元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)有两个相等的实数根
配方法
一般地,如果一个一元二次方程通过配方转化成
(II)的形式,那么就有:
⑶当
时,因为对任意的实数
,都有
,所以方程(II)无实数根,但是在复数域内有解
对于任意的一元二次方程
,配方的方法是在方程两边同时加上一次项系数一半的平方。
[1]
公式法
任何一个一元二次方程都可以写成一般形式
(III)
根据用配方法解一元二次方程的经验来解决这个问题:
移项,得
配方,得
即得 ①式
因为
,所以
,式子
的值有以下三种情况:
⑴
这时
由①得
得
方程有两个不等的实数根
⑵
这时
由①得
方程有两个相等的实数根
⑶
这时
由①可知
而
取任何实数都不能使
,因此方程无实数根。
由上可知,
当
时,方程
有两个相等的实数根;
当
时,方程
无实数根。
当
时,方程
的实数根可写为
因式分解法
编程解法
#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