Решение инженерных задач методами вычислительной математики

Численное решение системы дифференциальных уравнений. Решение задач интегрирования системы ОДУ методом Рунге-Кутты, условная минимизация функции нескольких переменных заданным методом с использованием программы 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.