Автор работы: Пользователь скрыл имя, 07 Декабря 2011 в 15:00, курсовая работа
Применение математических методов для разработки технологии принятия решений может исключить или уменьшить значение субъективных факторов. При этом математическая модель может быть выражена в форме сложных математических структур, для решения которых используются численные методы вычислительной математики, реализация которых на ЭВМ требует соответствующего программного обеспечения. В настоящее время для обработки табличных данных принимаются наиболее распространенные методы аппроксимации и интерполяции такие, как интерполяционный многочлен Лагранжа и метод наименьших квадратов.
Другим
R
=
Этот критерий менее
распространен в связи с
В обоих рассмотренных случаях в качестве значения функции yi можно брать не только абсолютные, но и относительные значения.
Выделяют две задачи:
Чаще
всего первая задача сводится ко второй
перебором различных
При выборе аппроксимации следует исходить из конкретной задачи исследования. Обычно, чем более простое уравнение используется для аппроксимации, тем более приблизительно получаемое описание зависимости. Поэтому очень важно считывать, насколько существенны и чем обусловлены отклонения конкретных значений от получаемого тренда. При описании зависимости эмпирически определенных значений можно добиться и гораздо большей точности, используя какое – либо более сложное, много параметрическое уравнение. Однако нет никакого смысла стремиться с максимальной точностью передать случайные отклонения величин в конкретных рядах эмпирических данных. Гораздо важнее уловить общую закономерность, которая в данном случае наиболее логично и с приемлемой точностью выражается именно двухпараметрическим уравнением степенной функции.
Наряду с выявлением закономерностей, замаскированных случайными отклонениями эмпирических данных от общей закономерности, аппроксимация позволяет также решать много других важных задач: формализовать найденную зависимость; найти неизвестные значения зависимой переменной путем интерполяции или, если это допустимо, экстраполяции.
Метод наименьших квадратов
Метод базируется на применении в качестве критерия близости суммы квадратов отклонений заданных и расчетных значений. При заданной структуре аппроксимирующей функции необходимо таким образом подобрать параметры этой функции, чтобы получить наименьшее значение критерия близости, т.е. наилучшую аппроксимацию. Рассмотрим путь нахождения этих параметров на примере полиномиальной функции одной переменной:
Запишем выражение критерия аппроксимации при =1 (i=1,2,…,n) для полиномиального :
Искомые переменные aj можно найти из необходимого условия минимума R по этим переменным, т.е. dR/dap =0 (для p=0,1,2,…k). Продифференцируем по ap (p – текущий индекс): dR/dap = 2 p=0,1,2,…,k, i=1,2,..,n. Значения индексов суммирования для простоты опущены.
После очевидных
преобразований(сокращение на два, раскрытие
скобок, изменение порядка суммирования)
получим
dR/dap
=
p=0,1,2,…к,
перепишем последние равенства p=0,1,2,…к, i=1,2…,n.
Получилась система n+1 уравнений с таким же количеством неизвестных аj , причем линейная относительно этих переменных. Эта система называется системой нормальных уравнений. Из ее решения находятся параметры аj аппроксимирующей функции, обеспечивающие minR, т.е. наилучшее возможное квадратичное приближение. Зная коэффициенты, можно (если нужно) вычислить величину R(например для сравнения различных аппроксимирующих функций). Следует помнить, что при изменении даже одного значения исходных данных(или пары значений) хi, yi, или одного из них) все коэффициенты изменяют в общем случае свои значения, так как они полностью определяются исходными данными. Поэтому при повторении аппроксимации с несколько изменившимися данными(например, вследствие погрешностей измерения, помех, влияния неучтенных факторов и т.п.) получится другая аппроксимирующая функция, отличающаяся коэффициентами. Обратим внимание на то, что коэффициенты аj полинома находятся из решения системы уравнений, т.е. они связаны между собой. Это приводит к тому, что если какой – то коэффициент вследствие его малости захочется отбросить, придется пересчитывать заново оставшиеся. Можно рассчитать количественные оценки тесноты связи коэффициентов. Существует специальная теория планирования экспериментов, которая позволяет обосновать и рассчитать значения хj, используемые для аппроксимации, чтобы получить заданные свойства коэффициентов (несвязанность, минимальная дисперсия коэффициентов и т.д.) или аппроксимирующей функции(равная точность описания реальной зависимости в различных направлениях, минимальная дисперсия предсказания значения функции и т.д.).
В случае постановки другой задачи – найти аппроксимирующую функцию, обеспечивающую погрешность не хуже заданной, - необходимо подбирать и структуру этой функции. Эта задача значительно сложнее предыдущей(найти параметры аппроксимирующей функции заданной структуры, обеспечивающей наилучшую возможную погрешность) и решается в основном путем перебора различных функций и сравнения получающихся мер близости. С повышением точности аппроксимации растет и сложность функции(при полиномиальных аппроксимирующих функциях), что делает её менее удобной при использовании.
Sub Макрос1()
'
' Макрос1 Макрос
'
'
Dim i As Integer
Dim x(1 To 10) As Double
Dim y(1 To 10) As Double
Dim a, b, a1, b1, a2, b2 As Double
Dim Sx, Sx2, Sy, Sxy As Double
Range("A1").Select
ActiveCell.FormulaR1C1 = "Объем, т.шт."
Range("B1").Select
ActiveCell.FormulaR1C1 = "0.5"
Range("C1").Select
ActiveCell.FormulaR1C1 = "1"
Range("D1").Select
ActiveCell.FormulaR1C1 = "1.5"
Range("E1").Select
ActiveCell.FormulaR1C1 = "2"
Range("F1").Select
ActiveCell.FormulaR1C1 = "2.5"
Range("G1").Select
ActiveCell.FormulaR1C1 = "3"
Range("H1").Select
ActiveCell.FormulaR1C1 = "3.5"
Range("I1").Select
ActiveCell.FormulaR1C1 = "4"
Range("J1").Select
ActiveCell.FormulaR1C1 = "4.5"
Range("K1").Select
ActiveCell.FormulaR1C1 = "5"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Переменные издержки, т.р."
Range("B2").Select
ActiveCell.FormulaR1C1 = "32"
Range("C2").Select
ActiveCell.FormulaR1C1 = "57"
Range("D2").Select
ActiveCell.FormulaR1C1 = "82"
Range("E2").Select
ActiveCell.FormulaR1C1 = "114"
Range("F2").Select
ActiveCell.FormulaR1C1 = "123"
Range("G2").Select
ActiveCell.FormulaR1C1 = "163"
Range("H2").Select
ActiveCell.FormulaR1C1 = "200"
Range("I2").Select
ActiveCell.FormulaR1C1 = "243"
Range("J2").Select
ActiveCell.FormulaR1C1 = "278"
Range("K2").Select
ActiveCell.FormulaR1C1 = "372"
Range("A3").Select
ActiveCell.FormulaR1C1 = "Постоянные издержки, т.р."
Range("B3").Select
ActiveCell.FormulaR1C1 = "1001"
Range("C3").Select
ActiveCell.FormulaR1C1 = "1011"
Range("D3").Select
ActiveCell.FormulaR1C1 = "1024"
Range("E3").Select
ActiveCell.FormulaR1C1 = "1034"
Range("F3").Select
ActiveCell.FormulaR1C1 = "1043"
Range("G3").Select
ActiveCell.FormulaR1C1 = "1037"
Range("H3").Select
ActiveCell.FormulaR1C1 = "1008"
Range("I3").Select
ActiveCell.FormulaR1C1 = "1066"
Range("J3").Select
ActiveCell.FormulaR1C1 = "1040"
Range("K3").Select
ActiveCell.FormulaR1C1 = "1017"
Range("A4").Select
ActiveCell.FormulaR1C1 = "Прибыль,убыток, т.р."
Range("B4").Select
ActiveCell.FormulaR1C1 = "5"
Range("C4").Select
ActiveCell.FormulaR1C1 = "35"
Range("D4").Select
ActiveCell.FormulaR1C1 = "108"
Range("E4").Select
ActiveCell.FormulaR1C1 = "240"
Range("F4").Select
ActiveCell.FormulaR1C1 = "455"
Range("G4").Select
ActiveCell.FormulaR1C1 = "755"
Range("H4").Select
ActiveCell.FormulaR1C1 = "1158"
Range("I4").Select
ActiveCell.FormulaR1C1 = "1739"
Range("J4").Select
ActiveCell.FormulaR1C1 = "2376"
Range("K4").Select
ActiveCell.FormulaR1C1 = "3154"
Range("A5").Select
ActiveCell.FormulaR1C1 = "Суммарные издержки т.р."
Range("B5").Select
ActiveCell.FormulaR1C1 = "1033"
Range("C5").Select
ActiveCell.FormulaR1C1 = "1068"
Range("D5").Select
ActiveCell.FormulaR1C1 = "1106"
Range("E5").Select
ActiveCell.FormulaR1C1 = "1148"
Range("F5").Select
ActiveCell.FormulaR1C1 = "1166"
Range("G5").Select
ActiveCell.FormulaR1C1 = "1200"
Range("H5").Select
ActiveCell.FormulaR1C1 = "1208"
Range("I5").Select
ActiveCell.FormulaR1C1 = "1309"
Range("J5").Select
ActiveCell.FormulaR1C1 = "1318"
Range("K5").Select
ActiveCell.FormulaR1C1 = "1389"
Range("L4").Select
For i = 1 To 10
x(i) = Cells(1, i + 1).Value
y(i) = Cells(5, i + 1).Value
Next i
Range("A6").Select
ActiveCell.FormulaR1C1 = "Линейная функция по издержкам"
Sx = 0
Sy = 0
Sxy = 0
Sx2 = 0
For i = 1 To 10
Sx = Sx + x(i)
Sy = Sy + y(i)
Sxy = Sxy + x(i) * y(i)
Sx2 = Sx2 + (x(i)) ^ 2
Next i
a1 = (10 * Sxy - Sx * Sy) / (10 * Sx2 - (Sx) ^ 2)
b1 = (Sy - a1 * Sx) / 10
Range("A7").Select
ActiveCell.FormulaR1C1 = "a="
Range("B7").Select
ActiveCell.FormulaR1C1 = a1
Range("C7").Select
ActiveCell.FormulaR1C1 = "b="
Range("D7").Select
ActiveCell.FormulaR1C1 = b1
For i = 1 To 10
Cells(8, i + 1).Value = a1 * x(i) + b1
Skv = Skv + (y(i) - a1 * x(i) + b1)
Next i
Skv = Sqr(Skv)
Range("A9").Select
ActiveCell.FormulaR1C1 = "Среднеквадратическое значение"
Range("E9").Select
ActiveCell.FormulaR1C1 = Skv
For i = 1 To 10
x(i) = Cells(1, i + 1).Value
y(i) = Cells(4, i + 1).Value
Информация о работе Компьютерное моделирование типовых вычислительных алгоритмов