用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;

#include<iostream.h>

#include<math.h>

/*黄金分割法求最小值者岩键的C++程序,部分变量及函数书写并不规范*/

//δ为题枣亩给精度

int n = (lnδ/ln0.618 + 1) + 1

int i

float f(float ai, float bi)

{

a(i + 1) = ai + 0.618(bi - ai)

return ai + 1

}

float g(float ai, float bi)

{

b(i + 1) = ai + 0.382(bi - ai)

return b(i + 1)

}

float F(float ai, float bi)

{

//题给的f(x)函数式

return

}

float A(float ai, float bi)

{

int i = 1

float result

L: do

{

a(i + 1) = f(float ai, float bi)

b(i + 1) = g(float ai, float bi)

float F1 = F(float ai, float bi)

float F2 = F(float a(i + 1), float b(i + 1))

ai = ai, bi = b(i + 1)

i ++

}while(i <= n &&F1 >= F2)

if(i <n)

{

B(float ai, float bi)

}

else

result = F2

return result

}

float B(float ai, float bi)

{

do

{

a(i + 1) = f(float ai, float bi)

b(i + 1) = g(float ai, float bi)

float F1 = F(float ai, float bi)

float F2 = F(float a(i + 1), float b(i + 1))

ai = a(i + 1), bi = bi

i ++

}while(i <= n &&F1 <= F2)

if(i <n)

{

goto L

}

else

result = F1

return result

}

void main()

{

int i = 1

float A(float ai, float bi)

cout<<首巧"最小值为:"<<result<<endl


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

原文地址: http://outofmemory.cn/yw/12516683.html

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

发表评论

登录后才能评论

评论列表(0条)

保存