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

Определение зависимости между экспериментальными данными при помощи аппроксимации, особенности решения поставленной задачи различными способами, проведение расчетов с помощью табличного процессора Microsoft Excel и среды программирования Turbo Pascal 7.0.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.02.2012
Размер файла 765,0 K

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

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

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

2

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

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

Оглавление

аппроксимация табличный процессор программирование

  • 1.Задание
  • 2.Введение
  • 3. Расчётные формулы
  • 4.Таблицы, выполненные средствами Microsoft Excel, с пояснениями
  • 5. Представление результатов в виде графиков
  • 6. Получения числовых характеристик с использованием функции ЛИНЕЙН И ЛГРФПРИБЛ
  • 7. Вычисление прогнозного значения
  • 8. Расчёт аппроксимаций по программе в среде TURBO PASCAL 7.0
  • 9. Вывод
  • 10. Список литературы
  • 11.Приложения
  • 1.Задание

1. Используя метод наименьших квадратов результаты эксперимента, представленные в виде таблицы, аппроксимировать:

А) многочленом первой степени

Б) многочленом второй степени

В) экспоненциальной зависимостью

2. Для каждой зависимости вычислить коэффициент детерминированности и остаточную дисперсию на одну степень свободы.

3. Вычислить коэффициент корреляции (только в случае а).

4. Для каждой зависимости построить линию тренда.

5. Используя функцию ЛИНЕЙН вычислить числовые характеристики зависимости у от х.

6. Сравнить свои вычисления с результатами, полученными при помощи функции ЛИНЕЙН.

7. Для каждой зависимости провести оценку значимости уравнения регрессии, по критерию Фишера при уровне значимости a1.

8. Для каждой зависимости провести оценку параметров, входящих в уравнение регрессии, по критерию Стьюдента при уровне значимости a2.

9. Написать программу на языке Turbo Pascal.

10. Сравнить результаты работы программы с вычислениями вручную.

11. Сделать вывод, какая из полученных формул наилучшим образом аппроксимирует результаты эксперимента.

дисперсия корреляция программа

Исходные данные (таблица 1)

При проведении испытаний установлена зависимость массы фракций 0-250 мкм на погонный метр удлинённого заряда гранулита АС-8 от относительного расстояния.

Результаты испытаний представлены в таблице 1

Таблица 1

Yi

Xi

2,0

1,2

3,5

1,4

5,0

1,6

5,6

1,8

6,2

2

7,8

3

9,0

4

9,1

5

9,2

6

9,4

7

9,45

8

9,5

9

9,5

10

2.Введение

аппроксимация табличный процессор программирование

Цель данной курсовой работы -- с помощью аппроксимации установить зависимость между экспериментальными данными, решить поставленную задачу различными способами, провести расчеты с помощью табличного процессора Microsoft Excel и среды программирования Turbo Pascal 7.0.

Аппроксимация (от латинского "approximate"-"приближаться") - приближенное описание эмпирических данных с помощью уравнений, необходима для проведения интер- и экстраполяции. Задача - найти такую функцию, выраженную аналитической формулой, чтобы она наилучшим образом описывала эмпирические данные. Наиболее часто используется метод наименьших квадратов, который позволяет найти функцию с такими параметрами, что сумма квадратов отклонений найденной функции от заданных значений функции будет минимальной.

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

При выполнении любой научно-исследовательской работы возникает проблема выявления подлинного характера зависимости изучаемых показателей. Для этого и применяется аппроксимация Ї приближенное описание корреляционной зависимости переменных подходящим уравнением функциональной зависимости, передающим основную тенденцию зависимости (или ее "тренд").

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

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

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

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

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

В данной работе использована среда языка программирования Turbo Pascal 7.0 для основной массы расчетов, то есть для нахождения распределения температуры в пластине, электронные таблицы Microsoft Excel 2003 из пакета Microsoft Office для создания контрольного варианта и построения графиков; текстовой редактор Microsoft Word 2003 для оформления отчета о проделанной работе.

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

3. Расчётные формулы

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

Эмпирическая формула:

(1)

Где - неизвестные параметры, значения которой в точка мало отличались бы от опытных значений

(2)

(3)

Нахождения коэффициента сводиться к решению системы (3).

В случаи линейной формулы зависимости система (3) примет вид:

(4)

В случаи квадратичной зависимости система (3) примет вид :

(5)

Экспоненциальная зависимость :

(6)

Где и - неопределённые коэффициенты.

Линеаризация достигается путём логарифмирования равенства (6), после чего получим соотношение.

(7)

Коэффициент корреляции вычисляется по формуле:

(8)

Где , , и - среднее арифметическое значения соответственно по x и y.

Коэффициент детерминированности ( детерминации) определяться по формуле:

(9)

(10)

(11)

; (12)

, (13)

Где m- число параметров при переменных x.

Для линейной и экспоненциальной аппроксимации m=1, для квадратичной аппроксимации m=2.

Критерий Фишера определяться соотношение:

(14)

(15)

Для линейной и экспоненциальной функции формула имеет вид:

. (16)

Для параболы формула F- критерия будет :

(17)

Стандартная ошибка коэффициента регрессии определяется по формуле :

. (18)

Стандартная ошибка параметра :

. (19)

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

(20)

(21)

. (22)

4.Таблицы, выполненные средствами Microsoft Excel, с пояснениями.

Рис.2 вычисления вспомогательных сумм и средних значений.

Рис. 3. Вычисления вспомогательных сумм (продолжения).

Пояснение к расчётам:

Шаг 1. В ячейки А3:А13 заносим значения

Шаг 2. В ячейки В3:В13 заносим значения .

Шаг 3. В ячейку С3 вводим формулу =B3^2

Шаг 4. В ячейки C4:C13 эта формула копируется.

Шаг 5. В ячейку D3 вводим формулу =B3*A3.

Шаг 6. В ячейки D4:D13 эта формула копируется.

Шаг 7. В ячейку Е3 вводим формулу =B3^3.

Шаг 8. В ячейки Е3:Е13 эта формула копируется.

Шаг 9. В ячейку F3 вводим формулу =B3^4.

Шаг 10. В ячейки F4:F13 эта формула копируется.

Шаг 11. В ячейку G3 вводим формулу =В3^2*A3.

Шаг 12. В ячейки G4:G13 эта формула копируется.

Шаг 13. В ячейку H3 вводим формулу =LN (A3).

Шаг 14. В ячейки H4:H13 эта формула копируется.

Шаг 15. В ячейку I3 вводим формулу =B3*LN(A3).

Шаг 16. В ячейки I4:I13 эта формула копируется.

Шаг 17. В ячейки А3:А13 заносим значения

Шаг 18. В ячейки В3:В13 заносим значения .

Шаг 19. В ячейку J3 вводим формулу =(B3-$B$15)*A3-$A$15.

Шаг 20. В ячейки J4:J13 эта формула копируется.

Шаг 21. В ячейку K3 вводим формулу =(B3-$B$15)^2.

Шаг 22. В ячейки К4:К13 эта формулу копируется.

Шаг 23. В ячейку L3 вводим формулу =(A3-$A$15)^2.

Шаг 24. В ячейки L4:L13 эта формула копируется.

Шаг 25. В ячейку M3 вводим формулу =(A3-($E$21+$E$22*B3))^2.

Шаг 26. В ячейки М4:М13 эта формула копируется.

Шаг 27. В ячейку N3 вводим формулу =(A3-($F$35+$F$36*B3+$F$37*B3^2))^2

Шаг 28. В ячейки N4:N13 эта формула копируется.

Шаг 29. В ячейку О3 вводим формулу =(LN(A3)-$H$18)^2.

Шаг 30. В ячейки О4:О13 эта формула копируется.

Шаг 31. В ячейку P3 вводим формулу =(H3-(LN($E$51*EXP($E$50*B3))))^2.

Шаг 32. В ячейки P4:P13 эта формула копируется.

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

Шаг 33. В ячейку А14вводим формулу =СУММ(А3:А13).

Шаг 34. В ячейку В14 вводим формулу =СУММ(В3:В13).

Шаг 35. В ячейку С14 вводим формулу =СУММ(С3:С13).

Шаг 36. В ячейку D 14 вводим формулу =СУММ(D3:D13).

Шаг 37. В ячейку Е14 вводим формулу =СУММ(Е3:Е13).

Шаг 38. В ячейку F14 вводим формулу =СУММ(F3:F13).

Шаг 39 В ячейку G14 вводим формулу =СУММ(G3:G13).

Шаг 40. В ячейку H14 вводим формулу =СУММ(H3:H13).

Шаг 41. В ячейку I14 вводим формулу =СУММ(I3:I13).

Шаг 42. В ячейку J14 вводим формулу =СУММ(J3:J13).

Шаг 43. В ячейку К14 вводим формулу =СУММ(К3:К13).

Шаг 44. В ячейку L14 вводим формулу =СУММ(L3:L13).

Шаг 45. В ячейку М14 вводим формулу =СУММ(М3:М13).

Шаг 46. В ячейку N14 вводим формулу =СУММ(N3:N13).

Шаг 47. В ячейку О14 вводим формулу =СУММ(О3:О13).

Шаг 48. В ячейку Р14 вводим формулу =СУММ(Р3:Р13).

Далее вычисляем среднее значение:

Шаг 49.В ячейку В15 вводим формулу =СЧЁТ(A3:A13).

Шаг 50. В ячейку А16 вводим формулу =A14/$B$15.

Шаг 51. В ячейку В16 вводим формулу =B14/$B$15.

Шаг 52. В ячейку H15 вводим формулу =H14/$B$15.

На рис. 4 представлены расчёты для линейной аппроксимации.

13

60

95,65

Линейная

60

393,2

520,58

аппроксимация

0,8210

Обратная матрица

0,6741

0,2601

-0,0397

a1=

4,2172

-0,0397

0,0086

a2=

0,6804

Fтабл=

4,84

Fлин>Fтабл

Fлин=

22,75472

Уравнение значимо

Dост=

2,365868

tтабл=

3,1058

Sa1=

0,784483

ta1=

5,3758

ta1>tтабл

значим

Sa2=

0,142642

ta2=

4,7702

ta2>tтабл

значим

Рис. 4. Фрагмент рабочего листа MS Excel для линейной аппроксимации.

Шаг 53. В ячейку А19 вводим формулу =$B$15.

Шаг 54. В ячейку В19 вводим формулу =В14.

Шаг 55. В ячейку А20 вводим формулу =В14.

Шаг 56. В ячейку В20 вводим формулу =С14.

Шаг 57. В ячейку С19 вводим формулу =А14.

Шаг 58. В ячейку С20 вводим формулу =D14.

Шаг 59. Выделяем ячейку А23:В25 и вводим формулу {=МОБР(А19:В20)}.

Шаг 60. Выделяем ячейку Е23:Е24 и вводим формулу

{=МУМНОЖ(А23:В24;С19:С20)}

Шаг 61. В ячейку Е21 вводим формулу =J14/(K14*L14)^(1/2).

Шаг 62. В ячейку Е22 вводим формулу =1-M14/L14.

Шаг 63. В ячейку В26 вводим число 4,84 (Определено по , и

в табл. П1 из приложения 1).

Шаг 64. В ячейку В27 вводим формулу =E22*(B15-2)/(1-E22).

Шаг 65. В ячейку В28 вводим формулу =M14/(B15-2).

Шаг 66. В ячейку В29 вводим формулу =((B28*C14)/(B15*K14))^(1/2).

Шаг 67. В ячейку В30 вводим формулу =(B28/K14)^(1/2).

Шаг 68. В ячейку С27 вводим формулу =ЕСЛИ(В27<В26; “Уравнение значимо”;

“Уравнение не значимо”).

Шаг 69. В ячейку D28 вводим число 3,1058 (Определено по и

В табл. П2 из приложения 2).

Шаг 70. В ячейку D29 вводим формулу =ABS(E23)/B29.

Шаг 71. В ячейку D30 вводим формулу =ABS(E24)/B30.

Шаг 72. В ячейку F29 вводим формулу =ЕСЛИ (D29>$D$28;”значим”;”не значим”).

Шаг 73. В ячейку F30 вводим формулу =ЕСЛИ(D30>$D$28;”значим”;”не значим”).

Таким образом уравнение линейной регрессии имеет вид:

(23)

При этом согласно критерию Фишера - Снедекора, уравнение линейной регрессии (23) значимо и коэффициент этого уравнения согласно критерия Стьюдента тоже значимы.

На рис. 5 представлены расчёты для квадратичной аппроксимации.

13

60

393,2

95,65

Квадратичная

60

393,2

3038,4

520,58

аппроксимация

393,2

3038,4

25354,9664

3624,884

0,8913

Обратная матрица

0,8337

-0,3691

0,0313

a1=

1,0635

-0,3691

0,1978

-0,0180

a2=

2,4917

0,0313

-0,0180

0,001708

a3=

-0,1721

Fтабл=

4,96

Fквадр>Fтабл

Fквадр=

40,99

Dост=

0,8682

tтабл=

3,1693

Sa1=

0,850779

ta1=

1,2499787

a1>tтабл

не значим

Sa2=

0,414388

ta2=

6,012953

a2>tтабл

значим

Sa3=

0,038512

ta3=

4,4691868

a3>tтабл

значим

Рис. 5. Фрагмент рабочего листа MS Excel для квадратичной аппроксимации

Шаг 74. В ячейку А32 вводим формулу =$B$15.

Шаг 75. В ячейку А33 вводим формулу =В14.

Шаг 76. В ячейку А34 вводим формулу =С14.

Шаг 79. В ячейку В32 вводим формулу =В14.

Шаг 80. В ячейку В33 вводим формулу =С14.

Шаг 81. В ячейку В34 вводим формулу =Е14.

Шаг 82. В ячейку С32 вводим формулу =С14.

Шаг 83. В ячейку С33 вводим формулу =Е14.

Шаг 84. В ячейку С34 вводим формулу =F14.

Шаг 85. В ячейку D32 вводим формулу =А14.

Шаг 86. В ячейку D33 вводим формулу =D14.

Шаг 87. В ячейку D34 вводим формулу =G14.

Шаг 88. Выделяем ячейки A37:С39 и вводим формулу {=МОБР(A32:C34)}.

Шаг 89. Выделяем ячейки F37:F39 и вводим формулу

{=МУМНОЖ(A37:C39;D32:D34}.

Шаг 90. В ячейку F35 вводим формулу =1-N14/L14.

Шаг 91. В ячейку В39 вводим число 4,96 ( Определено , и

в табл. П1 из приложения 1).

Шаг 92. В ячейку В42 вводим формулу =F35*(B15-3)/(2*1-F35).

Шаг 93. В ячейку В43 вводим формулу =N14(B15-3).

Шаг 94. В ячейку В44 вводим формулу =((N14($B$15-3))*A37)^(1/2).

Шаг 95. В ячейку В45 вводим формулу =((N14($B$15-3))*В38)^(1/2).

Шаг 96. В ячейку В46 вводим формулу =((N14($B$15-3))*С39)^(1/2).

Шаг 97. В ячейку С42 вводим формулу =ЕСЛИ(В42<В41;”значим”;”не значим”).

Шаг 98. В ячейку D43 вводим число 3,1693 (Определено по и

В табл. П2 из приложения 2).

Шаг 99. В ячейку D44 вводим формулу =ABS(F37)/B44.

Шаг 100. В ячейку D45 вводим формулу =ABS(F38)/B45.

Шаг 101. В ячейку D46 вводим формулу =ABS(F39)/B46.

Шаг 102. В ячейку F44 вводим формулу

=ЕСЛИ(D45>$D$43;”значим”;”не значим”).

Шаг 103. В ячейку F45 вводим формулу

=ЕСЛИ(D45>$D$43;”значим”;”не значим”).

Шаг 104. В ячейку F46 вводим формулу

=ЕСЛИ(D46<$D$43;”значим”;”не значим”).

Таким образом, уравнение квадратичной регрессии имеет вид:

(24)

Согласно критерию Фишера - Снедекора, уравнение квадратичной регрессии (24) значимо. Два коэффициента этого уравнения и согласно критерия Стьюдента значимы, а третий коэффициент - не значимы.

На рис. 6 представлены расчёты для экспоненциальной аппроксимации.

13

60

24,83

Экспоненциальная

60

393,2

127,77

аппрокимация

0,6125

Обратная матрица

c=

1,38805

0,2601

-0,03969

a2=

0,1131

-0,0397

0,00860

a1=

4,0070

Fтабл=

4,84

Fэксп>Fтабл

Fэксп=

17,38754

Уравнение значимо

Dост=

0,11756

tтабл=

3,1058

Sa1=

0,031797

ta2=

3,5583477

ta2>tтабл

значим

Sa2=

0,174871

ta1=

22,914214

ta1>tтабл

значим

Рис. 6. Фрагмент листа MS Excel для экспоненциальной аппроксимации.

Шаг 105. В ячейку А48 вводим формулу =$B$15.

Шаг 106. В ячейку В48 водим формулу =В14.

Шаг 107. В ячейку А49 вводим формулу =В14.

Шаг 108. В ячейку В49 вводим формулу =С14.

Шаг 109 В ячейку С48 вводим формулу =Н14.

Шаг 110. В ячейку С49 вводим формулу =I14.

Шаг 111. Выделяем ячейку А52:В53 и вводим формулу

{=МОБР(А48:В49)}.

Шаг 112. Выделяем ячейку Е51:Е52 и вводим формулу

{=МУМНОЖ(А52:В53;С48:С49)}.

Шаг 113. В ячейку Е53 вводим формулу =EXP(Е51).

Шаг 114. В ячейку Е50 вводим формулу =1-P14/O14.

Шаг 115. В ячейку В55 вводим формулу =В26.

Шаг 116. В ячейку В56 вводим формулу =E50*(B15-2)/(1-E50).

Шаг 117. В ячейку В57 вводим формулу =Р14/(В15-2)).

Шаг 118. В ячейку В58 вводим формулу =(P14/(($B$15-2)*K14))^(1/2)

Шаг 119. В ячейку В59 вводим формулу

=((P14*C14)/(($B$15-2)*$B$15*K14))^(1/2).

Шаг 120. В ячейку С56 вводим формулу =ЕСЛИ(В56<В56;”значим”;”не значим”).

Шаг 121. В ячейку D57 вводим формулу =D28.

Шаг 122. В ячейку D58 вводим формулу =ABS(E52)/B58.

Шаг 123. В ячейку D59 вводим формулу =ABS(E53)/B59.

Шаг 124. В ячейку F58 вводим формулу

=ЕСЛИ(D58<$D$57;”значим”;”не значим”).

Шаг 125. В ячейку F59 вводим формулу

=ЕСЛИ(D59<$D$57;”значим”;”не значим”).

Таким образом, уравнение экспоненциальной регрессии имеет вид:

(25)

Согласно критерию Фишера-Снедекора, уравнение экспоненциальной регрессии (25) значимо. Оба коэффициента этого уравнения, согласно критерию Стьюдента, значимы.

5. Представление результатов в виде графиков

Построение линии тренда

Методика проведения данных работ подробно изложена в работе [2]. Результаты представлены на рис. 7-9.

Рис. 7. Исходные точки и линия тренда для линейной аппроксимации.

Рис. 8. Исходные точки и линия тренда для квадратичной аппроксимации.

Рис. 9. Исходные точки и линия тренда для экспоненциальной аппроксимации.

Сравнивая данные результаты с результатами, полученными вручную ранее с использованием основных расчётных формул, видим, что они полностью совпадают. Это указывает на то, что вычисления верны.

6. Получения числовых характеристик с использованием функции ЛИНЕЙН И ЛГРФПРИБЛ

Методика этих функции подробно изложена в работе [2]. Результаты расчётов представлены на рис. 10-12.

ЛИНЕЙН

0,6804

4,2172

0,1426

0,7845

0,6741

1,5381

22,7547

11

53,8347

26,0246

Рис. 10. Фрагмент рабочего листа MS Excel использования функции ЛИНЕЙН для линейной аппроксимации

Здесь в интервале ячеек G20:Н24 введена формула

=ЛИНЕЙН(А3:А13;В3:В13;;ИСТИНА).

В ячейках G29 и Н20 расположены соответственно значения коэффициентов

и

В ячейках G21:Н21 расположены соответственно значения стандартных ошибок

коэффициентов и

В ячейку G22 - значения коэффициентов детерминированности.

В ячейку G23 - значения F-критерия.

В ячейку G24- значения

В ячейку Н25- значения

ЛИНЕЙН

-0,172117

2,491693

1,063455

0,038512

0,414388

0,850779

0,891278

0,931798

#Н/Д

40,9887108

10

#Н/Д

71,17674877

8,682482

#Н/Д

Рис. 11. Фрагмент рабочего листа MS Excel использования функции ЛИНЕЙН

Для квадратичной аппроксимации

Здесь в интервале ячеек G33:I37 введена формула

=ЛИНЕЙН(A3:A13;B3:C13;;ИСТИНА).

В ячейках G33, H33 и I33 расположены соответственно значения коэффициентов

и

В ячейках G34, H34 и I34 расположены соответственно значения стандартных ошибок

коэффициента и

В ячейку G35-значение коэффициента детерминированности.

В ячейке G36 - значение F- критерия.

В ячейке G37- значение

В ячейку Н37- значение

ЛГРФПРИБЛ

1,119793

4,00703681

0,031797

0,17487123

0,535116

0,34287045

12,661838

11

1,488528

1,29316162

Рис. 12. Фрагмент рабочего стола MS Excel использование функции ЛГРФПРИБЛ

для экспоненциальной аппроксимации

Здесь в интервал ячеек G49:H53 введена формула

=ЛГРФПРИБЛ(A3:A13;B3:B13;;ИСТИНА).

В ячейке Н49 расположено значения коэффициента

В ячейках G50 и Н50 расположена соответственно значения стандартных ошибок коэффициентов и

В ячейке G51 - значение коэффициента детерминированности.

В ячейке G52 - значение F- критерия.

В ячейке G53- значение

В ячейку Н53- значение

Сравнивая результаты, полученные с помощью функции ЛИНЕЙН и ЛГРФПРИБЛ, с результатами полученными вручную с использованием основных расчётов формул, можно видеть , что они полностью совпадают. Это указывает на то, что вычисления верны.

Вывод: Лучше всего результаты испытаний, аппроксимирует квадратичная функция т.к коэффициент детерминировнности квадратичной аппроксимации выше . У экспоненциальной аппроксимации коэффициента детерминированности также значим, но меньше. Полученное соотношение является простым и пригодным для анализа и прогноза, Значения числовых характеристик вычислялись разными способами и все результаты совпали, что свидетельствует об их правильности.

7. Вычисление прогнозного значения

Прогноз значения зависимость массы фракции 0-250 мкм на погонный метр удлинённого заряда гранулита АС-8 от относительного расстояния с помощью функции наиболее хорошо аппроксимирующей табличные данные, т.е. по формуле (23). Результаты вычислений прогнозного значения представлены на рис. 13.

ПРОГНОЗНОЕ ЗНАЧЕНИЕ

Xmax=

10

Xmin=

1,2

R=

8,8

x=

5,49538462

y=

7,95647188

Рис. 13. Фрагмент рабочего стола MS Excel вычисления прогнозного значения

Здесь в ячейку Н26 введена формула =МАКС(B3:B13).

В ячейку Н27 введена формула =МИН(B3:B13).

В ячейку Н28 введена формула =H26-H27.

В ячейку Н29 введена формула =B16+0,1*H28.

В ячейку Н30 введена формула =E23+E24*H29.

8. Расчёт аппроксимаций по программе в среде TURBO PASCAL 7.0

Program Kurs_MNK;

Uses Crt,Graph;

Const

Nmax=100;

Type

Vector=array[1..Nmax] of real;

ari=array[1..100] of longint;

Var

f,g:text;

filevvod:string;

x1,y1:ari;

x,y,lny,STL,SsrL,STsqr,Ssrsqr:Vector;

Ftab,Stab:vector;

YL,Ysqr,Yexp,lnYexp:Vector;

i,N,N1:integer;

Sx,Sy,Sxy,Sx2,Sx3,Sx4,Sx2y,Sx2sr,Sy2sr,Sxysr,Slny,Sxlny:real;

a1L,a2L,koef_cor:real;

Md:real;

Sa1L,Sa2L:real;

Xsr,Ysr,lnYsr:real;

SostL,SregrL,SpolnL,R_det_L:real;

FLine,SLine,ta1L,ta2L:real;

a1sqr,a2sqr,a3sqr:real;

Sa1sqr,Sa2sqr,Sa3sqr:real;

Sostsqr,Sregrsqr,Spolnsqr,R_det_sqr,DSost:real;

Fsqr,Ssqr,ta1sqr,ta2sqr,ta3sqr:real;

cexp,a1exp,a2exp:real;

Sa1exp,Sa2exp:real;

Sostexp,Sregrexp,Spolnexp,R_det_exp:real;

Fexp,ta1exp,ta2exp:real;

gr:integer;

Min,Max,Xpr,Ypr:real;

{Процедура ввода данных из файла}

Procedure Inp_vect(name:String; Var a,b:Vector; Var N:integer);

Var

k:integer;

f:text;

Begin

N:=0;

k:=1;

Assign(f,name); {Иннициализируем файловую переменную}

{$I-} {Проверяем существование файла}

reset(f);

{$I+}

if IOResult=0 then {Если файл с заданным именем существует}

begin

reset(f);

while not SeekEoLN(f) do

begin

while not SeekEoln(f) do

begin

ReadLn(f,a[k],b[k]);

N:=N+1;

k:=k+1;

end;

end;

close(f);

end

else WriteLn('файл с именем ',name,'не найден')

END;

{Процедура решения системы двух линейных уравнений методом Крамера}

Procedure L_Kram(Var a11:integer;Var a12,a21,a22,b1,b2:real;Var a1,a2:real);

Var

D,D1,D2:Real;

begin

D:=a11*a22-a21*a12;

D1:=b1*a22-b2*a12;

D2:=a11*b2-a21*b1;

a1:=D1/D;

a2:=D2/D;

end;

{Процедура решения системы трех линейных уравнений методом Крамера}

Procedure Sqr_Kram(Var a11:integer;

Var a12,a13,a21,a22,a23,a31,a32,a33,b1,b2,b3:real;

Var a1,a2,a3,MD:real);

Var

D,D1,D2,D3:Real;

begin

D:=a11*a22*a33+a12*a23*a31+a21*a32*a13-a13*a22*a31-a21*a12*a33-a11*a23*a32;

D1:=b1*a22*a33+a12*a23*b3+b2*a32*a13-a13*a22*b3-b2*a12*a33-b1*a23*a32;

D2:=a11*b2*a33+b1*a23*a31+a21*b3*a13-a13*b2*a31-a21*b1*a33-a11*a23*b3;

D3:=a11*a22*b3+a12*b2*a31+a21*a32*b1-b1*a22*a31-a21*a12*b3-a11*b2*a32;

a1:=D1/D;

a2:=D2/D;

a3:=D3/D;

MD:=D;

end;

{Процедура вычисления коэффициента детерминированности}

Procedure Koef_det(ns:integer;a,b:Vector;c:real;Var

S1,S2,S3,R:real);

Var

I:integer;

BEGIN

For i:=1 to NS do

begin

S1:=S1+sqr(b[i]-a[i]);

S2:=S2+sqr(b[i]-c);

end;

S3:=S1+S2;

R:=1-S1/S3;

end;

{Процедура вычисления стандартных ошибок коэфициентов

уравнения линейной регрессии и критериев для проверки

нулевых гипотез}

Procedure ZnachLine(n:integer;DS,R2,a,asr,a1,a2:real;Var

S1,S2,f,t1,t2:real);

begin

S1:=Sqrt(DS*a/(n*(n-2)*asr));

S2:=Sqrt(DS/((n-2)*asr));

f:=R2*(n-2)/(1-R2);

t1:=abs(a1)/S1;

t2:=abs(a2)/S2;

end;

{Процедура печати результатов работы программы в файл}

Procedure Print(Var gr:integer;sa1,sa2,sa3,sk,sR,sm1,sm2,sm3,sf,st1,st2,st3:string;a1,a2,a3,K,R,m1,m2,m3,f,t1,t2,t3:real);

Var

Fd,Sd:real;

st:string;

begin

Case gr of

1:st:='линеной аппроксимации';

2:st:='квадратичной аппроксимации';

3:st:='экспоненциальной аппроксимации';

end;

Write(g,sa1,'=',a1:7:4,' ',sa2,'=',a2:7:4);

if gr=2 then Write(g,' ',sa3,'=',a3:7:4);

WriteLn(g,' -коэффициенты',st);

If gr=1 then WriteLn(g,sk,k:9:6,' -коэффициент корреляции');

WriteLn(g,sR,r:9:6,'-коэффициент детерминированности');

Write(g,sm1,m1:8:6,' ',sm3,m2:8:6);

if gr=2 then Write(g,' ', sm3,m3:8:6);

WriteLN(g,' -стандартные ошибки коэффициентов');

WriteLN(g,'Критерии дя проверки нулевых гипотез:');

Write(g,sf,f:8:3,' ',st3,t1:8:3,' ',st2,t2:8:3);

if gr=2 then Write(g,' ', st3,t3:8:3);

WriteLn(g);

if gr=2 then Fd:=Ftab[2] else fd:=Ftab[1];

if gr=2 then Sd:=Stab[2] else Sd:=Stab[1];

if f>Fd THEN WriteLN(g,'Уравнение ',st,' значимо')

ELSE WriteLN(g,'Уравнение',st,' не значимо');

if t1>Sd THEN WriteLN(g,'Коэффициент',sa1,'значим')

ELSE WriteLN(g,'Коэффициент',sa1,'не значим');

if t2>Sd THEN WriteLN(g,'Коэффициент',sa2,'значим')

ELSE WriteLN(g,'Коэффициент',sa2,'не значим');

if gr=2 THEN

if t2>Sd THEN WriteLN(g,'Коэффициент',sa3,'значим');

end;

{Процедура построения исходных точек и линии тренда на экране}

Procedure Grafik(Var gr:integer);

Const

k=100; {колличество точек просчета}

kxn=95; kxk=590;

kyn=70; kyk=385; {параметры окна}

Var

dr,md,i:integer; {тип и режим адаптера}

x,y:vector;{массивы для значений функции и аргумента}

kx,ky:ari;{массивы для значений функции и аргумента}

ymin,ymax:real;{экстремальные значения у}

L:integer;

VOL:string;

mx,my:real;{масштабные коэффициенты}

h:real;{шаг по оси х}

{Функция для вывода целых чисел}

Function IntStr(L,DIG:integer):String;

Var buf:string[10];

begin

Str(L:DIG,Buf);

IntStr:=Buf;

end;

{Тело процедуры}

begin

ClrScr;

h:=30/(k-1);{определяем шаг по оси х}

x[1]:=0;

ymin:=0;

ymax:=100;

for i:=1 to k do {табулируем функцию}

begin Case gr of

1:y[I]:=a1L+a2L*x[I];

2:y[I]:=a1sqr+a2sqr*x[I]+a3sqr*x[I]*x[I];

3:y[I]:=a1exp*exp(a2exp*x[I]);

end;

if i<>100 then x[i+1]:=x[i]+h;

end;

mx:=(kxk-kxn)/(X[k]-x[1]); {определяем масштаб по оси х}

my:=(kyk-kyn)/(ymax-ymin); {определяем масштаб по оси у}

for i:=1 to k do {определяем координаты точек}

begin

kx[i]:=round((x[i]-x[1])*mx)+kxn;

ky[i]:=round((ymax-y[i])*my)+kyn;

end;

Dr:=detect;

InitGraph(dr,md,' '); {инициализируем графический режим}

setBKColor(7); {цвет фона светло серый}

ClearDevice; {очищаем экран}

SetColor(1); {текущий цвет синий}

SetLineStyle(0,0,2); {тип линии сплошная толщиной 2 пикселя}

Line(95,385,590,385); {рисуем координатную линию по х}

Line(95,385,95,70); {рисуем координатную линию по у}

SetTextStyle(1,0,2); {выбираем шрифт}

For I:=0 to 10 do begin

L:=100-I*10;

VOL:=IntStr(L,3);

OutTextXY(30,50+I*32,VOL); {выводим значения функции}

end;

For I:=0 to 6 do begin

L:=0+I*5;

VOL:=IntStr(L,3);

OutTextXY(70+I*85,390,VOL); {выводим значения аргумента}

end;

For I:=1 to N do {выводим исходные данные в виде}

Circle(x1[I],y1[I],2); {окружностей радиусом 2 пикселя}

Case gr of {выводим заголовок}

1:OutTextXY(250,70,'y=a1L+a2L*x');

2:OutTextXY(180,70,'y=a1sqr+a2sqr*x+a3sqr*x^2');

3:OutTextXY(220,70,'y=a1exp*(a2exp*x)');

end;

SetColor(4); {текущий цвет красный}

for i:=1 to k-1 do {рисуем линию тренда}

Line(kx[i],ky[i],kx[i+1],ky[i+1]);

readKey; {ждем нажатия на любую клавишу}

Closegraph {закрываем графический режим}

end;

{Процедура вычисления минимального и максимального значений в массиве}

Procedure MinMax(Var A:vector;Var n:integer;Var Min,Max:real);

Var i:integer;

begin

Min:=A[1];

Max:=A[1];

For i:=2 to n do begin

if A[i]<Min then Min:=A[i];

if A[i]>Max then Max:=A[i];

end;

end;

{Начало основного блока программы}

BEGIN

WriteLn('Введите полное имя файла с исходными данными');

Readln(filevvod);

Inp_vect(filevvod,x,y,N); {Вводим исходные данные}

writeLn('Введите полное имя файла с табличными данными');

Readln(filevvod);

Inp_vect(filevvod,Ftab,Stab,N1); {Вводим табличные данные}

{Вычисляем вспомогательные суммы}

Sx:=0; Sy:=0; Sx2:=0; Sxy:=0;

Sx3:=0;Sx4:=0; Sx2y:=0;

Slny:=0; Sxlny:=0;

for i:=1 to N do begin

Sx:=Sx+x[i];

Sy:=Sy+y[i];

Sx2:=Sx2+sqr(x[i]);

Sxy:=Sxy+x[i]*y[i];

Sx3:=Sx3+sqr(x[i])*x[i];

Sx4:=Sx4+sqr(sqr(x[i]));

Sx2y:=Sx2y+sqr(x[i])*y[i];

lny[i]:=ln(y[i]);

slny:=Slny+lny[i];

Sxlny:=Sxlny+x[i]*lny[i];

end;

{вычисляем средние значение по x,y и lny}

Xsr:=Sx/N;

Ysr:=Sy/N;

lnYsr:=Slny/N;

Sxysr:=0; Sx2sr:=0; Sy2sr:=0;

For i:=1 to N do begin

Sxysr:=Sxysr+(x[i]-Xsr)*(y[i]-Ysr);

Sx2sr:=Sx2sr+sqr(x[i]-Xsr);

Sy2sr:=Sy2sr+sqr(y[i]-Ysr);

end;

{Вычисляем коэффициенты уравнения регрессии для линейной аппроксимации}

L_Kram(N,Sx,Sx,Sx2,Sy,Sxy,a1L,a2L);

{Вычисляем коэффициент корредяции}

Koef_cor:=Sxysr/(sqrt(Sx2sr)*sqrt(Sy2sr));

{Вычмсляем коэффициент детерминирования для линейной аппроксимации}

For i:=1 to N do YL[i]:=a1L+a2L*x[i];

koef_det(N,y,YL,Ysr,SostL,SregrL,SpolnL,R_det_L);

{Вычисляем стандартные ошибки коэффициентов уравнения линейной регрессии

и критерии для проверки нулевых гипотез}

ZnachLine(N,SostL,R_det_L,Sx2,SX2sr,a1L,a2L,Sa1L,Sa2L,

FLine,ta1L,ta2L);

{Вычисляем коэффициенты уравнения регрессии для квадратичной

аппроксимации}

Sqr_Kram(N,Sx,Sx2,Sx,Sx2,Sx3,Sx2,Sx3,Sx4,Sy,Sxy,Sx2y,

a1sqr,a2sqr,a3sqr,MD);

{Вычисляем коэффициент детерминированности для квадратичной

аппроксимации}

For i:=1 to N do Ysqr[i]:=a1sqr+a2sqr*x[i]+a3sqr*sqr(x[i]);;

koef_det(N,y,Ysqr,Ysr,Sostsqr,Sregrsqr,Spolnsqr,R_det_sqr);

{Вычисляем стандартные ошибки коэффициентов уравнения квадратичной

регрессии и критерии для проверки нулевых гипотез}

DSost:=Sostsqr/(n-3);

Sa1sqr:=Sqrt(DSost*(Sx2*Sx4-Sx3*Sx3)/MD);

Sa2sqr:=Sqrt(DSost*(N*Sx4-Sx2*Sx2)/MD);

Sa3sqr:=Sqrt(DSost*(N*Sx2-Sx*Sx)/MD);

Fsqr:=R_det_sqr*(n-3)/(2*(1-R_det_sqr));

ta1sqr:=abs(a1sqr)/Sa1sqr;

ta2sqr:=abs(a2sqr)/Sa2sqr;

ta3sqr:=abs(a3sqr)/Sa3sqr;

{Вычисляем коэффициенты уравнения регрессии для

экспоненциальной аппроксимации}

L_Kram(N,Sx,Sx,Sx2,Slny,Sxlny,Cexp,a2exp);

a1exp:=exp(cexp);

{Вычисляем коэффициент детерминированности для

экспоненциальной аппроксимации}

For i:=1 to N do

begin

Yexp[i]:=a1exp*exp(a2exp*x[i]);

lnYexp[i]:=Ln(Yexp[i]);

end;

koef_det(N,lny,lnYexp,lnYsr,Sostexp,Sregrexp,

Spolnexp,R_det_exp);

{Вычисляем стандартные ошибки коэффициентов уравнения

экспоненциальной регрессии и критерии для проверки нулевых

гипотез}

ZnachLine(N,Sostexp,R_det_exp,Sx2,SX2sr,a1exp,a2exp,

Sa1exp,Sa2exp,Fexp,ta1exp,ta2exp);

{Печатаем исходные и табличные данные в выходной файл

out.dat}

Assign(g,'d:\1\26\out.dat');

Rewrite(g);

WriteLn(g,' Исходные данные');

For i:=1 to N do writeln(g,x[i]:6:2,' ',y[i]:6:2);

writeln(g,' N=',N:2,'-число наблюдений');

writeln(g,'Табличные данные');

For i:=1 to N1 do WriteLn(g,Ftab[i]:6:2,' ',Stab[i]:8:4);

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

gr:=1;

Print(gr,'a1L','a2L','','koef_cor=','R_det_L=','Sa1L=','Sa2L=','',

'FLine=','ta1L=','ta2L','',a1L,a2L,0,koef_cor,R_det_L,

Sa1L,Sa2L,0,FLine,ta1L,ta2L,0);

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

gr:=2;

Print(gr,'a1sqr','a2sqr','a3sqr','','R_det_sqr=','Sa1sqr=','Sa2sqr=',

'Sa3sqr=','Fsqr=','ta1sqr=','ta2sqr','ta3sqr=',a1sqr,a2sqr,a3sqr,0,

R_det_sqr,Sa1sqr,Sa2sqr,Sa3sqr,Fsqr,ta1sqr,ta2sqr,ta3sqr);

{Вывод результатов для экспоненциальной аппроксимации}

gr:=3;

Print(gr,'a1exp','a2exp','','','R_det_exp=','Sa1exp=','Sa2exp=','',

'Fexp=','ta1exp=','ta2exp=','',a1exp,a2exp,0,0,R_det_exp,

Sa1exp,Sa2exp,0,Fexp,ta1exp,ta2exp,0);

{Вычисление прогнозных значений}

MinMax(x,N,Min,Max);

Xpr:=Xsr+0.1*(Max-Min);

Ypr:=a1L+a2L*Xpr;

Writeln(g,'В прогнозной точке Xpr=',Xpr:6:4,'прогнозное значение Ypr=',Ypr:6:4);

Close(g);

{Вычисляем координаты точек исходного массива}

For I:=1 to N do begin

x1[I]:=Round(95+x[I]*495/30);

y1[I]:=Round(385-y[I]*y[I]*315/100);

end;

{Рисуем линию тренда для линейной аппроксимации}

gr:=1;

Grafik(gr);

{Рисуем линию тренда для квадратичной аппроксимации}

gr:=2;

Grafik(gr);

{Рисуем линию тренда для экспоненциальной аппроксимации}

gr:=3;

Grafik(gr);

END.

В результате чего был создан файл out.txt.

Его содержимое таково:

Исходные данные

1.20 2.00

1.40 3.50

1.60 5.00

1.80 5.60

2.00 6.60

3.00 7.80

4.00 9.00

5.00 9.10

6.00 9.20

7.00 9.40

8.00 9.45

9.00 9.50

10.00 9.50

N=13-число наблюдений

Табличные данные

4.84 3.1058

4.96 3.1693

a1L= 4.2172 a2L= 0.6804 -коэффициентылиненой аппроксимации

koef_cor= 0.821048 -коэффициент корреляции

R_det_L= 0.674120-коэффициент детерминированности

Sa1L=0.784483 0.142642 -стандартные ошибки коэффициентов

Критерии дя проверки нулевых гипотез:

FLine= 22.755 5.376 ta2L 4.770

Уравнение линеной аппроксимации значимо

Коэффициентa1Lзначим

Коэффициентa2Lзначим

a1sqr= 1.0635 a2sqr= 2.4917 a3sqr=-0.1721 -коэффициенты квадратичной аппроксимации

R_det_sqr= 0.891278-коэффициент детерминированности

Sa1sqr=0.850779 Sa3sqr=0.414388 Sa3sqr=0.038512 -стандартные ошибки коэффициентов

Критерии дя проверки нулевых гипотез:

Fsqr= 40.989 ta3sqr= 1.250 ta2sqr 6.013 ta3sqr= 4.469

Уравнение квадратичной аппроксимации значимо

Коэффициентa1sqrне значим

Коэффициентa2sqrзначим

Коэффициентa3sqrзначим

a1exp= 4.0070 a2exp= 0.1131 -коэффициентыэкспоненциальной аппроксимации

R_det_exp= 0.535116-коэффициент детерминированности

Sa1exp=0.174871 0.031797 -стандартные ошибки коэффициентов

Критерии дя проверки нулевых гипотез:

Fexp= 12.662 22.914 ta2exp= 3.558

Уравнение экспоненциальной аппроксимации значимо

Коэффициентa1expзначим

Коэффициентa2expзначим

В прогнозной точке Xpr=5.4954прогнозное значение Ypr=7.9565

9. Вывод

В курсовой работе мы решили задачу проведение испытаний установления зависимости массы фракций на погонный метр удлинённого заряда гранулита АС-8 от относительного расстояния, определили тип и параметры аналитической зависимости, аппроксимирующей результаты испытаний. Используя компьютерные возможности, которые мы проходили на первом курсе нашего обучения в СПГГИ, и методические указания. Это во многом облегчило нам решение поставленной задачи. Курсовая выполнена и оформлена программами: текстовый редактор Microsoft Word, электронные таблицы Microsoft Excel. Программа на языке программирования Паскаль является реализацией цикла табулирования. Полученные ответы, выполненные разными программами, сходятся и проверены.

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

1. Методическое указание по выполнению курсовой работы / Санкт-Петербургский государственный горный институт (технический университет). Сост. Г.Н. Журов, В.В. Беляев, Г.П. Парамонов. СПб, 2010. 54 с.

2. Беляев В.В. Информатика. Аппроксимация методом наименьших квадратов. Методическое указание по выполнению курсовой работы студентов всех специальностей./ В.В. Беляев, Г.Н. Журов. СПб.: СПГГИ(ТУ), 2005.

11.Приложения

Рис 15.Образ в программе Microsoft Excel.

Рис 16.Образ в программе Microsoft Excel.

Рис 18 Образ в программе Microsoft Excel (Графики).

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


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

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