當前位置:首頁 » 編程軟體 » 黃金分割法編程

黃金分割法編程

發布時間: 2024-03-28 10:00:55

1. c語言編程,用黃金分割法求f(a)=a*a-7*a+10的最優解。設初始值a0=0,初始步長h=1,取迭代精度=0.35。急…

#include <stdio.h>
#include <math.h>
float GetEquation(float x)
{
return x*x-7*x+10;
}
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);
}

2. c語言編程:用黃金分割法求 minf(x)=x2+2x+1 急!!!!

給,已經編譯運行確認:
#include "math.h"
#include "stdio.h"
#define f(x) x*x+2*x+1 //一元函數,這里按照你的要求寫的是:x2+2x+1
//函數功能是用黃金分割法實現求一元函數 的最優解
double hj(double *a,double *b,double e,int *n)
{ double x1,x2,s;
if(fabs(*b-*a)<=e)
s=f((*b+*a)/2);
else
{ x1=*a+0.382*(*b-*a);
x2=*a+0.618*(*b-*a);
if(f(x1)>f(x2))
*a=x1;
else
*b=x2;
*n=*n+1;
s=hj(a,b,e,n);
}
return s;
}
main()
{ double s,a,b,e;
int n=0;
scanf("%lf %lf %lf",&a,&b,&e); // 輸入區間[a,b]和精度e的值
s=hj(&a,&b,e,&n); //調用hj函數,其中n代表迭代次數
printf("a=%lf,b=%lf,s=%lf,n=%d\n",a,b,s,n);
}

運行時:
輸入:0.6 0.5 0.1
輸出結果為:
0.6 0.5 0.1
a=0.600000,b=0.500000,s=2.402500,n=0

3. 用Matlab實現黃金分割法,優化目標函數minf(x)=2x^2-x-1,初始區間為[-1,1],e=0.001

首首悄先在matlab新建文件保存為goldmin.m

function[x,y] = goldmin(f,xa,xb,s)

% 黃金分割法橋芹粗求解函數最小值

% 輸入

% f 待優化函數

g = (sqrt(5)-1)/2; % 黃金分割比,0.618

a = xa;

b = xb;

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

x1 = a + b - x2;

y1 = f(x1);

y2 = f(x2);

while abs(b-a) > s

if y1<y2

b = x2;

x2 = x1;

x1 = a + b - x2;

end

>> f = @(x) 2*x^2-x-1;

>> [x,y]=goldmin(f,-1,1,0.001)

x =

0.2497

y =

-1.1250

>>

即當x=0.2497時取最小值-1.125

菲波那契數列

經研究發現,相鄰兩個菲波那契數的比值是隨序號的增加而逐漸趨於黃金分割比的。即f(n-1)/f(n)→0.618…。由於菲波那契數都是整數,兩個整數相除之商是有理數,所以只是逐漸逼近黃金分割比這個無理數。但是當我們繼續計算出後面更大的菲波那契數時,就會發現相鄰兩數之比確實是非常接近黃金分割比的敏鎮。

熱點內容
個人主機搭建伺服器是否違法 發布:2024-04-27 19:10:15 瀏覽:924
手機能查什麼時候設置密碼 發布:2024-04-27 19:03:55 瀏覽:324
星瑞時空星辰減少了哪些配置 發布:2024-04-27 18:31:31 瀏覽:225
bat腳本錯誤碼255 發布:2024-04-27 18:20:35 瀏覽:411
華維848集團交換機如何配置 發布:2024-04-27 18:19:54 瀏覽:823
pos介面php 發布:2024-04-27 18:05:06 瀏覽:996
微信限額上傳 發布:2024-04-27 17:55:18 瀏覽:778
支持編譯成機器碼的語言 發布:2024-04-27 17:31:59 瀏覽:746
串口伺服器ip限制 發布:2024-04-27 17:30:20 瀏覽:502
sql編程入門經典 發布:2024-04-27 17:28:52 瀏覽:283