龙空技术网

罗氏算法真是解一元二次方程3000年来的伟大变革?好文值得收藏!

数学边界 13053

前言:

现时你们对“数学x的算法”大体比较注意,大家都需要学习一些“数学x的算法”的相关内容。那么小编同时在网摘上搜集了一些对于“数学x的算法””的相关资讯,希望大家能喜欢,同学们一起来学习一下吧!

我们在初中的时候就学过求解一元二次方程,今天我们再来深入讨论一下这个看上去很简单的问题。

温馨提示:本文全是干货,是一篇深度剖析知识点的好文,非常值得收藏!

我们把形如

ax^2+bx+c=0,a≠0

a、b、c∈R

的方程称之为一元二次方程

要想解这个方程,我们首先要保证方程是有实数解的。

ax^2+bx+c=0

a[x^2+(b/a)x]=-c

a[x^2+(b/a)x+b^2/4a^2]=-c+b^2/4a

a(x+b/2a)^2=(b^2-4ac)/4a

(x+b/2a)^2=(b^2-4ac)/4a^2

以上这个过程,我们称之为配方法

很显然,(x+b/2a)^2≥0

(b^2-4ac)/4a^2=(x+b/2a)^2≥0

a≠0,4a^2>0

b^2-4ac≥0

我们用希腊字母△来表示b^2-4ac

我们称△为判别式,也就是判断一元二次方程是否有实根的式子。

△=b^2-4ac

(x+b/2a)^2=(b^2-4ac)/4a^2

(x+b/2a)^2=△/4a^2

x+b/2a=±√(△/4a^2)=±√△/2a

x=-b/2a±√△/2a

x=(-b±√△)/2a

=[-b±√(b^2-4ac)]/2a

这就是一元二次方程的求根公式。

①当△<0时,方程无实根;

②当△=0时,方程有两个相等实根

x1=x2=-b/2a

特别强调:此时方程是有两个相等的实根,而不是一个实根。

③当△>0时,方程有两个不相等的实根;

x(1,2)=(-b±√△)/2a

总结一下:

①当△≥0时,方程有两个实根;

x(1,2)=(-b±√△)/2a

②当△<0时,方程无实根。

当△≥0时,x(1,2)=(-b±√△)/2a

x1+x2

=(-b+√△)/2a+(-b-√△)/2a

=-2b/2a=-b/a

x1x2

=[(-b+√△)/2a]×[(-b-√△)/2a]

=(b^2-△)/4a^2

=[b^2-(b^2-4ac)]/4a^2

=4ac/4a^2=c/a

x1+x2=-b/a

x1x2=c/a

我们把这两个关系式称之为韦达定理,也称为根与系数的关系。

注意:韦达定理成立的前提是△≥0

根据韦达定理,我们可以得出一个非常重要的结论。

∣x1-x2∣=√(x1-x2)^2

=√(x1^2-2x1x2+x2^2)

=√[(x1^2+2x1x2+x2^2)-4x1x2]

=√[(x1+x2)^2-4x1x2]

=√[(-b/a)^2-4(c/a)]

=√(b^2/a^2-4c/a)

=√[(b^2-4ac)/a^2]

=√△/∣a∣

∣x1-x2∣=√△/∣a∣

注意到,∣x1-x2∣所代表的几何意义就是一元二次方程两个根之间的距离。

所以这个公式称为两根距离公式。

反过来,如果知道方程的两根之和与两根之积,我们也可以构造出这个一元二次方程。

x1+x2=-b/a=α

x1x2=c/a=β

令a=1,则有

-b/a=-b/1=-b=α,b=-α

c/a=c/1=c=β,c=β

b=-α,c=β

x1,x2是如下方程的两个根。

x^2-αx+β=0

求根公式是求解一元二次方程的万能公式,它可以求解任何一个一元二次方程,但求根公式最大的弊端在于运算稍显复杂。

我们能不能更简单的求解方程呢?

ax^2+bx+c=0,a≠0

x^2+(b/a)x+c/a=0

x^2-(-b/a)x+c/a=0

根据韦达定理,若△≥0

x^2-(x1+x2)x+x1x2=0

分解因式可得

(x-x1)(x-x2)=0

由此想到如果我们能将方程分解因式,则可以很快求出方程的两根。

ax^2+bx+c=0,a≠0

(mx+p)(nx+q)=0

mnx^2+(mq+np)x+pq=0

a=mn,b=mq+np,c=pq

(mx+p)(nx+q)=0

mx+p=0或nx+q=0

x1=-p/m,x2=-q/n

这种求解一元二次方程的方法称之为十字相乘法

十字相乘法

十字相乘法最大的优势在于,可以比较简单的求出方程的根。

但十字相乘法的弊端也很明显,那就是适用范围比较狭窄。

一是对于系数可分解为多组因数相乘的情况下,试错次数会增多;二是对于根含根号的方程并不适用。

那么现在问题来了,除了求根公式和十字相乘法,还有没有更好的求根方法?

美国卡内基美隆大学的华裔数学家罗博深教授(美国奥数队总教练)曾提出了一种罗氏算法,被媒体誉为3000年来的伟大变革。

接下来,我们就来看看这个罗氏算法到底有没有那么神奇?

罗博深

罗氏算法

ax^2+bx+c=0,a≠0

根据韦达定理

设x1=-b/2a-u,x2=-b/2a+u

满足x1+x2=-b/a

x1x2=(-b/2a-u)×(-b/2a+u)

=b^2/4a^2-u^2=c/a

u^2=b^2/4a^2-c/a

=(b^2-4ac)/4a^2=△/4a^2

u=±√△/2a

再把u代入x1,x2中得出两根

x1=-b/2a-√△/2a

x2=-b/2a+√△/2a

很显然,代入后化简的结果就是求根公式。

所以这个所谓的罗氏算法并没有什么特别高明的地方,其实罗博深教授本人也说这只是一个简单的小技巧而已,誉为3000年来的伟大变革完全是言过其实。我只能说,现在的有些媒体都是跟风报道,从来不去深究问题背后的本质。

但是,另一方面我们也应该看到罗氏算法相比十字相乘法,更符合数学的思维方式。因为十字相乘法是通过试错或者猜想来分解系数的,而数学不能只靠猜,更应该是通过计算得出的。

接下来我们通过一道例题,用4种不同的方法来求解,大家可以对比一下,哪种方法才是最符合数学精神的方法?

求解方程:x^2-8x+12=0

a=1,b=-8,c=12

△=(-8)^2-4×1×12

=64-48=16>0

方法一:求根公式

x=[-(-8)±√16]/(2×1)

=(8±4)/2=4±2

x1=4-2=2,x2=4+2=6

x1=2,x2=6

方法二:韦达定理

x1+x2=-8/-1=8

x1x2=12/1=12

容易观察出

2+6=8

2×6=12

x1=2,x2=6

方法三:十字相乘法

观察到

1×1=1=a

(-2)×(-6)=12=c

1×(-6)+1×(-2)=-8=b

x^2-8x+12=0

(x-2)(x-6)=0

x-2=0或x-6=0

x1=2,x2=6

方法四:罗氏算法

x1+x2=-8/-1=8

x1x2=12/1=12

(x1+x2)/2=8/2=4

设x1=4-u,x2=4+u

x1x2=(4-u)(4+u)=16-u^2=12

u^2=16-12=4

u=±√4=±2

x1=4-2=2,x2=4+2=6

x1=2,x2=6

以上四种解法,到底孰优孰劣,就留给大家自行判断。

不知道大家有没有注意到,我在以上讲解中反复强调判别式△≥0是判断方程是否有实根的条件,当△<0时,方程无实根。

我为什么要强调实根呢?因为如果将根的范围从实数域扩大到复数域,即使△<0,方程仍然有两个虚根。

我们创造了一个虚数单位i,定义i^2=-1,这样-1就可以开根号了,定义√(-1)=i。

需要强调的是,如果是在复数范围内解方程x^2=-1,x是等于±i,而不是等于i。

在复数域内,当x<0时

√x=√[(-x)×(-1)]=[√(-x)]×[√(-1)]

=[√(-x)]×i=i√(-x)

√x=i√(-x),x<0

对于一元二次方程

ax^2+bx+c=0,a≠0

a、b、c∈R

当△<0时

x=(-b±√△)/2a=[-b±i√(-△)]/2a

总结一下:

①当△≥0时,方程有两个实根;

x(1,2)=(-b±√△)/2a

②当△<0时,方程有两个虚根;

x(1,2)=[-b±i√(-△)]/2a

这样,在复数范围内,无论△为多少,一元二次方程始终都能保证有两个根。

标签: #数学x的算法