Реализация математических моделей использующих методы интегрирования в среде MATLAB

2



МИНИСТЕРСВО ОБРАЗОВАНИЯ И  НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

БЛАГОВЕЩЕНСКИЙ ГОСУДАРСТВЕННЫЙ

ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ



Физико-математический факультет

Кафедра информатики







РЕАЛИЗАЦИЯ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ, ИСПОЛЬЗУЮЩИХ МЕТОДЫ ИНТЕГРИРОВАНИЯ, В СРЕДЕ MATLAB



Курсовая работа









	Выполнил: студент  курса

	Научный руководитель:

	кандидат физико-

	математических наук, доцент









	Благовещенск 2008
СОДЕРЖАНИЕ

	

ВВЕДЕНИЕ	3

1. ИНТЕГРИРОВАНИЕ ФУНКЦИЙ В MATLAB	5

1.1 Численный метод	9

1.2 Символьный метод	11

2. MATLAB – СРЕДА МОДЕЛИРОВАНИЯ	15

3. РЕАЛИЗАЦИЯ ЭКОНОМИЧЕСКОЙ МОДЕЛИ ВЗАИМОРАСЧЁТОВ ПРЕДПРИЯТИЙ В СРЕДЕ MATLAB	16

ЗАКЛЮЧЕНИЕ	19

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ	20

ПРИЛОЖЕНИЯ	21




ВВЕДЕНИЕ



Невозможно представить себе современную науку без широкого применения математического моделирования. Сущность этого метода состоит в замене реального объекта его «образом» - математической моделью. Этот метод позволяет быстро и «безболезненно» изменить объект, изучить его свойства и поведение в различных средах и т.д. Неудивительно, что математическое моделирование бурно развивается и проникает во все сферы знаний.

Создание модели проходит в 3 этапа: модель – алгоритм – программа.



















Рис. 1 – Создание модели



На первом этапе строится модель, наиболее полно отображающая свойства объекта. Модель исследуется теоретическими методами, что позволяет получить важные предварительные знания об объекте. Второй этап включает в себя разработку алгоритма, для реализации модели на компьютере. Модель представляется в форме, удобной для применения численных методов, определяется последовательность вычислительных и логических операций, которые необходимо провести для нахождения искомых величин с заданной точностью. На третьем этапе создаются программы, переводящие модель и алгоритм на доступный компьютеру язык. К ним предъявляются требования экономичности и адаптивности к особенностям решаемых задач и используемых компьютеров. Их можно назвать электронным эквивалентом изучаемого объекта, уже пригодным для непосредственного испытания на компьютере.

Целью данной курсовой работы является изучение приёмов численного и символьного интегрирования на базе математического пакета прикладных программ, а также реализация математической модели, основанной на методе интегрирования.


ИНТЕГРИРОВАНИЕ ФУНКЦИЙ В MATLAB



Возможны два различных подхода к определению определённого интеграла.

ОПРЕДЕЛЕНИЕ 1: приращение  F(b)-F(a)  любой из преобразованных функций F(x)+c при изменении аргумента от x=a до x=b называют определённым интегралом от a до b функции F и обозначается .

Причём функция  F является первообразной для функции f  на некотором промежутке D, а числа а и b принадлежат этому промежутку. Это можно записать следующим образом:   , это формула Ньютона-Лейбница.





Рис. 2 – Определённый интеграл

a

b







ОПРЕДЕЛЕНИЕ 2: Если при любой последовательности разбиений отрезка [a;b] таких, что δ=maxΔxi→0 (n→∞) и при любом выборе точек интегральная сумма σk=f(εi) Δxi  стремится к одному и тому же конечному пределу А, то это число А и есть определённый интеграл, т.е Δxi=A(2).  Где Δхi=xi-xi-1 (i=1,2,…,n) ε=maxΔxi – начало разбиения  произвольная точка из отрезка [xi-1;xi]
сумма всех произведений f(εi)Δxi, (i=1,…,n). Простыми словами, определенный интеграл есть предел интегральной суммы, число членов которой неограниченно возрастает, а каждое слагаемое стремится к нулю.



Рис. 3 – Геометрический смысл

ГЕОМЕТРИЧЕСКИЙ СМЫСЛ: 

S

b

a

Всякая непрерывная на отрезке [a,b] функция f интегрируема на отрезке [a,b], функция f неотрицательна, но определённый интеграл  численно равен S криволинейной трапеции, ограниченной графиком функции f, осью абсцисс и прямыми x=a и x=b, .

Рассмотрим основные методы интегрирования: метод трапеций, метод прямоугольников и метод Симпсона.

Формула прямоугольников

Теперь рассмотрим первый вид приближённого вычисления:
требуется вычислить определённый интеграл: .

Пусть на отрезке [a,b] задана непрерывная функция y=f(x). Разделим отрезок [a,b], аналогично как в формуле трапеций: точками a=x0, x1, x2,…, xn=b на n равных частей длины Δх, где Δх=(b-a)/n.



Рис. 4 – Формула прямоугольников

y=f(x)

b=xn

a=x0

x1

y0

y1

yn



Обозначим через y0, y1 ,y2,…, yn-1, yn значение функции f(x) в точках x0, x1, x2…, xn, то есть, если записать в наглядной формуле:

Y0=f(x0), y1=f(x1), y2=f(x2)…yn,=f(xn).

В данном способе подынтегральную функцию заменяем функцией, которая имеет ступенчатый вид. 

Составим суммы: y0Δx+ y1Δx1+ y2Δx2…+yn-1Δx;  Y1Δx+ y2Δx+…+ynΔx.

В результате вычислений получаем конечную формулу прямоугольников:



Формула трапеций

Возьмём определённый интеграл , где  — непрерывная  подынтегральная функция, которую мы для наглядности будем предполагать положительной. При вычислении интеграла с помощью формулы трапеций подынтегральная функция f заменяется функцией, график которой представляет собой ломанную линию звенья которой соединяют концы ординат yi-1 и yi (i=1,2,…,n). 




a

b

x1

y0

y1

yn

Заменившая функция

Заменяемая функция













Рис. 5 – Формула трапеций



Тогда площадь криволинейной трапеции, ограниченной линиями x=a, x=b, y=0, y=f(x), а значит (следуя из геометрического смысла), и значение нужного нам интеграла, приблизительно равна сумме площадей обычных трапеций с основаниями yi-1 и yi и высотой h=(b-a)/n, так как (если более привычно выражать для нас) h это Δx,a Δx=(b-a)/n при делении отрезка на n равных отрезков при помощи точек x0=a<x1<…<xn=b. Прямые x=xk разбивают криволинейную трапецию на n полосок. Принимая каждую из этих полосок за обыкновенную трапецию, получаем, что площадь криволинейной трапеции приблизительно равна сумме обыкновенных трапеций. 

y0

y1

y2

y3

y4

x0=a

x1

x2

x3

x4



Рис. 6 – Разбиение трапеции

Площадь крайней полоски слева равна произведению полусуммы основания на высоту

Итак, запишем сказанное выше в математическом виде:

  – это и есть формула трапеций.

Формула Симпсона (формула парабол).

Разделим отрезок [a;b] на чётное число равных частей n=2m. Площадь криволинейной трапеции, соответствующей первым двум отрезкам [x0,x1], [x1,x2] и ограниченной заданной кривой y=f(x), заменим площадью криволинейной трапеции, которая ограничена параболой второй степени, проходящей через три точки M0[x0,y0], M1[x1,y1], M2[x2,y2] и имеющей ось, параллельную оси Oy (рис). Такую криволинейную трапецию будем называть параболической трапецией.

Уравнение па

M0

M1

M2

x0=a

xn=bраболы с осью, параллельной оси Oy, имеет вид: . Коэффициенты A, B и C однозначно определяются из условия, что парабола проходит через три заданные точки. Аналогичные параболы строятся и для других пар отрезков. Сумма параболических трапеций и даст приближённое значение интеграла. Сначала вычислим площадь одной параболической трапеции. И продолжая вычисления, получаем формулу Симпсона: 



Теперь рассмотрим методы решения интегралов с помощью программы Matlab.

	1.1 Численный метод 

Вычисление определенных интегралов.

Рассмотрим пример: .

В первую очередь необходимо создать функцию, вычисляющую подынтегральное выражение.







Для вычисления интеграла вызовем  функцию quad, задав первым аргументом ссылку на функцию fint, а вторым и третьим — нижний и верхний пределы интегрирования. 







По умолчанию функция quad вычисляет приближенное значение интеграла с точностью 10-6. [1, C.266] Для изменения точности вычислений следует задать дополнительный четвертый аргумент:





Вычисление двойных интегралов.

В MATLAB определена функция dblquad для приближенного вычисления двойных интегралов. Как и в случае вычисления определенных интегралов, следует написать файл-функцию для вычисления подынтегрального выражения. Вычислим интеграл: 



Следовательно, функция должна содержать два аргумента x и y:







Функция dblquad имеет пять входных аргументов. При ее вызове необходимо учесть, что первыми задаются пределы внутреннего интеграла по х, а вторыми — внешнего по у:







Интегралы, зависящие от параметра.

Функции quad и quadl позволяют находить значения интегралов, зависящих от параметров. Аргументами функции, вычисляющей подынтегральное выражение, должна быть не только переменная интегрирования, но и все параметры. Значения параметров указываются через запятую, начиная с шестого аргумента quad или quadl. [1, C.270]

Решим интеграл: 



Зададим функцию





Используя quad, вычислим интеграл:





1.2 Символьный метод

Символьные переменные и функции являются объектами класса sym object, в отличие от числовых переменных, которые содержатся в массивах double array. Символьный объект создается при помощи функции syms. Команда

>> syms х a b

создает три символьные переменные х, а и b. Конструирование символьных функций от переменных класса sym object производится с использованием обычных арифметических операций и обозначений для встроенных математических функций, например:

>>f = (sin(x)+a)^2 * (cos(x)+b)^2/sqrt (abs(a+b))

f =

      ( sin(x)+a)2*(cos(x)+b)^2/abs(a+b)^(1/2)

Запись формулы для выражения в одну строку не всегда удобна, более естественный вид выражения выводит в командное окно функция pretty:

>>pretty(f)

              



      2                2

  (sin(x)+a) (cos(x)+b)

-------------------------------

                       1/2

            | a + b |

Символьную функцию можно создать без предварительного объявления переменных при помощи sym, входным аргументом которой является строка с выражением, заключенная в апострофы:







Symbolic Math Toolbox позволяет работать как с неопределенными интегралами, так и с определенными. Неопределенные интегралы от символьных функций вычисляются при помощи int, в качестве входных аргументов указываются символьная функция и переменная, по которой происходит интегрирование, например: 





Разумеется, функция int не всегда может выполнить интегрирование. В некоторых случаях int возвращает выражение для первообразной через специальные функции, например, посчитаем интеграл:









Ответ содержит так называемую функцию ошибки, которая определяется интегралом с переменным верхним пределом:



Кроме того, в полученное выражение входит комплексная единица, хотя подынтегральная функция вещественна. Требуются дополнительные преобразования для достижения окончательного результата.

Для нахождения определенного интеграла в символьном виде следует задать нижний и верхний пределы интегрирования, соответственно, в третьем и четвертом аргументах int:







Двойные интегралы вычисляются повторным применением функции int. [1, C.780] 

Например: 

Определим символьные переменные а, b, с, d, x, у, подынтегральную функцию f от х и у и проинтегрируем сначала по х, а затем по у:





Аналогичным образом в символьном виде вычисляются любые кратные интегралы.


2. MATLAB – СРЕДА МОДЕЛИРОВАНИЯ



MATLAB (Matrix Laboratory – матричная лаборатория) это наиболее развитая система программирования для научно-техническом расчетов, дополненная к настоящему времени несколькими десятками более частных приложений, относящихся к вычислительной математике, обработке информации, экономике и ряду других разделов прикладной науки.

MATLAB предназначен для выполнения научных и инженерных расчетов на ПЭВМ. Эти расчеты могут иметь отношение к области   аналитической геометрии, математической статистике, а также к таким научно – техническим приложениям, как спектральный и корреляционный анализ, расчет фильтров и прочее. В MATLAB реализованы классические численные алгоритмы решения уравнений, задач линейной алгебры, нахождения значений определенных интегралов, аппроксимации, решения систем или отдельных дифференциальных уравнений. Для применения базовых вычислительных возможностей достаточно знания основных численных методов в рамках программы технических вузов. Решение специальных задач, разумеется, невозможно без соответствующей теоретической подготовки; впрочем, сведения, изложенные в справочной системе, оказываются неоценимым подспорьем для желающих самостоятельно разобраться в обширных возможностях пакета. Подводя итог вышесказанному, можно сделать вывод, что начинающий пользователь MATLAB может в процессе работы совершенствовать свои знания как в области моделирования и численных методов, так и программирования, и визуализации данных. Огромным преимуществом MATLAB является открытость кода, что дает возможность опытным пользователям разбираться в запрограммированных алгоритмах и, при необходимости, изменять их. Впрочем, разнообразие набора функций MATLAB и Toolbox допускает решение большинства задач без каких-либо предварительных модификаций [6, С.5].

3. РЕАЛИЗАЦИЯ ЭКОНОМИЧЕСКОЙ МОДЕЛИ ВЗАИМОРАСЧЁТОВ ПРЕДПРИЯТИЙ В СРЕДЕ MATLAB



Рассмотрим модель математической оценки с использованием рублей и долларового эквивалента, с помощью двух определенных интегралов, для вычисления которых используется формула трапеций.

В данном случае объектом исследования являются взаиморасчеты, в которых используются доллары и рубли. Договор заключен между тремя сторонами: заказчиком,  генеральным подрядчиком  и субподрядчиком. 

Для анализа доходности сделок генерального подрядчика нас будут интересовать следующие характеристики экономической ситуации:

курс доллара в момент  времени t;

уровень инфляции, характеризующийся коэффициентом инфляции dK;

уровень  цен, характеризующийся индексом цен I(t); 

коэффициент индекса цен dI, характеризующий рост цен в период действия договора;

непрерывная ставка дисконтирования непрерывных денежных потоков δ;

срок действия договоров T;

курс доллара и уровень цен в момент вступления договора в силу K(0), I(0).

Используя данные характеристики, зададим уровень инфляции в момент времени t:

.

Если принять за базу уровень цен в момент вступления договора в силу, т.е. I(0)=1, то уровень цен в момент времени t можно выразить так:



Запишем формулу современной стоимости непрерывного потока выплат подрядчику в рублях по текущему курсу доллара K(t) с учетом индекса I(t).



Запишем теперь формулу современной стоимости непрерывного потока платежей субподрядчикам в рублях с учетом инфляции и индекса цен на момент времени t.



Разность между Y1 и Y2 даст современную стоимость потока наличности подрядчика в момент времени t. 



Если величина АР>0, значит, можно говорить и доходности сделок между заказчиком,  генеральным подрядчиком  и субподрядчиком.

Определим все параметры модели.

>>N=10000;

>>M=50000;

>>T=1;

>>δ=0.1;

>>dI=0.1763;

>>dK=0.85;

>>Io=1;

>>Ko=27.8;

Вычислим K(t) и I(t):

>> K(t) = 57.3

>> I(t) = 2.3526

Для удобства вычисления введём следующие обозначения:





Перепишем интегралы Y1 и Y2:





А их подынтегральные функции обозначим через S1(t) и S1(t) соответственно: 





Вычислим S1(t) и S1(t):

>>S1= 2.2038

>>S2= 1.1019

Определим подынтегральную функцию интегрального сальдо наличности генерального подрядчика как функцию S(t).



>>S(t)=1.1019

Последним шагом вычислим интеграл по формуле трапеций:

, где   – шаг   интегрирования

>>А=1.65285

Так как интеграл  А больше 0, то можно сделать вывод о том, что договор между заказчиком,  генеральным подрядчиком  и субподрядчиком, является экономически выгодным.


ЗАКЛЮЧЕНИЕ



Из данной работы видно, насколько проста и удобна в использовании система Matlab. Для работы с ней необходимо иметь самые элементарные навыки работы на ПК.

Говоря о математических аспектах MATLAB, нужно отметить, что его обозначения очень близки к тем, которые давно используются в математике, и это заметно упрощает освоение многочисленных математических команд.

Этот пакет может использоваться во всех сферах вычислений начиная с самых простых, заканчивая самыми сложными.  


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ



Ануфриев, И. Е. MATLAB 7: Самоучитель / Ануфриев, И. Е. Смирнов, А.Б. Смирнова, Е. Н. – СПб.:  БХВ-Петербург, 2005. – 1104 с.

Выгодский, М. Я. Справочник по высшей математике / Выгодский, М. Я. – М.: АСТ: Астрель, 2005. – 991с.

Демидович, Б. П.Основы вычислительной математики / Демидович, Б. П. Марон, И. А. – М.: Наука, 1970. – 402с.

Масловская, А.Г. Основные принципы работы и конструирование интерфейса в Matlab : Практикум / Масловская, А. Г. – Благовещенск.: Амурский гос. ун-т, 2008. – 55с. 

Масловская, А. Г. Численные методы. Моделирование на  базе Matlab : Практикум / Масловская, А. Г. Черпак, Л. В.  – Благовещенск.: Амурский гос. ун-т, 2006. – 120с.

Самарский, А. А. Математическое моделирование: Идеи. Методы. Примеры / Самарский, А. А. Михайлов, А.П. – М.: Наука. Физматлит. 1997 – 320с.

Тарасевич, Ю.Ю. Математическое и компьютерное моделирование / Тарасевич, Ю.Ю. – М.: Едиториал УРСС, 2004. – 152с. 


Приложение 1



Определение параметров экономической модели.





	
Приложение 2

	

	Вычисление курса доллара и уровня цен, в момент времени t.

	

	

	
Приложение 3

	

	Вычисление подынтегральных функций S1 и S2.

	

	

	
Приложение 4

	

	Вычисление интеграла по формуле трапеций.