用C语言编写黄金分割法f(x)=x2+2x程序

用C语言编写黄金分割法f(x)=x2+2x程序,第1张

#include#includefloat getequation(float x)

{

return x*x-2*x+2

}

void main()

{

float a=0

float b=6

float result = 0

do {

float c=a+0.618*(b-a)

float d=a+b-c

if(fabs(getequation(c)) <fabs(getequation(d)))

{

a=d

result = c

}

else

{

b=c

result = d

}

} while(fabs(getequation(result)) >0.01)

printf("f(a)=a*a-7*a+10\n")

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

}

扩展资料

C语言编写程序求最大值

#include<stdio.h>

double Max(double*p,int n)

{

double max=*p

for(int i=0i<ni++)

if(*(p+i)>max)

max=*(p+i)

return max

}

double Min(double *p,int n)

{

double min=*p

for(int i=0i<ni++)

if(*(p+i)<min)

min=*(p+i)

return min

}

double Average(double *p,int n)

{

double sum=0

for(int i=0i<ni++)

sum+=*(p+i)

return sum/n

}

int main()

{

double a[10]

printf("请输入10个实数:\n")

for(int i=0i<10i++)

scanf("%f",&a[i])

printf("这10个数中最大值为:%f\n",Max(a,10))

printf("这10个数中最小值为:%f\n",Min(a,10))

printf("这10个数的平均值为:%f\n",Average(a,10))

return 0;

黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,用分数表示为(√5-1)/2。黄金分割点(p)的求法,如图:①过点B作BD⊥AB,使BD=1/2AB;②连结AD,以D为圆心,CB为半径作弧,交AD于E, 则有DE=DB;③以A为圆心,AE为半径作弧,交AB于P,则有AP=AE;则点P是线段AB上的一个黄金分割点.为什么点P是线段AB上的一个黄金分割点?事实上,若设AB=2,则BD=BE=1,由作图过程可知AD=√5.则AE=AP=(√5)-1,PB/AP=AP/AB=[(√5)-1]/2。 因此点P是线段AB上的一个黄金分割点.

#include <stdio.h>

int main()

{

  float x1,y1,x2,y2

  scanf("%f%f%f%f",&x1,&y1,&x2,&y2)

  printf("%f %f",(x1+x2)*0.618,(y1+y2)*0.618)

  return 0

}

#include <stdio.h>

#include <math.h>

int main()

{

  double x=sqrt(1+1.0/(1*2)+1.0/(1*2*3))

  double y=pow(asin(1),x)

  double z=log(pow(x,2)+y)/(pow(sin(x*y),2)+1)

  printf("%lf\n",z)

  return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11641410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存