• 大小: 9.75MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-20
  • 语言: C/C++
  • 标签: 求极小值  

资源简介

压缩吧中包含现代设计中函数单峰区间的求解代码,黄金分割法的代码和二次插值的代码,比较全面。

资源截图

代码片段和文件信息

#include “stdio.h“
void searchregion(double double double* double*);
void goldensection(double double doubledouble* double*);
int main()
{
double alpha0 alpha1 a b h;
double precision star_x star_f;
printf(“(作业1大题(1)小题)golden section method\n“);
printf(“请输入alpha0和步长h和精度precision:\n“);
scanf(“%lf %lf %lf“ &alpha0 &h &precision);
searchregion(alpha0 h &a &b);
printf(“%0.4lf %0.4lf \n“ a b);
goldensection(a b precision &star_x &star_f);
printf(“极小值点和极小值:\nX=%0.4lf F(X)=%0.4lf “ star_x star_f);
return 0;
}

//确定搜索区间
void searchregion(double alpha0 double h double *alpha01 double *alpha02)
{
double alpha1 alpha2;
double f1 f2;
alpha1 = alpha0;
alpha2 = alpha0 + h;
f1 = (alpha1*alpha1*alpha1) - 6 * alpha1;
f2 = (alpha2*alpha2*alpha2) - 6 * alpha2;
if (f2 < f1)
{
do {
h = 2 * h;
alpha2 = alpha2 + h;
f1 = f2;
f2 = (alpha2*alpha2*alpha2) - 6 * alpha2;
if (f2 > f1)
break;
else
alpha1 = alpha2 - h;
} while (!(f1 == f2));
*alpha01 = alpha1;
*alpha02 = alpha2;
}
else
{
if (f2 == f1)
{
*alpha01 = alpha1;
*alpha02 = alpha2;
}
else
{
h = -h / 4;
do {
alpha1 = alpha1 + h;
f2 = f1;
f1 = (alpha1*alpha1*alpha1) - 6 * alpha1;
if (f2 < f1)
break;
else
alpha2 = alpha1 - h;
h = 2 * h;
} while (!(f2 == f1));
*alpha01 = alpha1;
*alpha02 = alpha2;
}
}
}

//黄金分割法
void goldensection(double a double b double precision double *star_x double *star_f)
{
double alpha1 alpha2;
double f1 f2;
int i = 1;
alpha1 = a + 0.382*(b - a);
f1= (alpha1*alpha1*alpha1) - 6 * alpha1;
alpha2 = a + 0.618*(b - a);
f2= (alpha2*alpha2*alpha2) - 6 * alpha2;
printf(“迭代次数为%d   a=%0.4lf   b=%0.4lf   alpha1=%0.4lf   alpha2=%0.4lf   f1=%0.4lf   f2=%0.4lf   b-a=%0.4lf\n“
i a b alpha1 alpha2 f1 f2 b - a);
do {
if (f1 < f2)
{
b = alpha2;
alpha2 = alpha1;
f2 = f1;
alpha1 = a + 0.382*(b - a);
f1= (alpha1*alpha1*alpha1) - 6 * alpha1;
}
else
{
a = alpha1;
alpha1 = alpha2;
f1 = f2;
alpha2 = a + 0.618*(b - a);
f2= f2 = (alpha2*alpha2*alpha2) - 6 * alpha2;
}
i++;
printf(“迭代次数为%d   a=%0.4lf   b=%0.4lf   alpha1=%0.4lf   alpha2=%0.4lf   f1=%0.4lf   f2=%0.4lf   b-a=%0.4lf\n“
i a b alpha1 alpha2 f1 f2 b - a);
} while (!(b - a <= precision));
*star_x = 0.5*(b + a);
*star_f= ((*star_x)* (*star_x)* (*star_x)) - 6 * (*star_x);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\
     目录           0  2018-10-21 22:24  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\.vs\
     目录           0  2018-10-21 22:24  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\.vs\golden section method\
     目录           0  2018-10-21 22:24  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\.vs\golden section method\v14\
     文件       36352  2018-10-23 10:32  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\.vs\golden section method\v14\.suo
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\Debug\
     文件       38912  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\Debug\golden section method.exe
     文件      311388  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\Debug\golden section method.ilk
     文件      741376  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\Debug\golden section method.pdb
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\
     文件     2097152  2018-10-23 10:32  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method.sdf
     文件        1345  2018-10-21 19:17  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method.sln
     文件     1507328  2018-10-22 00:03  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method.VC.db
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\
     目录           0  2018-10-23 10:40  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\
     文件        4292  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\CL.command.1.tlog
     文件        9298  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\CL.read.1.tlog
     文件         980  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\CL.write.1.tlog
     文件         238  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\golden section method.lastbuildstate
     文件        6218  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\link.command.1.tlog
     文件        3032  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\link.read.1.tlog
     文件         904  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden s.71CEC3B8.tlog\link.write.1.tlog
     文件        2838  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden section method.log
     文件       14119  2018-10-21 19:52  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\golden section method.obj
     文件       52224  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\vc140.idb
     文件       77824  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\vc140.pdb
     文件       15665  2018-10-23 10:30  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\(作业1大题(1)小题)golden section method.obj
     文件       14923  2018-10-21 20:04  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\Debug\(作业1大题(2)小题)golden section method.obj
     文件        7437  2018-10-21 20:11  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\golden section method.vcxproj
     文件         992  2018-10-21 20:11  黄金分割法,二次插值法求极小值例子\(作业1大题(1)小题)golden section method - 副本\golden section method\golden section method.vcxproj.filters
............此处省略235个文件信息

评论

共有 条评论