Решение инженерных задач методами вычислительной математики
Численное решение системы дифференциальных уравнений. Решение задач интегрирования системы ОДУ методом Рунге-Кутты, условная минимизация функции нескольких переменных заданным методом с использованием программы 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Сущность понятия "дифференциальное уравнение". Главные этапы математического моделирования. Задачи, приводящие к решению дифференциальных уравнений. Решение задач поиска. Точность маятниковых часов. Решение задачи на определение закона движения шара.
курсовая работа [918,7 K], добавлен 06.12.2013Решение системы линейных обыкновенных дифференциальных уравнений, описывающей боковое перемещение нестабильного самолета относительно заданного курса полета методом преобразования Лапласа. Стабилизация движения путем введения отрицательной обратной связи.
курсовая работа [335,8 K], добавлен 31.05.2016Решение системы линейных уравнений двумя способами: по формулам Крамера и методом Гаусса. Решение задачи на нахождение производных, пользуясь правилами и формулами дифференцирования. Исследование заданных функций методами дифференциального исчисления.
контрольная работа [161,0 K], добавлен 16.03.2010Решение системы линейных уравнений методом Якоби вручную и на Бейсике. Построение интерполяционного многочлена Ньютона с помощью Excel. Получение аппроксимирующей функции методом наименьших квадратов. Построение кубического сплайна по шести точкам.
курсовая работа [304,9 K], добавлен 07.09.2012Решение системы уравнений методом Гаусса и с помощью встроенной функции; матричным методом и с помощью вычислительного блока Given/Find. Нахождение производных. Исследование функции и построение её графика. Критические точки и интервалы монотонности.
контрольная работа [325,8 K], добавлен 16.12.2013Предмет и методы изучения дифференциальной векторно-матричной алгебры, ее структура. Векторное решение однородных и неоднородных дифференциальных уравнений. Численное решение векторно-матричных уравнений. Формулы построения вычислительных процедур.
реферат [129,3 K], добавлен 15.08.2009Решение системы уравнений по формулам Крамера, методом обратной матрицы и методом Гаусса. Преобразование и поиск общего определителя. Преобразование системы уравнений в матрицу и приведение к ступенчатому виду. Алгебраическое дополнение элемента.
контрольная работа [84,5 K], добавлен 15.01.2014Вычисление определителя с использованием правила треугольника и метода разложения по элементам ряда. Решение системы уравнений тремя способами: методом Гаусса, методом Кремера и матричным методом. Составление уравнения прямой и плоскости по формуле.
контрольная работа [194,5 K], добавлен 16.02.2015Решение системы методом Гаусса. Составление расширенной матрицу системы. Вычисление производной сложной функции, определенного и неопределенного интегралов. Область определения функции. Приведение системы линейных уравнений к треугольному виду.
контрольная работа [68,9 K], добавлен 27.04.2014Решение задачи Коши для дифференциального уравнения. Погрешность приближенных решений. Функция, реализующая явный метод Эйлера. Вычисление погрешности по правилу Рунге. Решение дифференциальных уравнений второго порядка. Условие устойчивости для матрицы.
контрольная работа [177,1 K], добавлен 13.06.2012