Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Методы минимизации фунцкии одной переменной (http://forum.oszone.net/showthread.php?t=176548)

Smile 25-05-2010 16:13 1420831

Методы минимизации фунцкии одной переменной
 
Доброго времени суток. Нужна помощь в поиске исходников. Обрыл много нашел только платные. Если есть где-то бессплатно то подскажите где?
Вот какие методы нужны:
1. Классический метод
2. Методы деления отрезка пополам
3. Метод золотого сечения. Симетриные методы.
Зарание спасибо.

lxa85 25-05-2010 19:17 1420945

Smile, функции одной переменной - слишком расплывчатое понятие.
О чем идет речь, и в каком контексте она функция? Начальные условия и граничные значения?
СДНФ, СКНФ? Или как-то иначе?

ganselo 26-05-2010 18:30 1421701

Вот исходник метода золотого сечения:
Код:

double f(double x)
{
    return x*x - 12*x;
}
double ZolotSech(double a_begin, double b_end)
{
    double tau = (1+sqrt(5))/2; // = 1.618
    double eps = pow(10., -6.);
    double x1, x2;

    while (b_end - a_begin > eps)
    {
        x1 = a_begin + (b_end - a_begin)/tau;
        x2 = a_begin + (b_end - a_begin)/(tau*tau);
        if(f(x1) > f(x2)) b_end = x1;
        else a_begin = x2;
    }
    return (a_begin + b_end)/2;
}

[a_begin, b_begin] - отрезок локализации минимума.

pva 27-05-2010 19:58 1422413

Цитата:

Цитата Smile
Обрыл много нашел только платные »

любой в книжке по вычислительным методам тоже платные?
Код:

double dichotomy(double from, double to, double eps)
{
  double sgn1 = f(from);

  while(eps < (from-to))
  {
    double mid = (from + to)/2.;
    if (0<sgn1*f(mid)) from=mid;
    else to=mid;
  }

  return (from + to)/2.
}



Время: 15:38.

Время: 15:38.
© OSzone.net 2001-