
第一没有单一函数可以统计这个,
第二两次金叉要有一个时间范围啊,没有时间范围,统计两次金叉没有意思啊,
下面的代码是统计n日内出现过2次金叉,参数n就是时间范围,10是随意写的,只为举例说明没有任何意义
N:=10;
XG:COUNT(CROSS(MA(C,5),MA(C,10)),N)=2;
收敛精度是什么意思啊
好吧,我按我的理解来了结果是153745不知道对不,我用的C++,主要部分和C一样
#include "mathh"#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR argv[])
{
float a = 1,b = 7,ch,ah,bh,cj,aj,bj;
float jing = 04;
while(1)
{
ch = (b-a)0618+a;
ah = (ch-a)0618+a;
bh = (b-ch)0618+ch;
cj = chch-6ch+9;
aj = ahah-6ah+9;
bj = bhbh-6bh+9;
if(abs(cj-bj)<04)
{
cout<<aj<<endl;
break;
}
if(aj>bj)
{
a = a;
b = ch;
}
else
{
a = ch;
b = b;
}
}
return 0;
}
首先在matlab新建文件保存为goldminm
function[x,y] = goldmin(f,xa,xb,s)
% 黄金分割法求解函数最小值
% 输入
% f 待优化函数
g = (sqrt(5)-1)/2; % 黄金分割比,0618
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) 2x^2-x-1;
>> [x,y]=goldmin(f,-1,1,0001)
x =
02497
y =
-11250
>>
即当x=02497时取最小值-1125
菲波那契数列
经研究发现,相邻两个菲波那契数的比值是随序号的增加而逐渐趋于黄金分割比的。即f(n-1)/f(n)→0618…。由于菲波那契数都是整数,两个整数相除之商是有理数,所以只是逐渐逼近黄金分割比这个无理数。但是当我们继续计算出后面更大的菲波那契数时,就会发现相邻两数之比确实是非常接近黄金分割比的。
黄金螺旋线的规律公式如下:
黄金螺线是对数螺线的一种。
对数螺线的公式是:ρ=αe^(φk),其中:α和k为常数,φ是极角,ρ是极径,e是自然对数的底。
当公式中k=03063489 ,等比P1/P2=0618时,则螺线中同一半径线上相邻极半径之比都有黄金分割关系。事实上,当函数f(X)等于e的X次方时,取X为04812,那么,f(X)=0618…,这样形成的螺线就是黄金螺线,她有很多优美的特点。是极致中的极致,美中之美。
同时说明黄金比例律为以e为自然底数的“自然律”逻辑所蕴含。换言之,“自然律”囊括了黄金比例律。
黄金比例律表现了事物的相对静止状态,而“自然律”则表现了事物运动发展的普遍状态。因此,从某种意义上说,黄金比例律是凝固的“自然律”,“自然比例律”是运动着的黄金律。
在黄金矩形(宽长之比为0618的矩形)里靠着三边做成一个正方形,剩下的那部分则又是一个黄金矩形,可以依次再做成正方形。将这些正方形中心都按顺序联结,可得到一条“黄金螺线”。
一直有一种谣传说在 *** 的身上和一些动物角质体上,或有甲壳的软体动物身上,都曾发现有“黄金螺线”。
给,已经编译运行确认: #include"mathh" #include"stdioh" #definef(x)xx+2x+1//一元函数,这里按照你的要求写的是:x2+2x+1 //函数功能是用黄金分割法实现求一元函数的最优解 doublehj(doublea,doubleb,doublee,intn) {doublex1,x2,s;<br>if(fabs(b-a)<=e)<br>s=f((b+a)/2);<br>else<br>{x1=a+0382(b-a);<br>x2=a+0618(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>} 运行时: 输入:060501 输出结果为: 060501 a=0600000,b=0500000,s=2402500,n=0
黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。因此,这种方法的适应面非常广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值。a1,a2将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,得到极小点的数值近似解。
以下是函数输入输出参数表:
function xmin = goldSearch(fun,a,b,eps)
% ---input
% fun 所求的目标函数
% a 区间的下界
% b 区间的上界
%eps 区间的最小阀值长度
% ---output
% xmin 函数取极小值时自变量的值
详细参考http://wenkubaiducom/linkurl=7Cgr4a55ulnoe8gpIo5GLyC8vtA1NQYzE480lYzfvZCTFZYler-M089sVsTiZjcPZdDZH6XUCMjXUAHpY6jRacrBp8hm-sROGCDZO3tNaGe
黄金分割法是用于一元函数f(x)在给定初始区间[a,b]搜索极小点xmin的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,它只适用于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间。
f'(x)=ex(x3-3x2-9x+a+3)(Ⅰ)当a=1时f'(0)=4,f(0)=1函数在(0,f(0))处的切线方程为y=4x+1(Ⅱ)
f'(x)=ex(x3-3x2-9x+a+3)设g(x)=x3-3x2-9x+a+3,则g'(x)=3x2-6x-9=3(x-3)(x+1)∴g(x)的极大值为g(-1)=a+8,极小值为g(3)=a-24,由于f(x)有三个极值点f'(x)有三个零点g(x)有三个零点∴g(x)的极大值为正,且极小值为负,即
a+8>0,a-24<0可得-8<a<24(Ⅲ)由题意知,G(x)=[f'(x)-f(x)]e-x+ex=ex+3x2-12x+3∴G'(x)=ex+6x-12故G(x)的图象在M处的切线的斜率为k0=G′(x1+x22)=ex1+x22+3(x1+x2)12直线AB的斜率kAB=G(x1)G(x2)x1x2=ex1ex2x1x2+3(x1+x2)12如果k0=kAB,则ex1ex2x1x2=ex1+x22则
ex1ex2=ex1+x22(x1x2)可化为ex1x22ex2x12=(x1x2)令x1x22=t,上式即为et-e-t=2t构造函数h(x)=ex-e-x-2x,则h'(x)=ex+e-x-2≥0,则h(x)在R上是增函数,因为h(0)=0,所以h(t)=0的充要条件是t=0.此时
x1=x2与条件矛盾.所以G(x)的图象没有“平衡切线”
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)