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

Вычисление экстремумов функций с помощью градиентного метода 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
Купить 200,00 
Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

anna220699

/ /

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

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

Только зарегистрированые пользователи имеют возможность комментировать работы
Другие работы автора
Тип Название Рейтинг Категория Стоимость
Исходник Нахождение кратчайшего пути в графе. Алгоритм Дейкстры C# 0 .NET (C#) 200,00
Купить

200,00 

Покупается впервые!
Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.
grad.rar
48888
Оцени работу

рейтинг

Поделись работой с друзьями

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