佛自业障 发表于 2018-11-1 09:22

数学建模二 单变量优化和求解 黄金分割法

数学建模二 单变量优化和求解 黄金分割法#include<iostream>#include<cmath>using namespace std;double f(double x);int main(){        double a, b, c,d,t, e,f1,f2;        e = 0.00001;                               //e为终止条件        a = 0.0;b = 5.0;                           //a,b为区间端点        t = b - a;                                 //t为区间长度        while (1)        {                c = a + (1 - 0.618)*t;             //左黄金分割点                d = a + 0.618*t;                   //右黄金分割点                f1 = f(c);f2 = f(d);               //分割点函数值                if (f1 > f2)                {                        a = c;t = b - a;                }                else                {                        b = d;t = b - a;                }                if (t < e)                         //检查是否满足终止条件                {                        cout << 0.5*(a + b) << ' ' << f(0.5*(a + b)) << endl;                        break;                }        }        return 0;}double f(double x){        return (pow(x, 4) - 5 * pow(x, 3) + 4 * pow(x, 2) - 6 * x + 60+sin(x));}





页: [1]
查看完整版本: 数学建模二 单变量优化和求解 黄金分割法