用二分法解一元高次方程的单根(用两种语言描述的:C语言和Matlab语言)

题目:用二分法求f(x)=x^3+x^2-3*x-3=0的正根(精度要求精确到1E-3)。

(1)分析结果的正确性。

(2)进一步考虑如何求出所有根。


算法分析:

 (1)分析题目要求,由于方程是一元三次方程。所以方程应该存在三个根,由于题目要求只求正根,所以下面在用二分法之前应先给定一个正区间。

(2)令f=x^3+x^2-3*x-3,并给定:区间[a,b],其中a>=0,且要保证f(a)*f(b)<0.

(3)这里首先令x1=a,x2=b,先给x一个初值为((x1+x2)/2),判断f((x1+x2)/2)即f(x)的正、负。

若为负数即f(x)<0,则把((x1+x2)/2)赋给x1(或x2),即新区间的左(或右)端点;

若为正数即f(x)>0,则把((x1+x2)/2)赋给x2(或x1),即新区间的右(或左)端点;

若为零即f(x)==0,则找到方程的根。

此步骤的原则是使新区间始终保证f(x1)*f(x2)<0。

在此题中由于经过判断知:f=x^3+x^2-3*x-3的一阶导在[1.0,2.0]上大于0,即f=x^3+x^2-3*x-3在[1.0,2.0]上单调增加。又因为此题中f(1)<0,f(2)>0,所以

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值