增值寻根法

本文介绍了一种数值求解方程根的方法——增值寻根法,并通过C语言实现了一个具体的例子,展示了如何寻找方程x^3 + 4x^2 - 10 = 0的根。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    增值寻根法:基本思想为:从初始值x(0)开始,按规定的一个初始步长h来增值。令x(n+1)=x(n)+h,(n=0,1,2…),同时计算f(x(n+1)).在增值过程中会遇到三种情况:1. f(x(n+1))=0,此时x(n+1)即为方程根。
    2. f(x(n))和f(x(n+1))同号,说明区间内无根。
    3. f(x(n))和f(x(n+1))同号,说明区间内有根,则把步长缩小,直至满足精度要求为止,x(n)或x(n+1)就是满足精度的近似根。

      #include<stdio.h>
    double fun(double x){            //原函数
    
         return(x*x*x+4*x*x-10);//求解方程f(x)=x*x*x+4*x*x-10=0的根,精度为10-3.
     }
    int main(){
       double a=1.25,h=1,x=a;
      printf("初始近似值为:%lf\n",a); 
            do{
            if(fun(x)==0){printf("根为:%f",x);return 0;} /*如果初始值函数值为0,则初始值即为根*/
    
          else if(fun(x)*fun(x+h)>0)    /*如果fun(x)和fun(x+h)同号则使X加h并跳出本次循环执行下一次*/
          {x=x+h;continue;}
    
          else if(fun(x)*fun(x+h)<0)   //若异号则说明在X和X+h之间存在函数根,则缩//短步长继续寻根
          {h=h/10.0;}
        }while(h>0.001);//当不满足精度要求时继续执行循环体
    
        printf("根为:%f\n",x);//跳出循环说明满足精度要求则x可近似作为方程根
        return 0;
    }
    
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值