资源简介
#include
#include
#define m 10 /*数组长度m >= 维数n */
float f(float x[]);
void mjtf(int n,float x0[],float h,float s[],float a[],float b[]);
void mhjfgf(int n,float a[],float b[],float flag,float x[]);
void mbwef(int n,float x0[],float h,float flag,float a[],float b[],float x[]);
float f(float x[])
{
float result;
result=(x[0]-2)*(x[0]-2)+(x[1]-3)*(x[1]-3)+(x[2]-4)*(x[2]-4);
return result;
}
/*多维进退法子程序*/
void mjtf(int n,float x0[],float h,float s[],float a[],float b[])
{
int i;
float x1[m],x2[m],x3[m],f1,f2,f3;
for(i=0;i<n;i++) /*计算初始两试点*/
代码片段和文件信息
#include
#include
#define m 10 /*数组长度m >= 维数n */
float f(float x[]);
void mjtf(int nfloat x0[]float hfloat s[]float a[]float b[]);
void mhjfgf(int nfloat a[]float b[]float flagfloat x[]);
void mbwef(int nfloat x0[]float hfloat flagfloat a[]float b[]float x[]);
float f(float x[])
{
float result;
result=(x[0]-2)*(x[0]-2)+(x[1]-3)*(x[1]-3)+(x[2]-4)*(x[2]-4);
return result;
}
/*多维进退法子程序*/
void mjtf(int nfloat x0[]float hfloat s[]float a[]float b[])
{
int i;
float x1[m]x2[m]x3[m]f1f2f3;
for(i=0;i {
x1[i]=x0[i];
x2[i]=x0[i]+h*s[i];
}
f1=f(x1);
f2=f(x2);
if(f2>=f1) /*判断搜索方向*/
{ /*搜索方向为反向,转身*/
h=(-1)*h;
for(i=0;i x3[i]=x1[i];
f3=f1;
for(i=0;i x1[i]=x2[i];
f1=f2;
for(i=0;i x2[i]=x3[i];
f2=f3;
} /*搜索方向为正向*/
for(i=0;i x3[i]=x2[i]+h*s[i];
f3=f(x3);
while(f3 { /*未完成,继续搜索*/
h=2*h;
for(i=0;i x1[i]=x2[i];
f1=f2;
for(i=0;i x2[i]=x3[i];
f2=f3;
for(i=0;i x3[i]=x2[i]+h*s[i];
f3=f(x3);
} /*已完成*/
for(i=0;i {
if(x1[i] {
a[i]=x1[i];
b[i]=x3[i];
}
else
{
a[i]=x3[i];
b[i]=x1[i];
}
}
}
/*多维黄金分割法子程序*/
void mhjfgf(int nfloat a[]float b[]float flagfloat x[])
{
int i;
float x1[m]x2[m]f1f2sum;
for(i=0;i x1[i]=b[i]-(float)0.618*(b[i]-a[i]);
f1=f(x1);
for(i=0;i x2[i]=a[i]+(float)0.618*(b[i]-a[i]);
f2=f(x2);
do
{
if(f1<=f2) /*判断消去区间*/
{ /*消去右*/
for(i=0;i b[i]=x2[i];
for(i=0;i x2[i]=x1[i];
f2=f1;
for(i=0;i x1[i]=b[i]-(float)0.618*(b[i]-a[i]);
f1=f(x1);
}
else
{ /*消去左*/
for(i=0;i a[i]=x1[i];
for(i=0;i x1[i]=x2[i];
f1=f2;
for(i=0;i x2[i]=a[i]+(float)0.618*(b[i]-a[i]);
f2=f(x2);
- 上一篇:惩罚函数法
- 下一篇:日历管理系统.cpp
评论
共有 条评论