黄金分割法

#include

#include

void main()

{

int i=0,j=0;

long float y1,y2,y3,a,b;

long float k1,k2,k3,x1,x2,x3,h,al;

printf ("请输入二次项系数(不为0)=");

scanf ("%lf",&k1);

printf ("\n请输入一次项系数=");

scanf ("%lf",&k2);

printf ("\n请输入常数项=");

scanf ("%lf",&k3);

printf ("各项系数依次为:");

printf ("%lf %lf %lf\n",k1,k2,k3);

printf ("\n请输入初始点x1=");

scanf ("%lf",&x1);

printf ("\n请输入初始步长h(大于0)=");

scanf ("%lf",&h);

al=1.5;

printf ("初始点x=%f\n" ,x1);

printf ("初始步长h=%f\n",h);

/*printf ("加步系数K=%f\n",al);*/

if(k1

{k1=-k1,k2=-k2,k3=-k3;}

x2=x1+h;

y1=k1*x1*x1+k2*x1+k3;

y2=k1*(x2+h)*(x2+h)+k2*(x2+h)+k3;

if (y1>y2)

{

for (i=0;i

{ h=al*h,x3=x2+h,y3=k1*x3*x3+k2*x3+k3;

if(y3>y2)

break;}

a=x1,b=x3;

printf("i=%d\n",i);

}

else

{

for (j=0;j

}

if (j>=5000000000)

printf("输入有误,请结束程序");

printf("a= %f\n",a);

printf("b= %f\n",b);

/*以下是黄金分割法,已有定义变量:a,b,k1,k2,k3,*/

int q;

long float e;

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

scanf ("%lf",&e);

x1=a+0.382*(b-a);

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

y1=k1*x1*x1+k2*x1+k3;

y2=k1*x2*x2+k2*x2+k3;

for(q=1;fabs(b-a)>e||fabs(y2-y1)>e;q++) {

if(y1>=y2)

{

a=x1,x1=a+0.382*(b-a),y1=k1*x1*x1+k2*x1+k3; x2=a+0.618*(b-a),y2=k1*x2*x2+k2*x2+k3;

}

else

{

b=x2,x2=a+0.618*(b-a),y2=k1*x2*x2+k2*x2+k3; x1=b-0.618*(b-a),y1=k1*x1*x1+k2*x1+k3;

}

}

printf ("极值点=%f\n\n",(a+b)/2);

/*printf ("循环次数=%d\3",q);

printf("值= %f\n",k2/2/k1);

printf ("误差=%f\n",(a+b)/2+k2/2/k1);*/

} {h=al*h,x3=x1-h,y3=k1*x3*x3+k2*x3+k3; if(y3>y1) break;} a=x3,b=x2; /*printf("j=%d\n",j);*/

#include

#include

void main()

{

int i=0,j=0;

long float y1,y2,y3,a,b;

long float k1,k2,k3,x1,x2,x3,h,al;

printf ("请输入二次项系数(不为0)=");

scanf ("%lf",&k1);

printf ("\n请输入一次项系数=");

scanf ("%lf",&k2);

printf ("\n请输入常数项=");

scanf ("%lf",&k3);

printf ("各项系数依次为:");

printf ("%lf %lf %lf\n",k1,k2,k3);

printf ("\n请输入初始点x1=");

scanf ("%lf",&x1);

printf ("\n请输入初始步长h(大于0)=");

scanf ("%lf",&h);

al=1.5;

printf ("初始点x=%f\n" ,x1);

printf ("初始步长h=%f\n",h);

/*printf ("加步系数K=%f\n",al);*/

if(k1

{k1=-k1,k2=-k2,k3=-k3;}

x2=x1+h;

y1=k1*x1*x1+k2*x1+k3;

y2=k1*(x2+h)*(x2+h)+k2*(x2+h)+k3;

if (y1>y2)

{

for (i=0;i

{ h=al*h,x3=x2+h,y3=k1*x3*x3+k2*x3+k3;

if(y3>y2)

break;}

a=x1,b=x3;

printf("i=%d\n",i);

}

else

{

for (j=0;j

}

if (j>=5000000000)

printf("输入有误,请结束程序");

printf("a= %f\n",a);

printf("b= %f\n",b);

/*以下是黄金分割法,已有定义变量:a,b,k1,k2,k3,*/

int q;

long float e;

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

scanf ("%lf",&e);

x1=a+0.382*(b-a);

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

y1=k1*x1*x1+k2*x1+k3;

y2=k1*x2*x2+k2*x2+k3;

for(q=1;fabs(b-a)>e||fabs(y2-y1)>e;q++) {

if(y1>=y2)

{

a=x1,x1=a+0.382*(b-a),y1=k1*x1*x1+k2*x1+k3; x2=a+0.618*(b-a),y2=k1*x2*x2+k2*x2+k3;

}

else

{

b=x2,x2=a+0.618*(b-a),y2=k1*x2*x2+k2*x2+k3; x1=b-0.618*(b-a),y1=k1*x1*x1+k2*x1+k3;

}

}

printf ("极值点=%f\n\n",(a+b)/2);

/*printf ("循环次数=%d\3",q);

printf("值= %f\n",k2/2/k1);

printf ("误差=%f\n",(a+b)/2+k2/2/k1);*/

} {h=al*h,x3=x1-h,y3=k1*x3*x3+k2*x3+k3; if(y3>y1) break;} a=x3,b=x2; /*printf("j=%d\n",j);*/


相关文章

  • 神奇的黄金分割
  • 中国科技期刊数据库 科研 神奇的黄金分割 蒋邕平 南宁职业技术学院,广西 南宁 530008 摘要:黄金分割是美的主要标志之一.在日常生活的众多领域有着规范的应用.通过了解和运用黄金分割,挖掘生活美学意义有助于提高人们的生活品质. 关键词: ...查看


  • 数学中的黄金分割
  • [基本定义] 在分割时.在长度为全长的约0.618处进行分割.就叫作黄金分割.这个分割点就叫做黄金分割点(通常用φ表示) 把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比.其比值是一个无理数,用分数表示为(√5-1)/ ...查看


  • 2016-2021年黄金行业深度调查及发展前景研究报告
  • 2016-2021年黄金行业 深度调查及发展前景研究报告 杭州先略投资咨询有限公司 二〇一六年 报告目录 报告摘要 研究背景 研究方法 第一章 黄金行业发展综述 第一节 黄金行业定义 第二节 黄金行业基本特点 第三节 黄金行业分类 第四节 ...查看


  • 黄金分割率及其高级应用
  • 黄金分割率及其高级应用 zt 一.黄金分割率的由来 黄金分割率 0.618033988..., 是一个充满无穷魔力的的无理数. 它不但在数学中扮演着神奇的角色,而且在建筑, 美学, 艺术.军事, 音乐, 甚至在投机领域都可以找到这个神奇数字 ...查看


  • 黄金分割教案
  • 公开课教案 课题:黄金分割 数学教师:纪鸿萍 公开课教案 课题:黄金分割 纪鸿萍 ●教学目标 (一)教学知识点 1.知道黄金分割的定义. 2.会找一条线段的黄金分割点. 3.会判断某一点是否为一条线段的黄金分割点. (二)能力训练要求 通过 ...查看


  • 什么是黄金
  • 第一节:什么是黄金 金 (GOLD) 是以游离状态存在于自然界并且无法人工合成的天然产物,由于呈现出黄色,因此又被称为黄金.黄金的化学元素符号为 Au,是金属元素表第六周期 IB 族元素,原子序数79,原子量 196.9665. 在人类已经 ...查看


  • 黄金分割在摄影中的应用
  • 黄 金 分 割 在 摄 影 中 的 应 用 学 校:广州大学附属中学 学 生:苏志翔 参赛年级:初中二年级 指导老师:彭 何杰 静 二〇一四年贰月 摘 要 在科技日新月异的时代,摄像机成为我们出行旅游的必备电子产品.手指轻轻一点,将令你感动 ...查看


  • 黄金分割教学设计
  • 黄金分割教学设计 盖州市 一.教学任务分析 学习<黄金分割>不仅实现线段比例的要求,更是体现数学的文化价值,体现黄金分割在数学与建筑学.美容医学.艺术等学科的纽带.让学生体会到数学不是孤立的,它是文化的一部分,它也促进了文化的发 ...查看


  • 黄金分割在生活中的应用
  • 黄金分割在生活中的应用 中世纪的数学家开普勒(1571-1630)对黄金分割作了很高的评价.他说:几何学有两大宝藏:一个是勾股定理,另一个是黄金分割.黄金分割是公元前六世纪古希腊数学家毕达哥拉斯所发现,后来古希腊美学家柏拉图将此称为黄金分割 ...查看


  • [黄金分割]说课稿
  • <黄金分割>说课稿 保定市十七中 胡赫男 本节说课的内容是<黄金分割>,我将从教材分析.学情分析.教法分析.评价分析.教学程序.课后反思等六个方面对本课的设计进行说明. 一.教材分析: 1.课题所处的地位和作用: & ...查看


热门内容