Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
01.05.2014
Размер:
609 б
Скачать
float pauel (double e,double a,double b)
{
int k=1;
double c,d;
c=b;
b=(a+b)/2;
d=((a+b)/2+0.5* (((func(a)-func(b))*(b-c)*(c-a))/ (func(a)*(b-c)+func(b)*(c-a)+func(c)*(a-b))));
while ( (fabs((d-b)/2)>=e) || (fabs((func(d)-func(b))/func(b))>=e) )
{
if (b<d)
{
if (func(b)<func(d))
c=d;
else
{
a=b;
b=d;
}
}
else
{
if (func(b)<func(d))
a=d;
else
{
c=b;
b=d;
}
}
k++;
d=((a+b)/2+0.5* (((func(a)-func(b))*(b-c)*(c-a))/ (func(a)*(b-c)+func(b)*(c-a)+func(c)*(a-b))));
}
cout<<k<<endl;
return ((b+d)/2);
};
Соседние файлы в папке Градиентные методы