用Excel求方程的根
第7卷第4期
2005年1O月
安顺师范高等专科学校JOURNAlOFANSHUNTEACHERSCOLLEGE
V()1.7O.4
0ct.2005
己s8s8s8s8s8s8s媳∞昌s秘%以弧
l理科教学研究;
9口9叠9口9口9叠9岔9叠9口9叠99口s口9岔99口9静
用Excel求方程的根
高忠生
(安顺师范高等专科学校数学系,贵州安顺561000)
摘要:该文探讨用电子表格Excel实现求解方程的方法,用这些方法可以实现求解方程的
算法.
关键词:解方程;公式法;对分法;试位法;迭代法;松驰法;埃特金;牛顿;割线
中图分类号:TP391.1文献标识码:A文章编号:1672—3694(2005)04—0079—04
在数学上.求方程厂()=0的根,根据方程的特点可以
有多种特殊的方法,但很多方法不适用于计算机求解(如因
式分解法,图像法).计算机求解方程的算法有公式法,对分
法,试位法,普通,松驰,埃特金,牛顿,割线迭代法,抛物线法
等.所有<;数值分析》的教材都是以计算机语言为工具实现算
法,学生往往难以完成.作者所教授的学生中,有数学专业
的,也有计算机专业的;有电大学生,也有普通高校学生,还
有函授学生.教学中,大多数学生能理解算法,但不能编写出
符合要求的程序,无法在短时间内完成计算.经过探索,本人
发现用Excel可实现求方程的根的算法,这些方法直观,简
明,学生可以在短时间内完成计算,取得较好的教学效果.下
面,通过实例介绍实现方法.
说明:
1.为了对比,以下几种方法中都以求方程X3—3x+1
0的近似根(在Excel的精确度范围内)为例.
2.运行结果只选择了能说明问题的部分.
3.工作表中,公式只在首要位置输入,其余部分都用复
制得到.
4.部分公式的推导没有给出,请参阅参考文献.
一
,对分法
基本思想:
对于方程f(z)=0,若f(z)在[n.6]连续.且l,(a)与
f(6)异号,则f()在[a,b]至少有一个根(实为奇数个根).
取[a,b]中点z,求出f(),若,(z)=0一'即为所求的
根;若厂()≠0,则f()与f(a)同号或异号.若同号.则根
在[x,6]区间;否则,根在[a,x]区间.这样.恨的范围缩小
到原来的一半.如此继续下去,直到区间长度小于给定精度
为止.
为此,在单元格中输入公式和数据如下
ABCDEF
1k口女6女女sign(fa))/()
21O1=(B2+C2)/2=踟Ⅳ(B23—3*B2+1)=D23—3*D2+1
^
32=/F(E2*F2<0,B2,D2)=/F(E2*F2<0,D2,C2)=(B3+C3)12:SIGN(B33—3*B3+1)=D33—3*D3+1
说明:
1.本例中,由于f(o)=1,f(1)=一1,因此在B2,C2单
元格的公式中.只需判断f(X)的正负性即可.为了通用,判
断条件改用f(a)*f(X)的正负性来判断.
2.E2单元格的公式,使用了符号函数SIGN,目的是避
免当f(a)很小时,f(a)*f()的绝对值小于机器的最
小值而被机器误当为0.
3.单元格使用相对引用,为了复制公式时相应改变.如
上表中,E3,F3分别是复制E2,F2而得.
选择B3:F3区域,往下复制到k=34时.可得结果如下excel口内打 或者x
表:
收稿日期:2005—05—11
作者简介:高忠生(1962.12~),男,安顺师范高等专科学校数学系讲师. 79?
安顺师范高等专科学校2005年第4期
AB(,DEF
1是nb37ksign())_,'(37)
21010.51—0.375
34330.3472963550.3472963560.3472963551—1.97217E—l0 35340.3472963550.3472963550.3472963551—4.36562E一11
从表上可看出,经过34次迭代可满足要求.
二,试位法
基本思想::f(37)在[n,b]连续,f(n)与_,(b)异号.
连接(n,f(n))和(b,f(b)),则线段必与x轴相交,设交点
横坐标为z.求出f(z),若f(37):0,z即为所求的根;若
f()≠0,则f(z)与f(口)同号或异号,若同号,则根在[,
b]区间;否则,根在[n,]区间.这样,根的范围缩小了.如此
继续下去,直到区间长度小于给定精度为止.
利用解析几何知识可求得:
z=n一
为此,输入数据和公式如下:
1
a.fId))
/一,\()
\.\\'
z,,,\
(I),ffI))]
ABCDEFG
1是nbf(n)f(b)Zf()
2101=B23—3*日2+1=C23—3*C2+1=B2一D2*(C2一日2)/(E2一D2)=3—3*F2+1 32:/F(D2*G2<0,B2,F2):(02*G2<0,F2.C2)=B33—3*B3+1=C33—3*C3+1=B3一D3*(C3一B3)/(E3一D3)=F33—3*F3+1
运行结果为:
ABCDEFG
1是nbf(n)Zf(z)
21011—10.5—0.375
161500.3472963551—5.32907E一150.3472963550
17160.3472963550.3472963550—5.32907E一150.3472963550
从上表可看出,只需经过16次迭代即可.
三,普通迭代法
基本思想:由方程.,(z)=0,构造一个等价方程z=
g(z),从某个z.出发,令z:g(z)女=0,1,2,…
可得出序列{z}.若{z}收敛,则其极限值z*就是原
方程的根;否则,迭代法失败.
例如:由方程一3z+1=0可得z=(z+1)/3,z=
(3z一1).『3
运行结果如下:
因此可得两个递推式:…:(+1)13和=
(337一I)l,3.
输入数据和公式如下表:
ABC
1是01
2Z^0.5=(B2*B2*B2+1)/3
3Z0.5=(B3*3—1)(1/3)
ABCKLM
1是0191011
2Z0.50.3750.3472963570.3472963550.347296355
3Z●0.50.7937005261.53072981615315096741.53184_2089 ABCAAABAC
1是01252627
2Z0.50.375
3Z●0.50.4937005261.5320888851.5320888861.53208;8886 80?
安顺师范高等专科学校2005年第4期
从以上结果可看出.同样的初值,迭代公式不同,收敛的
速度和极限值不同;还可验证,同一个迭代公式,不同的初值,有的收敛,有的发散.
说明:
1.还可构造其它迭代公式;
2.此处是横向复制公式.
四,松驰法
基本思想:
由迭代法知道,g(.)与同是*的近似值,那么
=
(1一W)+Wh()是两个近似值的加权平均(u?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论