Repository files navigation Лабораторная работа №4 команда "Аппроксимирующий многочлен" (Белицкий Андрей, Кулешов Егор, Дубровин Антон)
Описание архитектуры проекта
public interface Function {
double apply (final Vector values );
Matrix hessian (final Vector values );
Vector grad (final Vector values );
}
class FirstRandom implements Function - квадратичная функция (2 x ^2 +2 y ^2 -8 y )
class TestFunction implements Function - квадратичная функция (x ^2 +y ^2 -1.2 xy )
class NonQuadratic implements Function - неквадратичная функция (x ^4 +2 x ^2 y -33 x ^2 +2 xy ^2 -20 x +y ^4 -19 y ^2 -34 y +389 )
class QuasiFirst implements Function (QuasiSecond ,QuasiThird ,QuasiFourth ) - функции для тестирования квазиньютоновских методов
class BinarySearch - класс отвечающий за одномерную оптимизацию
record Matrix - рекорд, отвечающий за абстракцию матрицы
public @ NotNull Vector gauss (final Vector b ) - метод отвечающий за решение СЛАУ
public Double get (final int row , final int column ) - метод предоставляющий доступ к элементатм матрицы по индексу
public int size () - метод возвращающий размерность матрицы
public void set (final int row , final int column , final Double value ) - метод позволяющий изменять значения матрицы по индексу
record Vector - рекорд, отвечающий за абстракцию вектора
public Double get (int index ) - метод позволяющий получить проекцию вектора на заданную ось
public void set (final int index , final Double value ) - метод позволяющий установить значение вектора по переданному индексу
public int size () - метод возвращающий размерность вектора
class Maths - набор статических методов для операций с матрицами и векторами
record MethodStats - набор значений , характеризующих работу методов
public interface Printable {
default void print (final Vector x ) {
for (int i = 0 ; i < x .size (); i ++) {
System .out .println (x .get (0 ) + ", " + x .get (1 ));
}
System .out .println ();
}
}
public interface Method extends Printable {
MethodStats solve (final Vector values , final Function function , final double eps );
}
public interface QuasiMethod extends Printable {
MethodStats solve (final Vector values , final Function function , final double eps , final int methodType );
}
abstract class AbstractQuasiMethod implements QuasiMethod - класс предоставляющий общую абстракцию для квазиньютоновских методов
class Newton implements Method - класс реализующий работу стандартного метода Ньютона
class NewtonLinearSearch implements Method - класс реалиующий работу метода Ньютона с одномерной оптимиацией
class NewtonDescent implements Method - класс реализующий работу метода Ньютона с направлением спуска
class DFP extends AbstractQuasiMethod implements Method - класс реализующий работу метода Давидона -Флетчера -Пауэлла
class Powell extends AbstractQuasiMethod implements Method - класс реализующий работу метода Пауэлла
About
Лабораторная работа №4 по предмету "Методы оптимизации", 4 семестр, ИТМО 2021
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.