zoukankan      html  css  js  c++  java
  • C语言之基本算法24—黄金切割法求方程近似根

    //黄金切割法!
    /*
    ================================================================
    题目:用黄金切割法求解3*x*x*x-2*x*x-16=0的根。


    ================================================================
    */
    #include<stdio.h>
    #include <math.h>
    #define E 1e-8
    double hs(double x)
    {
    return 3*x*x*x-2*x*x-16;
    }
    double gen(double a,double b)
    {
    double x,fx,fa,fb,g;
    g=(sqrt(5)-1.0)/2;
    fa=hs(a);
    fb=hs(b);
    while(fabs(b-a)>E)
    {
    x=g*(b-a)+a;
    fx=hs(x);
    if(fa*fx>0)
    {
    a=x;
    fa=fx;
    }
    else if(fb*fx>0)
    {
    b=x;
    fb=fx;
    }
    }
    return x;
    }
    main()
    {
    double a,b,t,fa,fb;
    while(fa*fb>0)
    {
    printf("输入预计区间: a=");
    scanf("%lf",&a);
    printf("输入预计区间: b=");
    scanf("%lf",&b);
    fa=hs(a);
    fb=hs(b);
    }
    t=gen(a,b);
    printf("方程:3*x*x*x-2*x*x-16=0 ");
    printf("解得:x=%.4lf ",t);
    }


    /*
    ================================================================
    评:

    黄金切割法效率高,可是对刚開始学习的人来说编敲代码比較麻烦,相比而言穷举法程序编写

    简单。但效率低下,只是其适用范围非常广。仅仅要给定区间。就能够穷举!对于简单方程

    的求解。穷举法非常easy实现!

    在没有办法的情况下,穷举法是能够採取的。

    ================================================================
    */
  • 相关阅读:
    Linux date自己实现代码
    Linux常用指令
    awk getline命令
    文档资料记录
    数学之美番外篇:平凡而又神奇的贝叶斯方法
    最小二乘法(ZZ)
    SpringMVC简单使用教程
    Oracle设置序列方法
    Bootstrap Table的使用详解
    Html中div块居中显示
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5403194.html
Copyright © 2011-2022 走看看