tceic.com
学霸学习网 这下你爽了
相关标签
当前位置:首页 >> 数学 >>

【题4】一元三次方程求解


【题 4】一元三次方程求解
有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数), 并约定该方程存在三个不同实根(根的范围在—100 至 100 之间),且根与根之差的绝对值≥1。 要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后 2 位。 提示:记方程 f(x)=0,若存在 2

个数 x1 和 x2,且 x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一 定有一个根。 输入:a,b,c,d 输出:三个实根(根与根之间留有空格) 输入输出样例 输入: 1 -5 -4 20 输出: -2.00 2.00 5.00

题解
这是一道有趣的解方程题。为了便于求解,将原方程 f(x)=ax3+bx2+cx+d=0 变换成 3 2 f’(x)=x +b’*x +c’*x+d’=0 的形式(其中 b’= ? ? ,c’= ? ? ,d’= ? ? ) ,f(x)和 f’(x)的根不变。设 x 的值域(-100 至 100 之间)中有 x, 2 2 2
? ? ? ? ? ? ?b ? ?c? ?d ?

其左右两边相距 0.0005 的地方有 x1 和 x2 两个数,即 x1=x-0.0005 x2=x+0.0005 x1 和 x2 间的距离(0.001)满足精度要求(精确到小数点后 2 位) 。若出现如图 10.1.2 所示的两种情况之一,则 确定 x 为 f’(x)=0 的根。

图 10.1.2 有两种方法计算 f’(x)=0 的根 x: 1.枚举法 根据根的值域和根与根之间的间距要求(≥1),我们不妨将根的值域扩大 100 倍(-10000≤x≤10000),

x ? 0.05 x ? 0.05 ,x2= 。若区间端点 100 100 x 的函数值 f’(x1)和 f’(x2)异号或者在区间端点 x1 的函数值 f’(x1)=0,则确定 为 f’(x)=0 的一个根。由此得 100
依次枚举该区间的每一个整数值 x,并在题目要求的精度内设定区间:x1= 出算法: 输入方程中各项的系数 a,b,c,d ; 3 2 b←b/a; c←c/a; d←d/a; a←1; {将方程变换为 x +b’*x +c’*x+d’=0 的形式} for x←-10000 to 10000 do {枚举当前根*100 的可能范围} begin x1←(x-0.05)/100; x2←(x+0.05)/100; {在题目要求的精度内设定区间} if (f(x1)*f(x2)<0) or (f(x1)=0){若在区间两端的函数值异号或在 x1 处的函数值为 0,则确定 x/100 为根} then write(x/100:0:2,’’);

end;{for} 其中函数 f(x)计算 x +b*x +c*x+d: function f(x:extended):extended; begin f←x*x*x+b*x*x+c*x+d; end;{f}
3 2

{计算 x +b*x +c*x+d}

3

2

1. 分治法 枚举根的值域中的每一个整数 x(-100≤x≤100)。 由于根与根之差的绝对值≥1, 因此设定搜索区间[x1, 2], x 其中 x1=x,x2=x+1。若 ⑴f’(x1)=0,则确定 x1 为 f’(x)的根; ⑵f’(x1)*f’(x2)>0,则确定根 x 不在区间[x1,x2]内,设定[x2,x2+1]为下一个搜索区间 ⑶f’(x1)*f’(x2)<0,则确定根 x 在区间[x1,x2]内。 问题是,如果确定根 x 在区间[x1,x2]内的话(f’(x1)*f’(x2)<0),如何在该区间找到根的确切位置。采用二分 法,将区间[x1,x2]分成左右两个子区间:左子区间[x1,x]和右子区间[x,x2](其中 x=
x1 ? x 2 ): 2

如果 f’(x1)*f’(x)≤0,则确定根在左区间[x1,x]内,将 x 设为该区间的右指针(x2=x),继续对左区间进 行对分;如果 f’(x1)*f’(x)>0,则确定根在右区间[x,x2]内,将 x 设为该区间的左指针(x1=x),继续对右区 间进行对分; 上述对分过程一直进行到区间的间距满足精度要求为止(x2-x1<0.001)。此时确定 x1 为 f’(x)的根。由此得 出算法: 输入方程中各项的系数 a,b,c,d ; 3 2 b←b/a; c←c/a; d←d/a;a←1; {将方程变换为 x +b’*x +c’*x+d’=0 的形式} for x←-100 to 100 do {枚举每一个可能的根} begin x1←x;x2←x+1; {确定根的可能区间} if f(x1)=0 {若 x1 为根,则输出} then write(x1:0:2,’ ’) else if (f(x1)*f(x2)<0) {若根在区间[x1,x2]中} then begin while x2-x1>=0.001 do {若区间[x1,x2]不满足精度要求,则循环} begin xx←(x2+x1)/2; {计算区间[x1,x2]的中间位置} if f(x1)*f(xx)<=0 {若根在左区间,则调整右指针} then x2←xx else x1←xx; {若根在右区间,则调整左指针} end;{while} write(x1:0:2,’ ’); {区间[x1,x2]满足精度要求,确定 x1 为根} end;{then} end;{for} 其中 f(x)的函数说明如枚举法所示。


推荐相关:

一元三次方程与一元四次方程的根

3.6 一元三次方程与一元次方程的根 3.6.1 一元三次方程的根 一元二次方程的求根公式是众所周知的, 下面我们给出一元三次与一元次方程的求根 公式. ...


一元三次方程求根问题

? ? 3 27 3 4 27 108 以上只得出了一元三次方程一个根的求根公式,还不...科目三实际道路驾驶考试注意事项 驾考新题抢先版216份文档 2015全国两会专题 ...


一元三次方程的解法

1494 年,意大利帕乔利在其一部著作中甚 至指出,若干三次和次方程的求解象化...【附录】一【一元三次方程的解法】 51 1.解方程 x3=1。 ∵ x3-1=(...


一元三次方程的求根公式及其推导

2.求根公式的推导: ( 1) .实根式的推导: 一元三次方程求根公 式由演绎...余弦三倍角公式: cos 3? ? 4 cos3 ? ? 3 cos? , 若将 cos 3?看作...


用一元二次方程解决问题练习题4

一元次方程解决问题练习题4_从业资格考试_资格考试/认证_教育专区。中学试卷 编号 课 题 班级 姓名 评价 A006 1.某种服装,单件利润为 44 元,平均每天可...


用一元二次方程解决问题练习题4

一元次方程解决问题练习题4_从业资格考试_资格考试/认证_教育专区。中学试卷 编号 课 题 班级 姓名 评价 A006 1.某种服装,单件利润为 44 元,平均每天可...


一元三次方程求根公式

浅谈一元三次方程求根公式—《数学文化》的读书报告 邹琼 机械设计制造及其自动化 2009-4 班,学号:2009302216 摘要:使方程两边左右相等的未知数叫做方程的解.一元...


一元三次方程

一元三次方程_数学_初中教育_教育专区。一元三次方程、一元次方程、一元五...结果,塔尔塔利亚 30 道三次方程的解全做了出来,对方却一道题也没做出来。...


一元四次方程求根公式

一元次方程的求根公式-完整 (2012-01-12 14:42:01) 转载 ▼ 我以前发过了此文,但文中有缺少部分,此次经过更正 2013.06.02 一元三次方程求解,中国的范...


一元三次方程的解

一元三次方程的解_语文_高中教育_教育专区。23.2...( x ? ___) 2 ; 2 (4) x2 ? 6 2x ? ...全国计算机等级考试一级练习题 公共基础知识辅导 全国...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com