① 黃金函數有誰懂
若對函數y=f(x)定義域內的每一個值x1,都存在唯一的值x2,使得f(x1)f(x2)=1成立,則稱此函數為「黃金函數」
② C語言 用黃金分割法求函數的最小值和取最小值時的x
給,已經編譯運行確認: #include"math.h" #include"stdio.h" #definef(x)x*x+2*x+1//一元函數,這里按照你的要求寫的是:x2+2x+1 //函數功能是用黃金分割法實現求一元函數的最優解 doublehj(double*a,double*b,doublee,int*n) {doublex1,x2,s;<br>if(fabs(*b-*a)<=e)<br>s=f((*b+*a)/2);<br>else<br>{x1=*a+0.382*(*b-*a);<br>x2=*a+0.618*(*b-*a);<br>if(f(x1)>f(x2))<br>*a=x1;<br>else<br>*b=x2;<br>*n=*n+1;<br>s=hj(a,b,e,n);<br>} returns; } main() {doubles,a,b,e;<br>intn=0;<br>scanf("%lf%lf%lf",&a,&b,&e);//輸入區間[a,b]和精度e的值<br>s=hj(&a,&b,e,&n);//調用hj函數,其中n代表迭代次數<br>printf("a=%lf,b=%lf,s=%lf,n=%d ",a,b,s,n);<br>} 運行時: 輸入:0.60.50.1 輸出結果為: 0.60.50.1 a=0.600000,b=0.500000,s=2.402500,n=0
③ 三角函數中黃金公式是怎麼回事
你所說的應該就是萬能公式
就是弦化切的思想,分式的分子分母同除以餘弦,如下內:
2tan(α/2)
sinα=——容————
1+tan2(α/2)
1-tan2(α/2)
cosα=——————
1+tan2(α/2)
2tan(α/2)
tanα=——————
1-tan2(α/2)
④ 黃金三角函數比例是多少
黃金分割比例等於(√5-1)/2≈0.618
⑤ 在新古典增長模型中,總量函數為YT=F(K,L)=K^1/3*L^2/3求出黃金律相對應的儲蓄率
三分之一,,,在柯佈道格拉斯函數里,與黃金律對應的儲蓄率就是資本產出彈性
⑥ 黃金函數有那些實際應用……
自己想`
⑦ 特殊三角函數值的黃金三角
α=18°(π/10) sinα=(√5-1)/4 cosα=√內(10+2√5)/4 tαnα=√(25-10√5)/5
cscα=√5+1 secα=√(50-10√5)/5 cotα=√(5+2√5)
α=36°(π容/5) sinα=√(10-2√5)/4 cosα=(√5+1)/4 tαnα=√(5-2√5)
cscα=√(50+10√5)/5 secα=√5-1 cotα=√(25+10√5)/5
α=54°(3π/10) sinα=(√5+1)/4 cosα=√(10-2√5)/4 tαnα=√(25+10√5)/5
cscα=√5-1 secα=√(50+10√5)/5 cotα=√(5-2√5)
α=72°(2π/5) sinα=√(10+2√5)/4 cosα=(√5-1)/4 tαnα=√(5+2√5)
cscα=√(50-10√5)/5 secα=√5+1 cotα=√(25-10√5)/5
通過比較可發現與黃金三角形相關的三角函數值有很強的對稱性
這些數值的證明可以藉助黃金三角形中的比例
⑧ 用黃金分割法求函數f(X)=X*X-6X+9的最優解,初始區間[1,7],收斂精度ε=0.4
收斂精度是什麼意思啊
好吧,我按我的理解來了結果是15.3745不知道對不,我用的C++,主要部回分和C一樣
#include"math.h"
#include"iostream"
usingnamespacestd;
int_tmain(intargc,_TCHAR*argv[])
{
floata=1,b=7,ch,ah,bh,cj,aj,bj;
floatjing=0.4;
while(1)
{
答ch=(b-a)*0.618+a;
ah=(ch-a)*0.618+a;
bh=(b-ch)*0.618+ch;
cj=ch*ch-6*ch+9;
aj=ah*ah-6*ah+9;
bj=bh*bh-6*bh+9;
if(abs(cj-bj)<0.4)
{
cout<<aj<<endl;
break;
}
if(aj>bj)
{
a=a;
b=ch;
}
else
{
a=ch;
b=b;
}
}
return0;
}
⑨ 用黃金分割法求目標函數 f(x)=x*x-5*x+2 的最優解(C++)
試試我的程序吧,直接貼到某個地方就能用,百度的代碼顯示看起來不美觀,湊合看吧,建議貼到程序里看方便一些,已經調試通過:
#include<iostream>
using namespace std;
const float EPS=0.000001;//定義常量
float f(float);
//定義函數f
float f(float x)
{
return x*x-5*x+2;
}
void main()
{
float a,b,x1,x2,f1,f2,t,eps;
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"eps=";cin>>eps;
x1=a+0.382*(b-a);x2=a+0.618*(b-a);
f1=f(x1);f2=f(x2);
while (b-a>eps)//搜索精度循環節
{
t=f1-f2;
if (t>EPS) {a=x1;x1=x2;f1=f2;x2=a+0.618*(b-a);f2=f(x2);}
else if (t>=-EPS && t<=EPS) {a=x1;b=x2;x1=a+0.382*(b-a);x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);}//函數值相等,兩邊區間均捨去
else {b=x2;x2=x1;f2=f1;x1=a+0.382*(b-a);f1=f(x1);}
}
cout<<"x*="<<(a+b)/2;
system ("pause");
}
⑩ 大神給看看用VB編程,黃金分割法 滿足對於任意一個Y=f(X)的函數,均能找出給定區間(a,b)上最小值。
'主程序段寫:
dim a as single
dim b as single
dim e as single
dim q as single
dim x1 as single
dim x2 as single
dim y1 as single
dim y2 as single
a=val(form1.text1.text) '從text1獲取a的值
b=val(form1.text2.text) '從text2獲取b的值
e=val(form1.text3.text) '從text3獲取e的值
q=0.618
x1=a+(1-q)*(b-a)
x2=a+q*(b-a)
y1=f(x1)
y2=f(x2)
do
if y1<=y2 then
b=x2
x2=x1
y2=y1
x1=a+(1-q)*(b-a)
y1=f(x1)
else
a=x1
x1=x2
y1=y2
x2=a+q*(b-a)
y2=f(x2)
end if
loop while b-a<=e
x=0.5*(a+b)
y=f(x)
form1.text4.text=y
'主程序結束
'自行編寫任意函數關系y=f(x)的子函數代碼