Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Градиентные методы / fibonachi_2(odna)
.txt int Fibonachchi_2(double a, double b, double *x, double e)
{
double Ln = 0.01*e, x1 ,x2, k=1;
long n=0;
while(Fib(n)<(b-a)/Ln)
n++;
x1=a+Fib(n-1)*(b-a)/Fib(n)+pow((-1),n)*e/Fib(n);
while(k<n)
{
x2 = a+b-x1;
if(f(x1)<f(x2))
{
if(x1<x2)
b=x2;
else
a=x2;
}
else
{
if(x1<x2)
a=x1;
else
b=x1;
x1=x2;
}
k++;
};
*x=x2;
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, x1 ,x2, k=1;
long n=0;
while(Fib(n)<(b-a)/Ln)
n++;
x1=a+Fib(n-1)*(b-a)/Fib(n)+pow((-1),n)*e/Fib(n);
while(k<n)
{
x2 = a+b-x1;
if(f(x1)<f(x2))
{
if(x1<x2)
b=x2;
else
a=x2;
}
else
{
if(x1<x2)
a=x1;
else
b=x1;
x1=x2;
}
k++;
};
*x=x2;
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;
}
Соседние файлы в папке Градиентные методы