- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23472 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7535
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 2
- 分享
- 0
- 好友
- 6
升级   50.7% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
数学建模一 单变量优化和求解 进退搜索法
2 W; V& l) J$ r8 V) q1 _. F! i7 G
9 K& G' g( i5 u2 G2 d0 ~! r7 O& h2 }
3 I3 J+ h2 ~3 \0 p) ]
" R1 Q, {" n }1 K) |- c#include<iostream>#include<cmath>using namespace std;double f(double x); //函数f(x)int main() { double x,x0, h, e,b1,b2,f1,f2; h = 1.0; //h为起始搜索步长 e = 0.0001; //搜索终止条件 x0 = 0.0; x = x0; //初始点 b1 = 2.0;b2 = -0.5; //成功则加倍b1前进,失败则小步(b2倍)后退 f1 = f(x0); while (1) //进退搜索法 { f2 = f(x + h); if (f1 > f2) { x = x + h;f1 = f2;h = b1*h; continue; } if (fabs(h) < e) //检查是否满足终止条件 { cout << x << ' ' << f1 << endl; break; } else h = b2*h; } return 0;}double f(double x){ return (pow(x, 4) - 5 * pow(x, 3) + 4 * pow(x, 2) - 6 * x + 60+sin(x));}
9 J' m7 G- [3 {- k
3 o5 V* Y ?* `5 @; h. o4 L
$ [. z$ {1 P& g" M7 L; }: P! p+ o/ r0 b% c, {8 i
|
zan
|