Решение инженерных задач методами вычислительной математики
Численное решение системы дифференциальных уравнений. Решение задач интегрирования системы ОДУ методом Рунге-Кутты, условная минимизация функции нескольких переменных заданным методом с использованием программы Matlab сведением в графики и таблицы.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.03.2020 |
Размер файла | 3,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра «Автоматика и телемеханика»
Курсовая работа
по дисциплине «Математические методы решения инженерных задач»
на тему «Решение инженерных задач методами вычислительной математики»
ПГУ 3.15.03.06.04.ПЗ
Направление подготовки -15.03.06 Мехатроника и робототехника
Профиль подготовки - Мехатроника и робототехника
Выполнил студент:
Жаркова А.В.
Группа: 16ПН1
Руководитель:
к.т.н., доцент
Козлов А.Ю.
2018
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
«УТВЕРЖДАЮ»
Зав. кафедрой АиТ, д.т.н., профессор
_________________ М.А. Щербаков
«__» ____________ 20__ г.
ЗАДАНИЕ
на курсовую работу по дисциплине «Математические методы решения инженерных задач»
Тема: «Решение инженерных задач методами вычислительной математики»
ВАРИАНТ 4
Задача № 1.
№ п/п |
Система ОДУ |
Начальные условия |
Окончание расчета |
Метод выбора шага интегрирования |
|
4 |
|
0.0 0.0 0.1 |
6.0 |
Апостериорный |
Методы решения частных задач
№ п/п |
Метод интерполяции |
Метод вычисления определенного интеграла |
|
4. |
Интерполяционный многочлен Лагранжа |
Метод парабол |
1. Решить заданную систему обыкновенных дифференциальных уравнений (ОДУ) методом Рунге - Кутты 4-5-го порядка. Для этого разработать собственную программу в Matlab (программа должна быть представлена в виде m-файла), а также решить задачу с помощью решателя Matlab (использовать как эталонное решение).
2. В разработанной программе реализовать выбор шага интегрирования в соответствии с вариантом (реализовать алгоритмы, приведенные в [4]).
3. При решении стандартным решателем Matlab, использовать автоматический шаг.
4. Решение, полученное с помощью разработанной программы, сравнить с эталонным решением по следующим зависимостям:
, , ,
где , , - решения, найденные с помощью разработанной программы; , , - решения, найденные с помощью стандартного решателя Matlab.
При вычислении интеграла задать равномерную сетку по t, вычислив промежуточные значения с помощью заданного метода интерполяции.
Методы вычисления интеграла и интерполяции выбрать в соответствии с вариантом.
5. Построить в отдельных окнах графики каждой переменной, найденной с помощью разработанной функции и стандартной функции с наложением, а также трехмерный график движения точки в декартовой системе координат средствами Matlab.
6. Создать видеофайл решения задачи: движение точки в трехмерной декартовой системе координат. Видеофайл представить на любом носителе.
Задача № 2.
№ п/п |
Постановка задачи |
Метод решения |
|
4 |
|
Метод множителей |
1. Минимизировать заданную функцию согласно варианту с использованием встроенных функций Matlab.
2. Составить программу в системе Matlab (расширение файла *.m), реализующую заданный метод условной минимизации [5]. Минимизировать заданную функцию согласно варианту. Если в ходе реализации заданного алгоритма необходимо решать задачу минимизации функции на каждой итерации, то для решения этой задачи использовать стандартную функцию Matlab.
3. Сравнить результаты, полученные стандартной и разработанной функцией (рассчитать относительную погрешность реализованного метода).
4. Ввод исходных данных и вывод результатов организовать с использованием Excel.
Руководитель работы, к.т.н., доц. Каф. АиТ Козлов А.Ю.
Введение
В настоящее время разработано большое число методов численного интегрирования систем дифференциальных уравнений. К их числу можно отнести метод Рунге-Кутта, явный и неявный методе Эйлера, метод Милна и т.д. дифференциальный уравнение вычислительный
В курсовой работе рассмотрен метод Рунге-Кутты решения ОДУ.
Под оптимизацией понимают процесс выбора наилучшего варианта из всех возможных. С точки зрения инженерных расчетов методы оптимизации позволяют выбрать наилучший вариант конструкции, наилучшее распределение ресурсов и т.д.
В процессе решения задачи оптимизации обычно необходимо найти оптимальные значения некоторых параметров, определяющих данную задачу. При решении инженерных задач их принято называть проектными параметрами. В качестве проектных параметров могут быть, в частности, значения линейных размеров объекта, массы, температуры и т.п. число n проектных параметров x1,x2,…,xn характеризует размерность (и степень сложности) задачи оптимизации.
Выбор оптимального решения или сравнение двух альтернативных решений проводится с помощью некоторой зависимой величины (функции), определяемой проектными параметрами. Эта величина называется целевой функцией (или критерием качества). В процессе решения задачи оптимизации должны быть найдены такие значения проектных параметров, при которых целевая функция имеет минимум (или максимум). Таким образом, целевая функция - это глобальный критерий оптимальности в математических моделях, с помощью которых описываются инженерные или экономические задачи.
В курсовой работе решена задача интегрирования системы ОДУ методом Рунге-Кутты, осуществлена условная минимизация функции нескольких переменных заданным методом. Все задачи решены с использованием программы Matlab с представлением необходимой графической и табличной информации.
1. Численное решение системы дифференциальных уравнений
1.1 Метод Рунге-Кутты
Обыкновенными дифференциальными уравнениями описывают задачи движения системы взаимодействующих материальных точек, сопротивление материалов и многое другое. Ряд важных задач для уравнений в частных производных также сводятся к задачам для обыкновенных дифференциальных уравнений. Таким образом, решение обыкновенных дифференциальных уравнений занимает важное место среди прикладных задач физики, химии, техники.
Конкретная прикладная задача может приводить к дифференциальному уравнению любого порядка или системе уравнений любого порядка. Однако обыкновенные дифференциальные уравнения n-го порядка можно с помощью замены свести к эквивалентной системе n уравнений первого порядка.
Различают три основных типа задач для решения обыкновенных дифференциальных уравнений: задачи Коши, краевые задачи и задачи на собственные значения. В этой курсовой работе рассмотрим метод решения задач Коши.
Пусть задано дифференциальное уравнение первого порядка в виде
(1)
и начальное условие
. (2)
Задача Коши состоит в том, чтобы найти функцию y=y(x), являющуюся решением уравнения (1) и удовлетворяющую условию (2).
Методы решения можно условно разбить на точные, приближенные и численные.
К точным относятся методы, с помощью которых можно выразить решение дифференциального уравнения через элементарные функции.
Приближенные методы - это методы, в которых решение получается как предел некоторой последовательности.
Численные методы - это алгоритмы вычисления приближенных значений искомого решения на некоторой выбранной сетке значений аргумента. Решение при этом получается в виде таблицы.
Одним из наиболее точных методов является метод Рунге-Кутты. Классический метод Рунге-Кутты описывается системой следующих пяти соотношений:
(3)
(4)
Заметим, что при использовании этого метода функцию необходимо вычислять четыре раза.
Отличительной чертой методов Рунге-Кутты является то, что при вычислении следующей точки xm+1,ym+1 используется информация только о точке xm ,ym , но не предыдущих. В методах второго порядка и выше приходится вычислять значение функции в одной или нескольких промежуточных точках.
1.2 Выбор шага интегрирования
При численном решении задач Коши для ОДУ и систем ОДУ шаг численного решения можно выбирать апостериорно и априорно. В обоих случаях первоначальное значение шага h задается.
При апостериорном выборе шага последний изменяется в процессе счета на основе получаемой информации о поведении решения и на основе заданной точности .
Пусть - заданная точность численного решения, и пусть h - первоначально выбранный шаг. Тогда алгоритм дальнейшего выбора шага следующий.
1. Выбранным методом на отрезке , решается задачи Коши с шагом h с получением значения .
2. Тем же методом с шагом решается задачи Коши с получением и .
3. Анализируется неравенство
. (5)
Если неравенство (5) удовлетворяется, то значение шага численного интегрирования на следующем шаге увеличивается вдвое по сравнению с первоначально выбранным шагом, т.е. становится равным 2h, и алгоритм повторяется, начиная с п.1.
4. Если неравенство (5) не выполняется, то счет ведется с шагом , начиная с отрезка и после получения значения анализируется неравенство
.
Если оно удовлетворяется, то дальнейший счет ведется с шагом и т.д.
При априорном выборе шага расчет ведется с первоначально выбранным шагом h с получением функции , , и с шагом с получением функции , Затем анализируется неравенство
. (6)
Если оно выполнено, то решение , , принимается за истинное, в противном случае расчет повторяется с шагом и сравниваются по норме (6) функции и и т.д.
1.3 Интерполяция многочленом Лагранжа
Пусть задана функция y=f(x). Часто нахождение значений этой функции может оказаться трудоемкой задачей. Например, - параметр в некоторой сложной задаче, после решения которой определяется значение f(x), или f(x) измеряется в дорогостоящем эксперименте. В этих случаях можно получить небольшую таблицу значений функции, но прямое нахождение ее значений при большом количестве значений аргумента нереально. В такой ситуации f(x) заменяется приближенной функцией , которая в определенном смысле близка к функции f(x). Близость обеспечивается введением в функцию свободных параметров и их соответствующим выбором.
Итак, известны значения функции f(x) в точках , . Потребуем, чтобы для некоторой функции , где - свободные параметры, выполнялись равенства:
. (7)
Если (7) рассматривать как систему для определения , то этот способ называется интерполяцией (Лагранжевой).
Если зависит от нелинейно, то интерполяция нелинейная, иначе интерполяция линейная. В случае линейной интерполяции можно записать
, (8)
где - система линейно-независимых функций.
Подставим (8) в (7). Относительно получаем линейную систему уравнений:
, . (9)
Для однозначной разрешимости системы должно быть .
Для того, чтобы задача интерполирования имела единственное решение, система функций должна для любых несовпадающих удовлетворять условию:
(10)
Система функций, удовлетворяющая условию (10), называется чебышевской.
Наиболее простой и (для многих случаев) удобной является система функций , . Функция при этом представляет собой многочлен степени (интерполяционный многочлен) с коэффициентами .
Система уравнений (9) в этом случае имеет вид:
, (11)
Определителем этой системы является отличный от нуля определитель Вандермонда:
.
Отсюда следует, что интерполяционный многочлен существует и единственен.
Непосредственное решение системы (11) для нахождения aj уже при небольших n приводит к сильному искажению значений aj. Получим явный вид интерполяционного многочлена, не решая систему (11).
Если y С[a,b]- многочлен степени n, то - искомый интерполяционный многочлен степени ,т.к. .
Так как при , то y C[a,b] делится на для любых , т.е.
.
Так как , то .
Таким образом,
. (12)
Такая форма записи интерполяционного многочлена называется многочленом Лагранжа и обозначается, как правило, .
Существуют и другие формы записи того же самого интерполяционного многочлена.
Если обозначить , то (6) можно записать в виде
.
1.4 Численное интегрирование методом Симпсона (парабол)
Разделим отрезок [a;b] на чётное число равных частей n=2m. Площадь криволинейной трапеции, соответствующей первым двум отрезкам [x0,x1], [x1,x2] и ограниченной заданной кривой y=f(x), заменим площадью криволинейной трапеции, которая ограничена параболой второй степени, проходящей через три точки M0[x0,y0], M1[x1,y1], M2[x2,y2] и имеющей ось, параллельную оси Oy. Такую криволинейную трапецию будем называть параболической трапецией. Уравнение параболы с осью, параллельной оси Oy, имеет вид: . Коэффициенты A, B и C однозначно определяются из условия, что парабола проходит через три заданные точки. Аналогичные параболы строятся и для других пар отрезков. Сумма параболических трапеций и даст приближённое значение интеграла. Таким образом получаем формулу Симпсона:
. (13)
1.5 Решение задачи
Для решения задачи интерполяции составили программу в Matlab. Текст программы приведен в Приложении А.1.
Для решения задачи вычисления определенного интеграла составили программу в Matlab. Текст программы приведен в Приложении А.1.
Для решения системы ОДУ методом Рунге-Кутты в Matlab применим функцию [t,Y,te,ye,ie]=ode45(@div,tspan,Y0,options) [2].
Текст программы приведен в Приложении А.1.
Результат решения системы ОДУ представлен на рисунках 1…3.
Рисунок 1 - Изменение переменной x
Рисунок 2 - Изменение переменной y
Рисунок 3 - Изменение переменной z
Результат решения системы ОДУ стандартным и собственным решателем в декартовой системе координат представлен на рисунке 4.
Рисунок 4 - Движение точки
На рисунке 5 представлена оценка качества решения разработанной программой. Расчеты производились по следующим формулам:
, , ,
где , , - решения, найденные с помощью разработанной программы;
, , - решения, найденные с помощью стандартного решателя Matlab.
Рисунок 5 - Оценка качества решения разработанной программой
Как видно из рисунка, значения показателей качества решения близки к нулю, что говорит о высокой точности решения.
Для создания видеофайла решения задачи применим функцию videoobj = VideoWriter('v4','MPEG-4').
2. Условная минимизация функций нескольких переменных
2.1 Постановка задачи минимизации
Даны дважды непрерывно дифференцируемые целевая функция и функции ограничений ; , определяющие множество допустимых решений X.
Требуется найти локальный минимум целевой функции на множестве X, т.е. такую точку , что
,
где .
2.2 Алгоритм метода множителей
Шаг 1. Задать начальную точку ; начальное значение параметра штрафа ; число для увеличения параметра; начальные значения векторов множителей , малое число для остановки алгоритма. Положить .
Шаг 2. Составить модифицированную функцию Лагранжа
.
Шаг 3. Найти точку безусловного минимума по с помощью какого-либо метода (нулевого, первого или второго порядка):
.
При этом задать все требуемые выбранным методом параметры. В качестве начальной точки взять .
Шаг 4. Вычислить
,
где и проверить выполнение окончания условия:
а) если , процесс поиска закончить:
, ;
б) если , положить:
(пересчет параметра штрафа),
(пересчет множителей для ограничений-равенств);
(пересчет множителей для ограничений-равенств);
, и перейти к шагу 2.
2.2 Решение задачи
Составим и запустим программу в системе Matlab, реализующую метод множителей функций для решения задачи условной минимизации функции нескольких переменных.
Текст программы приведен в Приложении А.2.
Результат выполнения программы представлен на рисунке 6.
Рисунок 6 - Результат выполнения программы
Ввод исходных данных организован с помощью файла z2.xls (рис. 7).
Рисунок 7 - Задание исходных данных в файле z2.xls
Вывод данных организован в файл z2.xls (рис. 8).
Рисунок 8 - Вывод данных в файл z2.xls
Заключение
В результате выполнения курсовой работы решена задача интегрирования системы ОДУ методом Рунге-Кутты, осуществлена условная минимизация функции нескольких переменных заданным методом. Все задачи решены с использованием программы Matlab с представлением необходимой графической и табличной информации.
Список использованных источников
1. Дьяконов, В. Математические пакеты расширения Matlab. Специальный справочник [Текст] / В. Дьяконов, В. Круглов - Спб.: Питер, 2001. - 480 с. - 5000 экз. - ISBN 5-318-0004-5.
2. Кетков, Ю.Л. MATLAB 7: программирование, численные методы [Текст] / Ю.Л. Кетков, А.Ю. Кетков, М.М. Шульц - Спб.: БХВ-Петербург, 2005. - 752 с. - 3000 экз. - ISBN 5-94157-347-2.
3. Формалев, В.Ф. Численные методы [Текст] / В.Ф. Формалев, Д.Л. Ревизников - М.: ФИЗМАТЛИТ, 2004. - 400 с. - 1000 экз. - ISBN 5-9291-0479-9.
4. Пантелеев, А.В. Методы оптимизации в примерах и задачах: Учебное пособие [Текст] / А.В. Пантелеев, Т.А. Летова - 2-е изд., исправл. - М.: Высшая школа, 2005. - 544 с. - 3000 экз. - ISBN 5-06-004137-9.
Приложени
Текст программы решения задачи Коши для системы ОДУ
function var4
clear all;
global T;
T = 6; % время решения задачи
Y0(1) = 0.0; % начальное значение x
Y0(2) = 0; % начальное значение y
Y0(3) = 0.1; % начальное значение z
h0 = 0.1; % начальный шаг интегрирования
%--------------------------------
tspan = [0 T];
options = odeset('Events',@evar,'OutputFcn',@odeplot,'OutputSel',1,'Refine',4,'RelTol',0.001,'AbsTol',0.001);
%стандартная функция Matlab------------------------------------------------
[t,Y] = ode45(@dvar,tspan,Y0,options);
odeplot([],[],'done'),grid;
figure(1);
plot(t,Y(:,1)), grid on; hold on;
xlabel('Время');
ylabel('переменная x');
figure(2);
plot(t,Y(:,2)), grid on; hold on;
xlabel('Время');
ylabel('переменная y');
figure(3);
plot(t,Y(:,3)), grid on; hold on;
xlabel('Время');
ylabel('переменная z');
figure(4);
plot3(Y(:,1),Y(:,2),Y(:,3)), grid on; hold on;
% собственная функция с апостериорным выбором шага-------------------------
[t3,Y3] = RK1(@dvar,tspan,h0,Y0,0.001);
figure(1);
plot(t3,Y3(:,1),'--r'), grid on;
xlabel('Время');
ylabel('переменная x');
legend('Стандартный решатель','Разработанный решатель');
hold off;
figure(2);
plot(t3,Y3(:,2),'--r'), grid on;
xlabel('Время');
ylabel('переменная y');
legend('Стандартный решатель','Разработанный решатель');
hold off;
figure(3);
plot(t3,Y3(:,3),'--r'), grid on;
xlabel('Время');
ylabel('переменная z');
legend('Стандартный решатель','Разработанный решатель');
hold off;
figure(4);
plot3(Y3(:,1),Y3(:,2),Y3(:,3),'--r'), grid on;
legend('Стандартный решатель','Разработанный решатель');
hold off;
% равномерная сетка
H = 0.5;
t1 = min(t):H:max(t);
% решения, найденные с помощью стандартного решателя Matlab
Y1(:,1) = lagrange(t,Y(:,1),t1);
Y1(:,2) = lagrange(t,Y(:,2),t1);
Y1(:,3) = lagrange(t,Y(:,3),t1);
% решения, найденные с помощью разработанной программы
Y2(:,1) = lagrange(t3,Y3(:,1),t1);
Y2(:,2) = lagrange(t3,Y3(:,2),t1);
Y2(:,3) = lagrange(t3,Y3(:,3),t1);
% оценка качества решения
Qx = simpson((Y1(:,1)-Y2(:,1)).^2,H),
Qy = simpson((Y1(:,2)-Y2(:,2)).^2,H),
Qz = simpson((Y1(:,3)-Y2(:,3)).^2,H),
%создание видеофайла-------------------------------------------------------
videoobj = VideoWriter('var4','MPEG-4');
open(videoobj);
fig = figure(5);
axis([min(Y(:,1)) max(Y(:,1)) min(Y(:,2)) max(Y(:,2)) min(Y(:,3)) max(Y(:,3))]);
axis manual;
hold on;
for k=1:1:length(t)
plot3(Y(k,1),Y(k,2),Y(k,3),'o','MarkerEdgeColor','g','MarkerFaceColor','g','MarkerSize',2,'LineWidth',2),grid on;
if k ~= 1
line([Y(k,1), Y(k-1,1)],[Y(k,2),Y(k-1,2)],[Y(k,3),Y(k-1,3)],'Color','g','LineStyle','-','LineWidth',4);% соединение точек линиями
end
F = getframe(fig);
writeVideo(videoobj,F);
end
close(fig);
close(videoobj);
%--------------------------------------------------------------------------
function [value,isterminal,direction] = evar(t,Y)
global T;
value = T - t;
isterminal = 1;
direction = -1;
function F = dvar(t,Y)
F = zeros(3,1);
F(1) = Y(1)^2*tan(Y(2))-Y(3);
F(2) = (Y(1)+Y(2))^2-4*Y(3);
F(3) = Y(1)+Y(2)-Y(3);
function [ye] = RK(f, h, x_c, y_c)
k1 = h.*f(x_c,y_c);
k2 = h.*f(x_c + h/2, y_c + k1./2);
k3 = h.*f(x_c + h/2, y_c + k2./2);
k4 = h.*f(x_c + h, y_c + k3);
ye = y_c + (k1 + 2.*k2 + 2.*k3 + k4)./6;
function [t,y,te,ye] = RK1(f,x,h0,y0,e)
h = h0;
t(1) = x(1);
y(1,:) = y0;
k = 1;
flag = 0;
x_cur = x(1);
y_cur = y0';
while x_cur <= max(x)
if flag > 1
break;
end
[ye1] = RK(f, h, x_cur, y_cur);
[ye2] = RK(f, h/2, x_cur, y_cur);
[ye3] = RK(f, h/2, x_cur + h/2, ye2);
if max(abs(ye1 - ye3)) > e
h = h/2;
continue;
end
[ye11] = RK(f, h, x_cur + h, ye1);
[ye4] = RK(f, 2*h, x_cur, y_cur);
if max(abs(ye11 - ye4)) < e
h = h*2;
continue;
end
if (x_cur + h) > max(x)
h = abs(max(x) - x_cur);
end
x_cur = x_cur + h;
y_cur = ye1;
y(k+1,:) = y_cur;
t(k+1) = x_cur;
if x_cur >= max(x)
flag = flag + 1;
end
k = k + 1;
end
t = t(1:end-1)';
y = y(1:end-1,:);
te = x_cur;
ye = y_cur';
function [yy] = lagrange(x,y,xx)
% вычисление интерполяционного полинома в форме Лагранжа
% x - массив координат узлов
% y - массив значений интерполируемой функции
% xx - массив значений аргумента, для которых надо вычислить значения полинома
% yy - массив значений полинома в точках xx
% ymax = max(y);
% y = y/ymax;
% узнаем число узлов интерполяции (N=n+1)
N=length(x);
% создаем нулевой массив значений интерполяционного полинома
yy=zeros(size(xx));
% в цикле считаем сумму по узлам
for k=1:N
% вычисляем произведения, т.е. функции Psi_k
t=ones(size(xx));
for j=[1:k-1, k+1:N]
A = xx-x(j);
B = x(k)-x(j);
t = t.*A/B;
end
% накапливаем сумму
yy = yy + y(k)*t;
end
function [S] = simpson(y,h)
% вычисление определенного интеграла методом Симпсона
% h - шаг интегрирования
% y - значения функции в узловых точках
% S - рассчитанное значение определенного интеграла
n = length(y);
m = n/2;
sum1=0;
for i=2:1:m
sum1=sum1+y(2*i);
end
sum2=0;
for i=2:1:m-1
sum2=sum2+y(2*i+1);
end
S = h/3*(y(1)+y(n)+4*sum1+2*sum2);
Приложение А.2
Текст программы условной минимизации функции нескольких переменных
function z2
% Метод множителей
clear all;
% исходные данные
x(1,:) = xlsread('z2.xls',1,'A2:A4');
r(1) = xlsread('z2.xls',1,'B2');
C = xlsread('z2.xls',1,'C2');
lambda(:,1) = xlsread('z2.xls',1,'D2:D3');
mu(1) = xlsread('z2.xls',1,'E2');
e = xlsread('z2.xls',1,'F2');
%--------------------------------------------------------------------------
% минимизация стандартной функцией
options = optimoptions(@fmincon,'Algorithm','active-set','MaxIter',5000,'Display','off');
[X,Fval] = fmincon(@myfun,x(1,1:3),[],[],[],[],[],[],@mycon,options),
xlswrite('z2.xls',Fval,2,'C2');
xlswrite('z2.xls',X',2,'C3');
%--------------------------------------------------------------------------
k = 1; % Счетчик шагов
kmax = 1000; % Предельное число шагов
while k < kmax
% нахождение безусловного минимума модифицированной функции Лагранжа
[x1(k,:),fval1(k)] = fminsearch(@(x) mysupp(x,lambda(:,k),mu(k),r(k)),x(k,:));
% ---------------------------------------------------------------------
PP(k) = myfine(x1(k,:),mu(k),r(k)); % расчет значения функции штрафа при оптимальных х на текущей итерации
if abs(PP(k)) <= e
X1 = x1(k,:),
F1 = myfun(X1),
break % Выход из цикла в случае выполнения условия
elseif abs(PP(k)) > e
k = k + 1;
r(k) = C*r(k-1);
[c,ceq] = mycon(x1(k-1,:));
lambda(:,k) = lambda(:,k-1)+r(k-1).*ceq';
mu(k) = max(0,(mu(k-1)+r(k-1)*0));
x(k,:) = x1(k-1,:);
end
end
xlswrite('z2.xls',F1,2,'B2');
xlswrite('z2.xls',X1',2,'B3');
function f = myfun(x)
% целевая функция
% x - аргументы целевой функции
f = x(1)^2+2*x(2)^2+3*x(3)^2-2*x(1)*x(2)-2*x(1)*x(3);
function [c,ceq] = mycon(x)
% расчет ограничений
% х - аргументы целевой функции
% ограничения типа "равенство"
ceq(1) = x(1)+x(2)+x(3)-1;
ceq(2) = x(1)-x(2)-2;
%--------------------------------------------------------------------------
% ограничения типа "неравенство"
c = [];
function L = mysupp(x,lambda,mu,r)
% модифицированная функция Лагранжа
% х - аргументы целевой функции
% lambda - параметр
% mu - параметр
% r - значение параметра штрафа на текущей итерации
f = myfun(x);
[c,ceq] = mycon(x);
P = myfine(x,mu,r);
S = lambda(1)*ceq(1)+lambda(2)*ceq(2);
L = f + S + P;
function P = myfine(x,mu,r)
% штрафная функция
% х - аргументы целевой функции
% r - значение параметра штрафа на текущей итерации;
% mu - параметр;
[c,ceq] = mycon(x);
P = r/2*sum(ceq.^2);
Размещено на Allbest.ru
Подобные документы
Решение систем линейных алгебраических уравнений методом исключения Гаусса. Табулирование и аппроксимация функций. Численное решение обыкновенных дифференциальных уравнений. Приближенное вычисление определенных интегралов. Решение оптимизационных задач.
курсовая работа [1,6 M], добавлен 21.11.2013Практическое решение дифференциальных уравнений в системе MathCAD методами Рунге—Кутты четвертого порядка для решения уравнения первого порядка, Булирша — Штера - системы обыкновенных дифференциальных уравнений первого порядка и Odesolve и их графики.
лабораторная работа [380,9 K], добавлен 23.07.2012Формирование системы их пяти уравнений по заданным параметрам, ее решение методом Гаусса с выбором главного элемента. Интерполяционный многочлен Ньютона. Численное интегрирование. Решение нелинейных уравнений. Метод Рунге-Кутта четвертого порядка.
контрольная работа [115,5 K], добавлен 27.05.2013Получение точного решения дифференциального уравнения вручную, операторным методом, приближенное решение с помощью рядов (до 5 элемента ряда) на заданном интервале, графическое решение. Относительная и абсолютная погрешность методов Эйлера и Рунге-Кутты.
курсовая работа [990,8 K], добавлен 17.07.2014Решение нелинейных уравнений методом касательных (Ньютона), особенности и этапы данного процесса. Механизм интерполирования функции и численное интегрирование. Приближенное решение обыкновенных дифференциальных уравнений первого порядка методом Эйлера.
курсовая работа [508,1 K], добавлен 16.12.2015Математическая модель задачи. Решение транспортной задачи методом потенциалов. Значение целевой функции. Система, состоящая из 7 уравнений с 8-ю неизвестными. Решение задач графическим методом. Выделение полуплоскости, соответствующей неравенству.
контрольная работа [23,5 K], добавлен 12.06.2011Составление диагональной системы способом прогонки, нахождение решения задачи Коши для дифференциального уравнения на сетке методом Эйлера и классическим методом Рунге-Кутта. Построение кубического сплайна интерполирующей функции равномерного разбиения.
практическая работа [46,1 K], добавлен 06.06.2011Матричные уравнения, их решение и проверка. Собственные числа и собственные векторы матрицы А. Решение системы методом Жорданa-Гаусса. Нахождение пределов и производных функции, ее градиент. Исследование функции методами дифференциального исчисления.
контрольная работа [287,0 K], добавлен 10.02.2011Методы численного интегрирования, основанные на том, что интеграл представляется в виде предела суммы площадей. Геометрическое представление метода Гаусса с двумя ординатами. Численные примеры и сравнение методов. Решение систем алгебраических уравнений.
курсовая работа [413,4 K], добавлен 11.06.2014Решение систем линейных алгебраических уравнений методом простой итерации. Полиномиальная интерполяция функции методом Ньютона с разделенными разностями. Среднеквадратическое приближение функции. Численное интегрирование функций методом Гаусса.
курсовая работа [2,4 M], добавлен 14.04.2009