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

来源:互联网 发布:java的封装性是通过 编辑:程序博客网 时间:2024/06/09 17:19
#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));} 

0 0
原创粉丝点击