- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23475 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7546
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 2
- 分享
- 0
- 好友
- 6
升级   50.92% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
数学建模一 单变量优化和求解 进退搜索法2 {9 m( b5 R! M H5 T' M. U' C8 |
9 _$ c8 B" q9 y7 T% {0 D' \! m" n- t& ~$ Z4 ?. W
) q2 U; s$ C+ K; B' k* {+ \: g% _
4 D/ B7 Y, D" [. ^, Q* P
#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));}
$ v! _: D6 m/ t& A! b9 ]$ Y8 `
: [& y& y6 I: D! X( i6 A* \# P/ A- Z, U& {
4 L5 y# ^9 u8 ]3 E1 @7 `' G
|
zan
|