99402

Аппроксимация полиномиальными функциями по методу наименьших квадратов

Курсовая

Информатика, кибернетика и программирование

Создать приложение для аппроксимации полиномиальными функциями по методу наименьших квадратов (реализации одномерная полиномиальная регрессия). При этом аппроксимирующая функция определяется в виде полиномиальной функции

Русский

2016-09-12

45.88 KB

4 чел.

Федеральное агентство связи

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

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

на тему:

«Аппроксимация полиномиальными функциями по методу наименьших квадратов»

Выполнил студент: Проверил преподаватель:

Рогов Сергей Алексеевич Саладаев Е.Н.

Специальность: 210700

Студ. билет: №7БИН2040

2014

Цель работы: Создать приложение для аппроксимации полиномиальными функциями по методу наименьших квадратов (реализации одномерная полиномиальная регрессия). При этом аппроксимирующая функция определяется в виде полиномиальной функции

,

 где  m – степень полинома FQ(X),

  - коэффициенты искомого полинома,

которая будет наиболее близкой к исходной функции заданной табличными значениями, т.е. необходимо определить вектор коэффициентов полинома , при котором полиномиальная функция FQ(X) будет наиболее близкой к заданным в таблице точкам.

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

,     (2)

где    - искомый вектор коэффициентов полинома.


Содержание

  1.  Получение данных от пользователя
  2.  Получение матрицы коэффициентов уравнения (матрица Грама)
  3.  Составление системы уравнений
  4.  Решение системы уравнений методом Гаусса
  5.  Вычисление значений аппроксимирующей функции при данных Х, сравнение со входными Y, вычисление точности функции.
  6.  Выходные данные


  1.  Получение данных от пользователя

Данные от пользователя вводятся в таблицу на первом листе проекта. Программа автоматически загружает данные из ячеек в память:

n = Лист1.Cells(2, 7)

ReDim Values(1, n - 1)

Dim i As Integer, j As Integer

For i = 0 To 1

   For j = 0 To n - 1

       Values(i, j) = Лист1.Cells(j + 3, i + 2).Value

   Next j

Next i

  1.  Получение матрицы коэффициентов (матрица Грама)

Для получения коэффициентов системы необходимо составить матрицу Грама:

Dim degree As Integer

degree = Лист1.Cells(3, 7).Value

ReDim x(degree * 2, n) As Double

ReDim y(degree, n) As Double

For i = 0 To n - 1

   For j = 0 To degree * 2

       x(j, i) = Values(0, i) ^ j

       x(j, n) = Math.Round(x(j, n) + x(j, i), 8)

   Next j

   For j = 0 To degree

       y(j, i) = Values(0, i) ^ j * Values(1, i)

       y(j, n) = y(j, n) + y(j, i)

   Next j

Next i

В переменной degree будет храниться степень полинома. Для удобства дальнейших действий с данными матрицу Грама разделим на два массива, в массив x(degree * 2, n) записываются данные, получаемые из возведения в степень входных значений X, а в массив y(degree,n) значения, получаемые от произведения X в степени j и Y.

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


  1.  Составление системы уравнений

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

ReDim linearSystem(degree, degree + 1) As Double

For i = 0 To degree

   For j = i To i + degree ' 2

       linearSystem(i, j - i) = x(j, n)

   Next j

   linearSystem(i, degree + 1) = y(i, n)

Next i

  1.  Решение системы уравнений методом Гаусса

Полученную систему необходимо решить. Корни системы будут являться коэффициентами в аппроксимирующей функции. Систему решаем по методу Гаусса:

Dim eqNum As Integer

Dim rate As Double

For eqNum = 0 To degree

   rate = linearSystem(eqNum, eqNum)

   

   For i = 0 To degree + 1

       linearSystem(eqNum, i) = linearSystem(eqNum, i) / rate

   Next i

   

   For i = eqNum + 1 To degree

       rate = linearSystem(i, eqNum)

       For j = 0 To degree + 1

           linearSystem(i, j) = linearSystem(i, j) - linearSystem(eqNum, j) * rate

       Next j

   Next i

Next eqNum

For eqNum = 0 To degree

   For i = 0 To degree

       If linearSystem(eqNum, i) <> 0 And linearSystem(eqNum, i) <> 1 Then

           rate = linearSystem(eqNum, i)

           For j = 0 To degree + 1

               linearSystem(eqNum, j) = linearSystem(eqNum, j) - linearSystem(i, j) * rate

           Next j

       End If

   Next i

Next eqNum

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

  1.  Цикл движется по уравнениям системы
  2.  Берётся значение на пересечении текущей строки и главной диагонали (если представить систему как матрицу)
  3.  Первый вложенный цикл проходит по всем коэффициентам текущего уравнения и делит их на значение из п.2
  4.  Второй вложенный цикл вычитает из всех последующих уравнений преобразованное текущее
  5.  После цикл движется по всем следующим уравнениям, проделывая то же самое. Получается треугольная матрица (все элементы ниже главной диагонали равны нулю)
  6.  Второй цикл преобразовывает матрицу в единичную

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


  1.  Вычисление значений аппроксимирующей функции при данных Х, сравнение со входными Y, вычисление точности функции.

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

Dim yVal As Double

Dim accSum As Double

For i = 0 To n - 1

   yVal = 0

   For j = 0 To degree

       yVal = yVal + solutions(j) * Values(0, i) ^ j

   Next j

   Лист1.Cells(3 + i, 4).Value = yVal

   Лист1.Cells(3 + i, 5).Value = (yVal - Values(1, i)) ^ 2

   accSum = Лист1.Cells(3 + i, 5).Value

Next i

Лист1.Cells(n + degree + 2, 4).Value = Лист1.Cells(2, 5).Value & degree & "="

Лист1.Cells(n + degree + 2, 5).Value = accSum


  1.  Выходные данные

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

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

  1.  Таблица коэффициентов

X0

X1

X2

X3

X4

X0Y

X1Y

X2Y

1

-1

1

-1

1

0,01

-0,01

0,01

1

-0,9

0,81

-0,729

0,6561

-0,09

0,081

-0,0729

1

-0,8

0,64

-0,512

0,4096

-0,16

0,128

-0,1024

1

-0,7

0,49

-0,343

0,2401

-0,21

0,147

-0,1029

1

-0,6

0,36

-0,216

0,1296

-0,24

0,144

-0,0864

1

-0,5

0,25

-0,125

0,0625

-0,25

0,125

-0,0625

1

-0,4

0,16

-0,064

0,0256

-0,24

0,096

-0,0384

1

-0,3

0,09

-0,027

0,0081

-0,21

0,063

-0,0189

1

-0,2

0,04

-0,008

0,0016

-0,15

0,03

-0,006

1

-0,1

0,01

-0,001

0,0001

-0,08

0,008

-0,0008

1

0

0

0

0

0,01

0

0

1

0,1

0,01

0,001

0,0001

0,12

0,012

0,0012

1

0,2

0,04

0,008

0,0016

0,25

0,05

0,01

1

0,3

0,09

0,027

0,0081

0,4

0,12

0,036

1

0,4

0,16

0,064

0,0256

0,57

0,228

0,0912

1

0,5

0,25

0,125

0,0625

0,76

0,38

0,19

1

0,6

0,36

0,216

0,1296

0,97

0,582

0,3492

1

0,7

0,49

0,343

0,2401

1,2

0,84

0,588

1

0,8

0,64

0,512

0,4096

1,45

1,16

0,928

1

0,9

0,81

0,729

0,6561

1,71

1,539

1,3851

1

1

1

1

1

2

2

2

21

0

7,7

0

5,0666

7,82

7,723

5,0975

  1.  Коэффициенты системы уравнений

21

0

7,7

7,82

0

7,7

0

7,723

7,7

0

5,0666

5,0975

  1.  Преобразованная система

1

0

0

0,007856

0

1

0

1,002987

0

0

1

0,99416

  1.  Корни системы

Корни

0,007856

1,002987

0,99416

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

 

x

y

σ

1

-1,00

0,01

-0,00097

0,000120367

2

-0,90

-0,09

-0,08956

1,91005E-07

3

-0,80

-0,16

-0,15827

2,98768E-06

4

-0,70

-0,21

-0,2071

8,42826E-06

5

-0,60

-0,24

-0,23604

1,56896E-05

6

-0,50

-0,25

-0,2451

2,40304E-05

7

-0,40

-0,24

-0,23427

3,27911E-05

8

-0,30

-0,21

-0,20357

4,13942E-05

9

-0,20

-0,15

-0,15298

8,85349E-06

10

-0,10

-0,08

-0,0825

6,25795E-06

11

0,00

0,01

0,007856

4,59884E-06

12

0,10

0,12

0,118096

3,62593E-06

13

0,20

0,25

0,248219

3,17081E-06

14

0,30

0,40

0,398226

3,14694E-06

15

0,40

0,57

0,568116

3,5496E-06

16

0,50

0,76

0,757889

4,45594E-06

17

0,60

0,97

0,967545

6,02494E-06

18

0,70

1,20

1,197085

8,49743E-06

19

0,80

1,45

1,446508

1,21961E-05

20

0,90

1,71

1,715814

3,37987E-05

21

1,00

2,00

2,005003

2,50282E-05

  1.  Суммы квадратичных функционалов

σ2=

2,50282E-05

σ3=

2,99193E-06

σ4=

1,15802E-07

σ5=

1,20453E-06

По данным из этих таблиц формируются два графика:

  1.  График сравнения входных Y и возвращаемых полученной функцией

  1.  График изменения точности аппроксимации в зависимости от степени полинома


Заключение

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


 

А также другие работы, которые могут Вас заинтересовать

64609. Фирменный стиль 34.83 KB
  Фирменный стиль важный инструмент рекламы. Единственный фирменный стиль предполагает совокупность художественных приемов создает единый характер в подаче рекламных материалов разработанных на базе оригинального графического дизайна.
64611. Планирование предприятия и составление плана деятельности ООО «Пиломатериалы» 62.19 KB
  Планирование на предприятии – внутрихозяйственная, целенаправленная деятельность, которая служит основой организации и управления и является нормативной базой выработки и принятия управленческих решений.
64612. Химическая термодинамика 93.21 KB
  Дайте определение теплоемкости удельной атомной молярной мольной Какая связь существует между мольными теплоемкостями при постоянном давлении и постоянном объеме Работа определяется двумя величинами: фактором интенсивности и фактором емкости экстенсивности.
64613. Понятие и виды сделок 60.7 KB
  Цель моей работы: является анализ правового регулирования условия действительности сделок, а также общественные отношения, возникающие в процессе заключения сделок и применения условий действительности сделок.
64614. ТРАНСАКЦИОННЫЕ ИЗДЕРЖКИ В СОВРЕМЕННОЙ ЭКОНОМИКЕ 62 KB
  Последние два века капиталистическая экономика развивалась в основном за счет интенсивного использования факторов производства. Главной задачей переходного периода для России является интенсивный экономический рост, при котором снижение издержек играет немаловажную роль.
64615. Формирование основ безопасности жизнедеятельности у детей старшего дошкольного возраста 96.8 KB
  Главная цель по воспитанию безопасного поведения у детей дать каждому ребенку основные понятия опасных для жизни ситуаций и особенностей поведения в них.
64616. Анализ показателей финансовой устойчивости закрытого акционерного общества «НК «Лукойл» 86.32 KB
  В рыночных условиях гарантом выживаемости и основой устойчивого положения предприятия является его финансовая устойчивость. С его помощью вырабатываются стратегия и тактика развития предприятия обосновываются планы и управленческие решения осуществляется контроль...
64617. Расчет широкополосного усилителя 724.71 KB
  Такие усилители применяются для усиления синусоидальных сигналов и для усиления импульсов. Основным требованием предъявляемым к ШУ является равномерность усиления сигнала в заданном частотном диапазоне.