Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Градиентные методы / fibonachi_1(odna)
.txt int Fibonachchi_1(double a, double b, double *x, double e)
{
double Ln=0.01*e;
long n=0;
while(Fib(n)<(b-a)/Ln)
n++;
double l, m;
l=a+(Fib(n-2)*(b-a))/(Fib(n));
m=a+(Fib(n-1)*(b-a))/(Fib(n));
double k=1;
while(k<n-1)
{
if(f(l)<f(m))
{
b=m;
m=l;
l=a+(Fib(n-k-2)*(b-a))/Fib(n-k);
}
else
{
a=l;
l=m;
m=a+(Fib(n-k-1)*(b-a))/Fib(n-k);
};
k++;
}
if(f(l)<=f(m))
*x=(a+m)/2;
else
*x=(l+b)/2;
return k;
}
/////ras4et 4isel fibonachi
long Fib (long x)
{
long s, tmp;
if(x>=1)
{
s=1;
tmp=0;
for(long k=0; k<x; k++)
{
s=s+tmp;
tmp = s-tmp;
}
return s;
}
else
return 1;
}
{
double Ln=0.01*e;
long n=0;
while(Fib(n)<(b-a)/Ln)
n++;
double l, m;
l=a+(Fib(n-2)*(b-a))/(Fib(n));
m=a+(Fib(n-1)*(b-a))/(Fib(n));
double k=1;
while(k<n-1)
{
if(f(l)<f(m))
{
b=m;
m=l;
l=a+(Fib(n-k-2)*(b-a))/Fib(n-k);
}
else
{
a=l;
l=m;
m=a+(Fib(n-k-1)*(b-a))/Fib(n-k);
};
k++;
}
if(f(l)<=f(m))
*x=(a+m)/2;
else
*x=(l+b)/2;
return k;
}
/////ras4et 4isel fibonachi
long Fib (long x)
{
long s, tmp;
if(x>=1)
{
s=1;
tmp=0;
for(long k=0; k<x; k++)
{
s=s+tmp;
tmp = s-tmp;
}
return s;
}
else
return 1;
}
Соседние файлы в папке Градиентные методы