?? ex1.cpp
字號:
#include <iostream.h>
#define M 0.382
#define N 0.618
double f ( double x )
{
return 2 * x * x - x - 1 ;
}
int main()
{
int num = 0 ; /* num表示迭代次數 */
double a = -1 , b = 1 , s , t , x ; /* [a,b]為搜索區間,s->0.382,t->0.618,x表示所求點 */
s = a + M * ( b - a ) ;
t = a + N * ( b - a ) ;
while ( b - a > 0.16 )
{
if( f(s) > f(t) )
{
a = s ;
s = t ;
t = a + N * ( b - a );
}
else
{
b = t ;
t = s ;
s = a + M * ( b - a );
}
num++;
}
x = ( a + b ) / 2 ;
cout << "經過" << num << "次迭代,滿足精度要求,問題的最優解為" << x <<endl ;
return 0 ;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -