黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序

黄金分割法的优化设计

实验报告

学院:机电工程

机制自动化11-03班

学号:541102010326

姓名:刘点点

1,黄金分割法的程序流程图

2,对应流程图的C语言程序

下面应用C语言程序利用黄金分割法求一元函数F=x^2+2*x的最优解,已知初始区间为[-3,5] ,取收敛精度e=10-4。

C语言程序如下:

#include

#include

#define f(x) pow(x,2)+2*x

#define M 0.618

void main()

{

double y1,y2,x1,x2,x,a,b,e;

int n;

n=1;

printf("请输入收敛精度e=");

scanf("%lf",&e);

printf("请输入区间左值a=");

scanf("%lf",&a);

printf("请输入区间右值b=");

scanf("%lf",&b);

printf("n a b x1 x2 y1 y2\n");

x1=b-M*(b-a);

x2=a+M*(b-a);

y1=f(x1);

y2=f(x2);

printf("%d %.4lf %.4lf %.4lf %.4lf %.4lf %.4lf\n",n,a,b,x1,x2,y1,y2);

n=n++;

do

{

if(y1

{

b=x2;

x2=x1;

y2=y1;

x1=b-M*(b-a);

y1=f(x1);

printf("%d %.4lf %.4lf %.4lf %.4lf %.4lf %.4lf\n",n,a,b,x1,x2,y1,y2);

n=n++;

}

else

{

a=x1;

x1=x2;

y1=y2;

x2=a+M*(b-a);

y2=f(x2);

printf("%d %.4lf %.4lf %.4lf %.4lf %.4lf %.4lf\n",n,a,b,x1,x2,y1,y2);

n=n++;

}

}while(fabs((b-a)/b)>=e&&fabs((y2-y1)/y2)>=e);

x=(a+b)*0.5;

printf("x=%.5lf\n",x);

getchar();

}

3.运行结果:

假定经十二次迭代后已满足收敛精度要求,则得x*=1/2(a+b)=1/2(-1.0214-0.9812)=-1.0013,相应的函数极值f(x*)=-0.9999;

近似精确值x*=-1,f(x*)=-1,与解析法求得的精确值相同

机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc相关推荐

  1. linux+下c语言编程项目,精通UNIX下C语言编程与项目实践

    cc -I  //include 目录 -L //静态库目录?动态也可以 -l //小写L,接静态库名称?动态也可以 -DXXX='"XXFF"' //-D直接定义宏 -c 只编译 ...

  2. 湛江C语言培训,湛江c语言编程学习,湛江学c语言编程报班,湛江学c语言编程自学好还是报班好...

    湛江c语言编程学习,湛江学c语言编程报班,湛江学c语言编程自学好还是报班好 首页 > C语言 > 湛江c语言编程学习 作者:镀金池   发布时间:2017-10-19 09:51 在Swi ...

  3. c语言程序设计自学跟谁好,双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好...

    双辽c语言编程学习,双辽学c语言编程哪个好,双辽学c语言编程自学好还是报班好 首页 > 软件 > 双辽c语言编程学习 作者:镀金池   发布时间:2017-12-07 05:48 一个C语 ...

  4. C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入

    例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序.插入法的基本算法是:先对字符串中的头两个元素进行排序:然后把第三字符插入到前两个字符中,插入后前三个字 ...

  5. C语言编程>第二十周 ② 下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。

    例题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调.次最大数和b[1]中的数对调. 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构. ...

  6. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

  7. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。

    例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...

  8. c语言编程学多久,丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会...

    丰城c语言编程学习,丰城学c语言编程的学校,丰城学c语言编程一般要多久才能学会 首页 > 软件 > 丰城c语言编程学习 作者:镀金池   发布时间:2018-04-09 16:40 在之后 ...

  9. 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...

    成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗 首页 > 软件 > 成都学c语言编程 作者:镀金池   发布时间:2018-09-28 14:20 近似带有序布局 ...

最新文章

  1. phpstudy安装imagick扩展库怎么装
  2. https open api_钉钉API发送消息
  3. python数独游戏源代码100行_python实现解数独程序代码
  4. Java Signal实例
  5. scala与java混合编译出现的问题
  6. 线程池的简单创建和实现
  7. 写了多年代码,你会 StackOverflow 吗
  8. java barrier_Java - Latch和Barrier的区别
  9. python可视化报表制作教程_如何使用Python快速制作可视化报表
  10. 数据库的开发笔记-字典表
  11. php转型mysql dba_MySQL_DBA整理(转)
  12. 疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限...
  13. 算法---回溯法--模板解法
  14. android开发,assets下面的资源文件不会变化/改动
  15. Ajax之搭建一个基本的Ajax框架(技术分析篇)
  16. 国内各大安卓市场有ASO优化吗?安卓应用市场aso优化
  17. 上证50基金有哪些_哪一只上证50指数基金最值得关注?
  18. element plus 部分组件转英文问题
  19. C/C++ 电脑微信dat文件解密及工具分享
  20. java毕业设计汽车维修管理系统源码+lw文档+mybatis+系统+mysql数据库+调试

热门文章

  1. win10一键禁止系统更新工具
  2. PHP调用京东联盟开普勒、宙斯API模板
  3. 西奥迪尼的《影响力》你看过没?
  4. 软件开发编码规范_如果您只喜欢编码,请不要成为软件开发人员
  5. 不属于python第三方库_在 Python 语言中,不属于机器学习领域第三方库的是______。???????????????????????????????????????...
  6. GitHub Universe 转播 | Enterprise Day 2 日程
  7. 防止勒索病毒,请立即照此方法设置电脑!
  8. 网站HTTPS是有什么用吗
  9. 序列检测器(两种设计方法和四种检测模式|verilog代码|Testbench|仿真结果)
  10. python 随机生成简单语法结构的中文句子