zoukankan      html  css  js  c++  java
  • The Secant Method(正割法、弦截法) 附C语言代码

    弦截法是一种求方程根的基该方法,在计算机编程中经常使用。


    他的思路是这种:任取两个数x1、x2,求得相应的函数值f(x1)、f(x2)。假设两函数值同号,则又一次取数。直到这两个函数值异号为止。

    连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x。求得相应的f(x)。推断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1)。

    将新的f(x1)与f(x2)连接,如此循环。

    体现的是极限的思想


    //弦截法求x*x*x-5*x*x+16*x-80=0的根
    求x^3-5x^2+16x-80的值:
    #include<math.h>
    #include<stdio.h>
    float f(float x)
    { //计算f(x)的值
    return x*(x*x-5*x+16)-80;
    }
    float point(float x1,float x2)
    {
    //计算与x轴交点的x值
    return (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
    }
    void main()
    {
    //输入两个数x1,x2
    float x1,x2,x;
    do
    {
    printf("输入两个数x1,x2:");
    scanf("%f%f",&x1,&x2)。
    }
    while (f(x1)*f(x2) >= 0); // 当输入两个数大于0为真时,继续又一次输入
    //关键循环步骤:
    do
    {
    x=point(x1,x2);//得到交点的值
    if(f(x)*f(x1)>0)
    x1=x;//新的x1
    else
    x2=x;
    }
    while (fabs(f(x)) > 0.0001); //0.0001为取值精度
    printf("一个解为%f ",x);
    }

  • 相关阅读:
    从迷宫终点出发——Leo鉴书36
    OCP-1Z0-053-V13.02-238题
    OCP-1Z0-053-V13.02-233题
    OCP-1Z0-053-V13.02-232题
    OCP-1Z0-053-V13.02-228题
    OCP-1Z0-053-V13.02-226题
    OCP-1Z0-053-V13.02-225题
    OCP-1Z0-053-V13.02-221题
    OCP-1Z0-053-V13.02-219题
    OCP-1Z0-053-V13.02-216题
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6853682.html
Copyright © 2011-2022 走看看