 
        
        
          Добавил:
          
          
        
        
    
            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;
}
          Соседние файлы в папке Градиентные методы
          
      
    
    
    
          