На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Вычисление экстремумов функций с помощью градиентного метода C#

Задание по работе:

  • Изучить теоретическую часть работы.
  • Реализовать метод градиентного спуска
  • Для функций двух видов: вогнутой и с вторичными минимумами применить реализованный метод, оценить скорость сходимости и возможность нахождения глобального минимума.

Содержание

class Metods
    {
        const int u = 100000;
        // функция 1
        public static double Func(double x)
        {
            return Math.Sin(x) + Math.Sin(x * x);
        }
        // функция 2
        public static double Func1(double x)
        {
            return Math.Sqrt(3 + x * x) + 3 * Math.Cos(x);
        }
        // функция 3
        public static double Func2(double x, double y)
        {
            return Math.Abs(x * x) + Math.Abs(y * y * y);
        }
        // функция 4
        public static double Func3(double x, double y)
        {
            return Math.Pow(y - x * x, 2) + Math.Pow(1 + x, 2);
        }
        // производная функции 1
        public static double Proizv1(double x)
        {
            return Math.Cos(x) + 2 * x * Math.Cos(x * x);
        }
        // производная функции 2
        public static double Proizv2(double x)
        {
            return x / Math.Sqrt(3 + x * x) - 3 * Math.Sin(x);
        }
        // производная функции 3
        public static double[] Proizv3(double x, double y)
        {
            double  t = 2 * x;
            double  o = 3 * y * y;
            double[] z = { t, o };
            return z;
        }
        // производная функции 4
        public static double[] Proizv4(double x, double y)
        {
            double t = -400 * x *(-( x * x ) + y ) + 2 * x + 2;
            double o = -200 * x * x + 200 * y;
            double[] z = { t, o };
            return z;
        }
        // Х1 для функции 1 
        public static double x1(double x, double a)
        {
            return x - a * Proizv1(x)/Math.Abs(Proizv1(x));
        }
        // X1 для функции 2
        public static double x2(double x, double a)
        {
            return x - a * Proizv2(x) / Math.Abs(Proizv2(x));
        }
        // Х1 для функции 3
        public static double[] x3(double x, double y, double a)
        {
            double[] s = { x, y };
            
            for (int i = 0; i <= 1; i++)
            {
                s[i] = s[i] - a * Proizv3(x, y)[i];
            }
            return s;
        }
        // Х1 для функции 4
        public static double[] x4(double x, double y, double a)
        {
            double[] s = { x, y };
            for (int i = 0; i <= 1; i++)
            {
                s[i] = s[i] - a * Proizv4(x, y)[i];
            }
            return s;
        }

Содержание архива 

  • Исходный код на C# Windows Forms для Visual Studio
Купить 300,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

anna220699

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

300,00 

Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

grad.rar
71729
Оцени работу

рейтинг

Вычисление экстремумов функций с помощью градиентного метода C#
Метод градиентного спуска - это классический метод поиска минимума дифференцируемой функции с аргументами, принимающими вещественные значения. Для минимизации функции в направлении градиента используются методы одномерной оптимизации. Программа выполняет поиск минимумов заданных функций и строит график на заданном промежутке.
Категория: Образование
Стоимость: 300,00