Определение минимума функции при неизвестном параметре k

Определение параметра k интегрированием с помощью формулы Симпсона, которая обращалась к методу Лагранжа, для нахождения значения функции в заданной точке. Разработка процедуры поиска минимума методом дихотомии. Проверка результатов с помощью MathCad.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.07.2012
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Государственное образовательное учреждение высшего

профессионального образования

Московский технический университет связи и информатики

КУРСОВАЯ РАБОТА

по информатике

Москва 2012 г.

Оглавление

1. Задание

2. Постановка задачи

3. Описание используемых численных методов

4. Схемы алгоритмов решения задачи

5. Тестирование написанной программы

6. Программный код

7. Решение поставленной задачи

8. Проверка результатов с использованием математического пакета

9. Основные результаты и выводы по работе.

10. Список литературы и интернет ресурсов

1. Задание

Определить минимум функции с точностью на отрезке

Параметр , функция задана таблично.

0

0.1

0.2

0.3

0.4

1.758203

1.738744

1.718369

1.697320

1.675834

Найти:

1)параметр

2)минимум функции

2. Постановка задачи

Для нахождения уравнения, описывающего таблично заданную функцию . Воспользуемся интерполяцией методом Лагранжа. После нахождения искомой зависимости , при помощи формулы Симпсона, найдем под площадь под этой кривой. Далее при помощи метода ГДШ найдем минимум исходной функции подставив в уравнение ранее найденный параметр .

Укрупненная схема алгоритма:

3. Описание используемых численных методов

1) Для интерполяции исходной таблично заданной функции будем использовать интерполяционный многочлен Лагранжа т.к.:

· Хоть узлы в исходной таблично заданной функции заданы на равном расстоянии, но нам необходимо знать значения функции как в начале отрезке, в середине, так и в конце, при использовании интерполяционной функции Ньютона нам придется использовать две разных формулы для начала отрезка, и для конца. Для упрощения решаемой задачи воспользуемся методом Лагранжа

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

Общий вид интерполяционного многочлена Лагранжа:

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

Решение:

2) Для нахождения площади будем пользоваться формулой Симпсона, т.к. данный метод в купе с правилом Рунге Кутта, позволяет достичь наибольшей точности.

Решение:

3) Для поиска минимума воспользуемся одномерной оптимизации: методом дихотомии, т.к.:

· данный метод прост в применении

· на каждой итерации длинна отрезка неопределенности уменьшается почти в 2 раза, следовательно, обеспечена быстрая сходимость

Чтобы использовать метод дихотомии, надо провести первоначальное определение интервала неопределенности, на котором содержится минимум функции: для этого проведем исследование, как меняется вид нашей функции в зависимости от значений параметра k:

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

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

4. Схемы алгоритмов решения задачи

Данная процедура осуществляет вычисления значения полинома Лагранжа в заданной точке, и возвращает данное значение.

Данная процедура осуществляет подсчет интеграла по формуле Симпсона, на вход процедуре подается исходная функция, и границы нахождения интеграла.

Процедура нахождения минимума методом дихотомии

Процедура описывающая исходную функцию

5. Тестирование написанной программы.

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

, рассмотрим данную функцию на интервале [-2;2], как узлы интерполяции для нахождения параметра kвозьмем:

x

0

1

1.5

2.5

3

y

0

1

2.25

6.25

9

Функция, описывающая изначально параметр k:

Т.к. выбрана простая функция то, минимум ее находится в точке kв данном случае на рисунке этот параметр равен9 и минимум находится в 9, поэтому начальный отрезок не определённости будем брать , в нашем случае это

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

6. Программный код

ImportsSystem.Math

ModuleModule1

Functionf(ByVal k AsSingle, ByVal x AsSingle) AsSingle

f = k * (2 * (x ^ 2) + 3 * Exp(-x))

Return f

EndFunction

Процедура нахождения значения функции в заданной точке x1 по формуле Лагранжа, к ней обращается каждый раз процедура Simpson когда ей нужно найти значение функции в определённой точке

PublicFunctionLX(ByVal xl AsSingle, ByVal x() AsSingle, ByVal y() AsSingle) AsDouble

Dim l, l1 AsDouble

Dimi, j AsInteger

Dim k AsInteger

l = 0

k = UBound(x)

Fori = 0 To k

l1 = y(i)

For j = 0 To k

Ifi<> j Then

l1 = l1 * (xl - x(j)) / (x(i) - x(j))

EndIf

Next

l = l + l1

Next

Return l

EndFunction

Процедура вычисления значения интеграла методом Симпсона с использованием правила Рунге, т.е. с двойным просчетом интеграла с шагом h и h/2

SubSimpson(ByVal a AsSingle, ByVal b AsSingle, ByRef Integral AsSingle, ByVal EE AsSingle, ByVal x() AsSingle, ByVal y() AsSingle)

Dim n AsInteger

Dimi, c AsInteger

Dim h, s1, x1 AsSingle

n = 2

h = (b - a) / n

Integral = (h / 3) * (LX(a, x, y) + 4 * (LX((a + b) / 2, x, y)) + LX(b, x, y))

Do

n = 2 * n : h = (b - a) / n : s1 = Integral : c = 4 : x1 = a : Integral = LX(a, x, y) + LX(b, x, y)

Fori = 1 To n - 1

x1 = x1 + h

Integral = Integral + c * LX(x1, x, y)

c = 6 - c

Next

Integral = Integral * h / 3

LoopUntilAbs(s1 - Integral) / 15 < EE

EndSub

Процедура нахождения точки минимума методом дихотомии, предварительно вызывается процедура нахождения параметра k

SubDihotomia(ByRef a AsSingle, ByRef b AsSingle, ByVal EE AsSingle, ByVal d AsSingle, ByRef x3 AsSingle, ByRef f1 AsSingle, ByRef Data AsDataGridView, ByVal k AsSingle)

Dim x1, x2 AsSingle

Dim n AsInteger

n = 1

x1 = (a + b - d) / 2

x2 = (a + b + d) / 2

Data.Rows.Add(n, a, b, x1, x2, b - a, f(k, x1), f(k, x2))

Do

Iff(k, x1) > f(k, x2) Then

a = x1

Else

b = x2

EndIf

x1 = (a + b - d) / 2

x2 = (a + b + d) / 2

n = n + 1

Data.Rows.Add(n, a, b, x1, x2, b - a, f(k, x1), f(k, x2))

LoopUntil (b - a) <= EE

x3 = (a + b) / 2

f1 = f(k, x3)

EndSub

EndModule

PublicClassForm1

PrivateSub Button2_Click(sender AsSystem.Object, e AsSystem.EventArgs) Handles Button2.Click

Dim EE AsSingle

Dim a, b, c, d, delta AsSingle

Dim Integral AsSingle

Dim n AsInteger

Dimx(), y() AsSingle

Dimxmin, fxminAsSingle

n = DataGridView2.Rows.Count - 1

'точностьвычислений

EE = Val(TextBox9.Text)

a = Val(TextBox1.Text)

b = Val(TextBox6.Text)

c = Val(TextBox7.Text)

d = Val(TextBox8.Text)

'параметр метода дихотомии выбираем равный точность попалам, чтобы добится необходимой длины отрезка неопределнности, b-a<2dlta<EE, следовательноdelta=EE/2

delta = EE / 2

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

If n <= 1 Then

MsgBox("Вы не доконца заполнили таблицу")

Exit Sub

EndIf

ReDimx(0 To n - 1), y(0 To n - 1)

'считываем данные из таблицы в два массива x()-массив значений икс, y()-массив значений игрик

Fori = 0 To n - 1

x(i) = CDbl(Val(DataGridView2.Item(0, i).Value))

y(i) = CDbl(Val(DataGridView2.Item(1, i).Value))

Next

'подсчитывая интеграл, находим значение нашего параметра k=Integral

Simpson(a, b, Integral, EE, x, y)

TextBox2.Text = Integral

'защита от зависания, если вдруг параметр k=integral меньше или равен нулю, то минимума у функции не будет, следовательно далее выполнение программы не целесообразно

IfIntegral<= 0 Then

MsgBox("Данная функция не иммет минимума")

EndIf

'передаем найденыйпарметр k=Integral и методом дихотомии находим минимум функции

Dihotomia(c, d, EE, delta, xmin, fxmin, DataGridView1, Integral)

'агрумент при котором функция минимальна

TextBox3.Text = Format(xmin, "0.00000")

'значение функции в точке минимума

TextBox4.Text = Format(fxmin, "0.00000")

EndSub

PrivateSub Button1_Click(sender AsSystem.Object, e AsSystem.EventArgs) Handles Button1.Click

End

EndSub

PrivateSub Form1_Load(sender AsSystem.Object, e AsSystem.EventArgs) HandlesMyBase.Load

Button2.Enabled = False

EndSub

PrivateSub Form1_Load1(sender AsSystem.Object, e AsSystem.EventArgs) HandlesMyBase.MouseMove

If TextBox1.Text <>""And TextBox6.Text <>""And TextBox7.Text <>""And TextBox8.Text <>""And TextBox9.Text <>""Then

Button2.Enabled = True

EndIf

EndSub

EndClass

7. Решение поставленной задачи

Решение всей задачи происходит на одной форме:

Проверка результатов с использованием математического пакета.

8. Основные результаты и выводы по работе

1) Разработана последовательность решения задачи, которая заключается в отыскании минимума функции при неизвестном параметре k,который вычисляется дополнительно.

2) Для решения задачи разработаны и оттестированы процедуры, реализующие выбранные методы (метод Лагранжа, формула Симпсона, метод дихотомии). Результаты тестирования показали работоспособность алгоритмов и программ. Указанные процедуры были использованы при разработке программы решения задачи, поставленной в курсовой работе.

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

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

5) Разработан удобный, интуитивно понятный интерфейс пользователя приложения. Так же все промежуточные вычисления программы выведены на экран.

6) Проведена проверка результатов работы программы с использованием пакета MathCad. Результаты проверки полностью совпадают с результатами, полученными при выполнении программы.

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

9. Список литературы и интернет ресурсов

функция минимум дихотомия

1) А.П. Головацкая Информатика. Вычислительная математика. МТУСИ 2006, - 260с.

2) Семенова Т.И., Шакин В.Н. Практикум. Математический пакет Mathcad в дисциплине «ИНФОРМАТИКА» - М.: МТУСИ, 2006, -121с.

3) веб-сайт: http://www.google.ru/

4) веб-сайт: http://www.yandex.ru/

Размещено на Allbest.ru


Подобные документы

  • Определение минимума функции на заданном отрезке методами перебора, поразрядного поиска, дихотомии, золотого сечения и методом парабол. Нахождение и расчет нулей функции методом Ньютона. Построение графика данной функции, ее минимальное значение.

    реферат [55,6 K], добавлен 09.04.2013

  • Создание программы для поиска минимума функции двух вещественных переменных в заданной области с помощью генетического алгоритма. Генетические алгоритмы и операторы. Создание начальной популяции. Размножение. Мутация и селекция. Тестирование программы.

    курсовая работа [131,6 K], добавлен 22.02.2015

  • Нахождение минимума целевой функции для системы ограничений, заданной многоугольником. Графическое решение задачи линейного программирования. Решение задачи линейного программирования с использованием таблицы и методом отыскания допустимого решения.

    курсовая работа [511,9 K], добавлен 20.07.2012

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

    отчет по практике [725,6 K], добавлен 01.10.2013

  • Постановка задачи и ее формализация. Поиск значений интерполяционного многочлена в точках x1 и x2. Поиск минимума функции F(x) на отрезке [a;b]. Проверка условий сходимости методов. Тестирование программных модулей. Детализированная схема алгоритма.

    курсовая работа [893,0 K], добавлен 04.02.2011

  • Преобразование формулы и решение ее с помощью Метода Эйлера. Моделирование метода оптимизации с функцией Розенброка. Поиск модели зашумленного сигнала. Нахождение минимума заданной целевой функции методом покоординатного спуска нулевого порядка.

    курсовая работа [1,2 M], добавлен 21.12.2013

  • Выбор наиболее эффективного метода поиска экстремума для функции. Оценка погрешности определения точки минимума. Проверка унимодальности уравнения аналитическим методом и по графику. Сравнение алгоритмов по количеству обращений к функции и по точности.

    контрольная работа [909,0 K], добавлен 14.08.2019

  • Решение нелинейного уравнения вида f(x)=0 с помощью программы Excel. Построение графика данной функции и ее табулирование. Расчет матрицы по исходным данным. Проведение кусочно-линейной интерполяции таблично заданной функции с помощью программы Mathcad.

    контрольная работа [1,8 M], добавлен 29.07.2013

  • Сравнение эффективности программ Excel и Mathcad при решении задач нахождения корней нелинейного уравнения и поиска экстремумов функции. Проведение табулирования функции на заданном интервале. Построение графика двухмерной поверхности в Excel и Mathcad.

    курсовая работа [1,4 M], добавлен 07.05.2013

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

    контрольная работа [316,1 K], добавлен 13.11.2014

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