Домашнее задание по «Численным методам»
Автор: Khang Nguyen • Май 4, 2022 • Контрольная работа • 1,402 Слов (6 Страниц) • 250 Просмотры
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Московский государственный технический университет имени Н. Э. Баумана
(МГТУ им. Н. Э. Баумана)
Домашнее задание №2
по дисциплине «Численные методы»
Вариант № 5
- Студент: Нгуен Х.Х.
СМ7-34Б
Проверил: Чередниченко А. В.
«27» декабря 2021 г.
Москва 2021
Вариант № 5:
[pic 1]
[pic 2]
Дана квадратичная функция двух переменных f (x, y). Найти точку минимума этой функции и её минимальное значение.
1. Решить данную задачу аналитически – получить точное решение. Доказать, что найденная точка действительно является точкой минимума (см «ЛА и ФНП»).
2. Решить численно задачу безусловной минимизации квадратичной функции с заданными начальной точкой x0 и двумя вариантами параметров точности поиска ε=0,01 и ε=0,00001. Данную задачу решить следующими методами (которые мы успеем пройти):
2.1. методом наискорейшего спуска;
2.2. методом сопряженных градиентов;
2.3. методом Ньютона;
2.4. квазиньютоновским методом Давидона-Флетчера-Пауэлла (ДФП);
2.5. методом прямого поиска: циклическим покоординатным спуском.
Для каждого метода построить траекторию последовательности точек (нанести точки релаксационной последовательности на плоскость с указанными линиями уровня), указать количество проведенных итераций для каждого метода и эквивалентное количество вычисленных значений целевой функции (считать, что вычисление одного антиградиента эквивалентно n вычислениям значений целевой функции, а вычисление матрицы Гессе – вычислений значений целевой функции, где n – размерность линейного пространства). Сравнить решения, полученные различными методами. Сравнить эти решения с точным решением задачи. Работа должна заканчиваться выводами. Все требования к оформлению, сформулированные в условии домашнего задания No1, действуют и для этого домашнего задания.[pic 3]
Аналитическое решение
[pic 4]
[pic 5]
[pic 6][pic 7]
[pic 8]
[pic 9]
.[pic 10]
[pic 11]
и [pic 12][pic 13][pic 14]
[pic 15]
Рис 1. Графика с помощью MATLAB
2. Вспомогательные функции:
Задание целевой функции
function I = f(x,y)
format long;
I = 2*(x.^2) - 4*x.*y + 5*(y.^2) - 4*sqrt(5)*(x-y) + 4 ;
end
1 Нахождение градиента функции
function grdt = grdt(x)
grdt = [(4 * x(1) - 4 * x(2) - 4 * sqrt(5)); -4*x(1) + 10*x(2) + 4*sqrt(5)];
end
2 Построение линий уровня
function [] = level_mark(x_1,x_2,func)
plot(x_1,x_2,'ko');
hold on;
grid on;
[x1, y1] = meshgrid(-10:0.1:10);
f_graph = 2.*x1.*x1 - 4.*x1.*y1 + 5.*y1.*y1 - 4.*sqrt(5).*(x1 - y1) +4 ;
c = contour(x1, y1, f_graph, [func, func], 'ko');
hold on;
clabel(c,'manual');
end
3 Методом золотого сечения
function goldDivs = golden(f, a, b, eps)
i_count = 0;
d = (1 + sqrt(5)) / 2;
while ((b - a) > eps)
i_count = i_count + 1;
x1 = (b - (b - a) / d);
x2 = (a + (b - a) / d);
if(f(x1) < f(x2))
b = x2;
else
a = x1;
end
end
x_min = ((b + a) / 2);
goldDivs = [x_min];
end
4 Вывод результатов
function [] = result(k,i_count,f_count,x1,x2,f)
fprintf('Количество итераций: %d\n', i_count);
...