二分法求方程2x3-4x2+3x=0在(-10,10)附近的根

用二分法求方程2x3-4x2+3x=0在(-10,10)附近的根(二分法:先找到a、b,使f(a)、f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],现在假设f(a)<0,f(b>0,a<b,如果f[(a+b)2]=0,该点就是零点,如果f[(a+b)/2]<0,则在区间((a+b)/2,b)内有零点,按上述方法再求该区间中点的函数值,通过每次把f(x)的零点所有小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值,该值即是方程的根)。

#include  " Stdio.h "
#include 
" Conio.h "
#include
" math.h "
void  main()
{
    
double  x,fx,fa,fb,a =- 10 ,b = 10 ,z = 0.0001 ;
    fa
= 2 * a * a * a - 4 * a * a + 3 * a;
    fb
= 2 * b * b * b - 4 * b * b + 3 * b;
    
if (fa * fb < 0 )
    {
        
do
        {
            x
= (a + b) / 2 ;
            fx
= 2 * x * x * x - 4 * x * x + 3 * x;
            
if (fx < 0 )
            {
                a
= x;
                fa
= 2 * a * a * a - 4 * a * a + 3 * a;
            }
            
else
            {
                b
= x;
                fb
= 2 * b * b * b - 4 * b * b + 3 * b;
            } 
        }
while (fabs(fa - fb) > z);
    printf(
" The root is:%lf\n " ,x);
    }
    getch();
}

转载于:https://www.cnblogs.com/qixin622/archive/2007/07/02/803314.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值