⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 黄金分割法.c

📁 机械优化设计的C程序
💻 C
字号:

#include "stdio.h"
#include "math.h"
double f(double x)
{
	return (x-2)*(x-3);
}

/*
  黄金分割法
  a,b---搜索区间[a,b]; e---精度
  x,y---最优解X*,F*
*/
void main( void)
{
	double a1,y1,a2,y2,a,b,k,e;
	a=0; b=10; e=0.001; k=0.618;
	a1=b-k*(b-a); y1=f(a1);
	a2=a+k*(b-a); y2=f(a2);
	while(fabs(b-a)>e)
	{
		if(y1>=y2)

		{a=a1; a1=a2;y1=y2;
		 a2=a+k*(b-a); y2=f(a2);
	  } 
	else {
		 b=a2; a2=a1; y2=y1;
		 a1=b-k*(b-a); y1=f(a1);
	  }
	} 
	printf("x*=%f\n",(a1+a2)/2);
	printf("y*=%f\n",y1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -