Аппроксимация табулированных функций

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

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 30.09.2012
Размер файла 1,2 M

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

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

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

14

Реферат

Цель- решить задачу аппроксимации табулированной функции.

Объект исследования: аппроксимация табулированных функций.

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

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

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

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

Введение

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

1. Разложение функции в ряд Тейлора в окрестности некоторой точки;

2. Интерполяция заданных значений функции;

3. Аппроксимация заданной функции (или ее дискретных значений).

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

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

Объект исследования: аппроксимация табулированных функций.

Предмет исследования: процесс аппроксимации табулированной функции методом наименьших квадратов.

В соответствии с заданной целью, объектом и предметом исследования поставлены следующие задачи: необходимо описать метод аппроксимации табулированных функций методом наименьших квадратов, разработать алгоритм нахождения коэффициентов аппроксимирующего полинома и решить задачу аппроксимации в среде Delphi и MathCad [2].

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

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

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

1.Теоретическая часть

1.1 Обзор программных средств

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

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

Далее перечислим преимущества работы в среде математической программы Mathcad:

- математические выражения в среде Mathcad записываются в их общепринятой нотации: числитель находится сверху, а знаменатель -- внизу; в интеграле пределы интегрирования также расположены на своих привычных местах. Казалось бы, это все мелочи, никак не влияющие на вычислительный процесс. Программа должна быть понятной не только для компьютера, но и для человека. Пользователь, читая распечатку принтера или глядя на дисплей, видит, что данная величина записана в числителе и ее рост приводит к возрастанию всего выражения. А это очень важно при анализе математических моделей, форма и содержание которых едины [2].

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

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

1. Решение алгебраических уравнений и систем (линейных и нелинейных);

2. Решение обыкновенных дифференциальных уравнений и систем (задача Коши и краевая задача);

3. Решение дифференциальных уравнений в частных производных;

4. Статистическая обработка данных (интерполяция, экстраполяция, аппроксимация и многое другое);

5. Работа с векторами и матрицами (линейная алгебра и др.);

6. Поиск минимумов и максимумов функциональных зависимостей [3].

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

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

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

- в систему Mathcad интегрированы средства символьной математики, что позволяет решать поставленные задачи (этап задачи) не только численно, но и аналитически;

- не выходя из среды Mathcad, возможно открывать новые документы на других серверах и пользоваться теми преимуществами информационных технологий, предоставляемых Internet.

Кроме того, не следует забывать, что пакет Mathcad -- это полноценное Windows-приложение. Решая поставленную задачу, можно в статике (через буфер обмена Windows) или в динамике (OLE-технологии) передать данные в среду другой программы (в среду языка fortran, например) и там решить часть задачи.

В Белоруссии Borland Delphi появляется в конце 1993 г. и сразу же завоевывает широкую популярность. Новые версии выходят практически каждый год. В них реализуются все новые мастера, компоненты и технологии программирования.

Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Мы просто помещаем нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваем их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки -- и вот простое приложение готово. Причем разработчик получает в свое распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить [1].

Таким образом, мы можем использовать Delphi для создания как самых простых приложений, на разработку которых требуется 2-3 часа, так и серьезных корпоративных проектов, предназначенных для работы десятков и сотен пользователей. Причем для этого можно использовать самые последние веяния в мире компьютерных технологий с минимальными затратами времени и сил.

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

Задание 2 вариант 25. В данной курсовой работе надо:

1. Разработать алгоритм нахождения коэффициентов трёх аппроксимирующих полиномов (многочленов) вида для табулированной функции lny=f(x) (таблица 1.1). Степени полиномов 3, 4, 7. Построить блок-схему алгоритма. Создать программу на языке Delphi, реализующую разработанный алгоритм [1].

Таблица 1.1 - Исходные данные

n

X

Y (lny)

1

0,1

7,26

2

0,3

7,95

3

0,5

8,77

4

0,7

9,72

5

0,9

10,78

6

1,1

12,45

7

1,3

14,74

8

1,5

18,18

9

1,7

23,36

10

1,9

30,99

11

2,1

41,97

12

2,3

57,38

13

2,5

78,45

14

2,7

106,65

Таблица

15

2,9

143,64

16

3,1

191,28

17

3,3

251,71

18

3,5

327,27

19

3,7

420,58

20

3,9

534,52

21

4,1

672,24

22

4,3

837,2

23

4,5

1033,14

24

4,7

1264,13

25

4,9

1534,54

26

5,1

1849,11

27

5,3

2212,91

28

5,5

2631,36

29

5,7

3110,26

30

5,9

3665,8

31

6,1

4274,55

32

6,3

4973,5

33

6,5

5760,63

34

6,7

6641,98

35

6,9

7627,6

36

7,1

8725,62

37

7,3

9945,22

38

7,5

11296,05

39

7,7

12788,24

40

7,9

14432,44

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

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

4. Решить задачу средствами MathCad.

Результаты решения задачи с помощью созданной программы и в среде MathCad нужно представить в виде построенных с помощью найденных коэффициентов трёх полиномов; таблицы, содержащей полученные с помощью найденных полиномов значения функции в точках хi и среднеквадратичных отклонений [2].

1.3 Математическая модель

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

Наиболее распространенным и практически важным случаем, когда вид связи между параметрами x и y неизвестен, является задание этой связи в виде некоторой таблицы {xi yi}. Это означает, что дискретному множеству значений аргумента {xi} поставлено в соответствие множество значений функции {yi} (i=0,1…n). Эти значения - либо результаты расчетов, либо экспериментальные данные. На практике нам могут понадобиться значение величины y и в других точках, отличных от узлов xi. Однако получить эти значения можно лишь путем очень сложных расчетов или провидением дорогостоящих экспериментов. Таким образом, с точки зрения экономии времени и средств мы приходим к необходимости использования имеющихся табличных данных для приближенного вычисления искомого параметра y при любом значении (из некоторой области) определяющего параметра x, поскольку точная связь y=f(x) неизвестна.

Этой цели и служит задача о приближение (аппроксимации) функций: данную функцию f(x) требуется приближенно заменить (аппроксимировать) некоторой функцией g(x) так, чтобы отклонение (в некотором смысле) g(x) от f(x) в заданной области было минимальным. Функция g(x) при этом называется аппроксимирующей. Для практики весьма важен случай аппроксимации функции многочленом:

g(x)=a0+a1x+a2x2+…+amxm

При этом коэффициенты aj будут подбираться так, чтобы достичь наименьшего отклонения многочлена от данной функции.

Если приближение строиться на заданном множестве точек {xi}, то аппроксимация называется точечной. К ней относятся интерполирование, среднеквадратичное приближение и др. При построении приближения на непрерывном множестве точек (например, на отрезке [a,b] аппроксимация называется непрерывной или интегральной). Одним из основных типов точечной аппроксимации является интерполирование. Оно состоит в следующем: для данной функции y=f(x) строим многочлен (1.2), принимающий в заданных точках xi те же значения yi, что и функция f(x), т.е. g(xi)=yi, i=0,1,…n. При этом предполагается, что среди значений xi нет одинаковых, т.е. xixk при этом ik. Точки xi называются узлами интерполяции, а многочлен g(x) - интерполяционным многочленом.

Рисунок 1.1 - График интерполяционного многочлена

Таким образом, близость интерполяционного многочлена к заданной функции состоит в том, что их значения совпадают на заданной схеме точек (рисунок 1.1, пунктирной линией).

Максимальная степень интерполяционного многочлена m=n; в этом случае говорят о глобальной интерполяции.

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

Одним из таких видов является среднеквадратичное приближение функции с помощью многочлена (1.2). При этом m n; случай m = n соответствует интерполяции. На практике стараются подобрать аппроксимирующий многочлен как можно меньшей степени (как правило, m=1, 2, 3) [3].

Мерой отклонения многочлена g(x) от заданной функции f(x) на множестве точек (xi,yi) (i=0,1,…,n) при среднеквадратичном приближении является величина S, равная сумме квадратов разности между значениями многочлена и функции в данных точках:

Для построения аппроксимирующего многочлена нужно подобрать коэффициенты a0, a1,…,am так, чтобы величина S была наименьшей. В этом состоит метод наименьших квадратов[2].

;

После преобразования система слегка упростится:

(1.5)

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

С учётом этих обозначений система (1.5) перепишется следующим образом:

(1.6)

Среднеквадратичное отклонение вычисляется по формуле[2]:

1.4 Алгоритм решения задачи

1. Начало алгоритма

2. Для i=0,…,14

3. Обнуляем массивTi=0;

4. Для i=0,…,7

5. Обнуляем массив Ci=0, Ai=0

6. Для i=0,…,7, для j=0,…,8

7. Обнуляем массив Bij=0

8. Для i=1,…,m

9. Для j=0,…,2n

10. Вычисляем коэффициенты массива Tj=Tj+Xij

11. Для j=0,…,n

12. Вычисляем коэффициенты массива Cij= Cj+Yi*Xij

13. T0=m

Формируем расширенную матрицу

14. Для i=0,…,n, для j=0,…,n

15. Bij=Tj+i

16. Для i=0,…,n

17. Bin+1=Ci

Приводим её к треугольному виду:

18. Для k=0,…,n-1, для i=k,…,n

19. Bik = Bik

20. Для j=k,…,n+1

21. Если i=k,

22. то

23. иначе

24. Для i=n,…,0

Вычисляем коэффициенты полинома

25.

26. Для i=n,…,0

27. Вывод Ai

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

28. Delta=0

29. Для i=1,..,m

30. Yn=0, Для j=0,…,n

31. Yn= Yn+Ai*Xij

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

33. Окончательное вычисление среднеквадратичного отклонения:

34. Конец алгоритма

1.5 Блок-схемы алгоритмов решения поставленной задачи

Рассмотрим блок-схему основного алгоритма решения задачи аппроксимации табулированной функции методом наименьших квадратов (рисунок 1.2).

Рис.

Рис.

Рисунок 1.2 -Блок-схемы алгоритма подпрограммы решения задачи

2. Практическая часть

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

Для решения поставленной задачи была создана программа в среде Delphi (Рисунок 2.1)[Приложение А].

Рисунок 2.1 - Интерфейс программы

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

Для того, чтобы загрузить исходные данные, нажимаем клавишу Исходные данные (Рисунок 2.1). В результате поле Исходные параметры Х и Y (Рисунок 2.1) заполняться экспериментальными данными.

В окнах Степени полинома вводим значения степеней полинома.

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

2.2 Перечень использованных в программе идентифика-торов

Таблица 2.1 - Идентификаторы программы

Математическое

обозначение

Идентификатор

Назначение

Xi

Xi

переменная, получающая значение заданных массивов значений: Xi

Yi

Yi

переменная, получающая значение заданных массивов значений Yi

А

А

массив коэффициентов полинома

В

В

расширенная матрица системы уравнений

С

С

массив Yi Xij

Т

Т

массив Xij

д

Delta

среднеквадратичное отклонение

m, n

m, n

степень полинома и число элементов: n,m

2.3 Текст программы

2.3.1 Фрагмент основных модулей в Delphi

procedure TForm1.Button3Click(Sender: TObject);

label Pl;

Var

St,Bik,Delta,Yn:extended;

n,i,k,q,j: integer;

Begin

q:=1; Pl:

if q=1 then n:=StrToInt(Edit1.Text)

else begin

if q=2 then n:=StrToInt(Edit2.Text)

else n:=StrToInt(Edit3.Text) end;

for i:=0 to 14 do T[i]:=0;

for i:=0 to 7 do begin C[i]:=0; A[i]:=0 end;

for i:=0 to 7 do

for j:=0 to 8 do B[i,j]:=0;

Memo1.Lines.Add('Коэффициенты полинома степени ='+inttostr(n));

for i:=1 to 2*n do begin

St:=0;

for j:=1 to 40 do begin

X[j]:=StrToFloat(stringgrid1.Cells[1,j]);

St:=St+exp(i*ln(X[j]))

end;

T[i]:=St;

end;

for i:=0 to n do begin

St:=0;

for j:=1 to 40 do begin

Y[j]:=StrToFloat(stringgrid1.Cells[2,j]);

St:=St+exp(i*ln(X[j]))*Y[j]

end;

C[i]:=St;

end;

T[0]:=40;

for i:=0 to n do

for j:=0 to n do

B[i,j]:=T[j+i];

for i:=0 to n do B[i,n+1]:=C[i];

for k:=0 to n-1 do

for i:=k to n do begin

Bik:=B[i,k];

for j:=k to n+1 do

if i=k then B[i,j]:=B[i,j]/Bik

else B[i,j]:=B[i,j]/Bik-B[k,j]; end;

for i:=n downto 0 do begin

A[i]:=(B[i,n+1]-B[i,1]*A[1]-B[i,2]*A[2]-B[i,3]*A[3]-B[i,4]*A[4]-B[i,5]*A[5]-B[i,6]*A[6]-B[i,7]*A[7]-B[i,8]*A[8])/B[i,i];

Memo1.Lines.Add('A['+inttostr(i)+']='+floattostr(A[i]));

end;

Memo1.Lines.Add('Среднеквадратичное отклонение');

Delta:=0;

for i:=1 to 40 do begin

Yn:=0;

for j:=0 to n do begin

St:=1;

for k:=1 to j do St:=St*X[i];

Yn:=Yn+A[j]*St end;

Chart1.Series[q].AddXY(X[i],Yn);

Chart1.Series[0].AddXY(X[i],Y[i]);

Delta:=Delta+sqr(Yn-Y[i]); end;

Delta:=sqrt(Delta/40);

Memo1.Lines.Add(floattostr(Delta));

Memo1.Lines.Add('');

if q<3 then begin q:=q+1; goto Pl;

end;

end;

2.3.2 Фрагмент основных модулей в MathCad

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

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

Находим коэффициенты полиномов, решив системы

2.4 Распечатка результатов

Рисунок 2.2 - Окно программы с результатами

2.5 Графическое представление результатов

Ниже представлены графики трех полиномов и начальных значений в Delphi (Рисунок 2.4) и в MathCad (Рисунок 2.5).

Рисунок 2.3 - Графики функций(в среде Delphi)

Рисунок 2.4 - Графики функций(в среде MathCad)

2.6 Анализ полученных результатов

При сравнении результатов полученных в среде MathCad с результатами полученными в среде Delphi мы можем наблюдать малую погрешность связанную с округлениями чисел (Таблица 2.2).

Таблица 2.2 - Сравнение результатов

m

Пере-менная

Delphi

MathCad

Погрешность

3

delta

0,130830625408076

0,130830625

0,000000000408076

A0

1,64722038278381

1,64722

0,00000038278381

A1

0,798489943891699

0,79849

-0,000000056108301

A2

0,155267198361934

0,15527

-0,000002801638066

A3

-0,0167901555374702

-0,01679

-0,0000001555374702

4

delta

0,0445460829406349

0,044546083

-0,0000000000593651

A0

2,02266046171762

2,022660462

-0,00000000028238

A1

-0,134724814481456

-0,1347248814

0,000000066918544

A2

0,679372859382629

0,679372859

0,000000000382629

A3

-0,118653609593483

-0,11865361

0,000000000406517

A4

0,00636646587850079

0,006366466

-0,00000000012149921

7

delta

0,0123938904550725

0,01239389

0,0000000004550725

A0

1,93182418016477

1,93182

0,00000418016477

A1

0,6344771802928

0,63448

-0,0000028197072

A2

-0,707966470857058

-0,70797

0,000003529142942

A3

0,851988024029731

0,85199

-0,000001975970269

A4

-0,319637531963828

-0,31964

0,000002468036172

A5

0,0563487698023101

0,05635

-0,0000012301976899

A6

-0,00483412895458307

-0,00483

-0,00000412895458307

А7

0,000162984267419739

0,00016

0,000002984267419739

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

Заключение

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

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

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

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

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

Для получения данных результатов в курсовой работе был разработан алгоритм решения поставленной задачи. По разработанному алгоритму была создана программа на языке Delphi. Программа апробирована, результаты тестирования показывают работоспособность программы. Также задача была решена в среде Mathcad. Результаты, полученные в MathCad, полностью совпадают с результатами программы. А это говорит о правильности и верности вычислений созданной программы на языке Delphi.

Список использованной литературы

1.Наранович, О.И. Информатика. Задания и методические указания по выполнению, оформлению и защите курсовых работ для студентов дневной и заочной форм обучения специальностей 1-36 01 01, 1-36 01 03, 1-53 01 01. Часть 4./ О.И. Наранович, С.Г. Скобля. - Барановичи: БарГУ, 2005.

2.Наранович, О.И. Информатика: методические указания и задания к лабораторным работам для студентов 2-го курса дневной формы обучения специальностей 40 01 02, 36 01 03, 36 01 01. Часть 3./ О.И. Наранович, С.Г. Скобля. - Барановичи: БарГУ, 2005.

3.Бронштейн, И.Н. Справочник по высшей математике для инженеров и учащихся втузов / И.Н.Бронштейн. - М.: Наука , 1981г.

Приложение А

Текст программы заглавной формы

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, XPMan, Grids,

Series;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

XPManifest1: TXPManifest;

Chart1: TChart;

Memo1: TMemo;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

Button3: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

T,C,A,X,Y:array [0..100] of extended;

B:array [0..40,0..40] of extended;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var i: integer;

begin

memo1.Clear;

stringgrid1.Cells[1,0]:=' Xi';

stringgrid1.Cells[2,0]:=' ln|Yi|';

StringGrid1.Cells[3,0]:=' Yi';

for i:=1 to 40 do stringgrid1.Cells[0,i]:=IntToStr(i);

Edit1.Text:='3';

Edit2.Text:='4';

Edit3.Text:='7';

end;

procedure TForm1.Button3Click(Sender: TObject);

label Pl;

Var

St,Bik,Delta,Yn:extended;

n,i,k,q,j: integer;

Begin

q:=1; Pl:

if q=1 then n:=StrToInt(Edit1.Text)

else begin

if q=2 then n:=StrToInt(Edit2.Text)

else n:=StrToInt(Edit3.Text) end;

for i:=0 to 14 do T[i]:=0;

for i:=0 to 7 do begin C[i]:=0; A[i]:=0 end;

for i:=0 to 7 do

for j:=0 to 8 do B[i,j]:=0;

Memo1.Lines.Add('Коэффициенты полинома степени ='+inttostr(n));

for i:=1 to 2*n do begin

St:=0;

for j:=1 to 40 do begin

X[j]:=StrToFloat(stringgrid1.Cells[1,j]);

St:=St+exp(i*ln(X[j]))

end;

T[i]:=St;

end;

for i:=0 to n do begin

St:=0;

for j:=1 to 40 do begin

Y[j]:=StrToFloat(stringgrid1.Cells[2,j]);

St:=St+exp(i*ln(X[j]))*Y[j]

end;

C[i]:=St;

end;

T[0]:=40;

for i:=0 to n do

for j:=0 to n do

B[i,j]:=T[j+i];

for i:=0 to n do B[i,n+1]:=C[i];

for k:=0 to n-1 do

for i:=k to n do begin

Bik:=B[i,k];

for j:=k to n+1 do

if i=k then B[i,j]:=B[i,j]/Bik

else B[i,j]:=B[i,j]/Bik-B[k,j]; end;

for i:=n downto 0 do begin

A[i]:=(B[i,n+1]-B[i,1]*A[1]-B[i,2]*A[2]-B[i,3]*A[3]-B[i,4]*A[4]-B[i,5]*A[5]-B[i,6]*A[6]-B[i,7]*A[7]-B[i,8]*A[8])/B[i,i];

Memo1.Lines.Add('A['+inttostr(i)+']='+floattostr(A[i]));

end;

Memo1.Lines.Add('Среднеквадратичное отклонение');

Delta:=0;

for i:=1 to 40 do begin

Yn:=0;

for j:=0 to n do begin

St:=1;

for k:=1 to j do St:=St*X[i];

Yn:=Yn+A[j]*St end;

Chart1.Series[q].AddXY(X[i],Yn);

Chart1.Series[0].AddXY(X[i],Y[i]);

Delta:=Delta+sqr(Yn-Y[i]); end;

Delta:=sqrt(Delta/40);

Memo1.Lines.Add(floattostr(Delta));

Memo1.Lines.Add('');

if q<3 then begin q:=q+1; goto Pl;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var F:TextFile;

S: string;

i: integer;

L: array [0..40] of extended;

n:real;

begin

AssignFile(F, 'Xi.txt');

Reset(F);

for i:=1 to 40 do begin Readln(F, S);

stringgrid1.Cells[1,i]:=S;

end;

CloseFile(F);

AssignFile(F, 'Yi.txt');

Reset(F);

for i:=1 to 40 do begin Readln(F, S);

L[i]:=StrToFloat(S);

n:=ln(L[i]);

stringgrid1.Cells[2,i]:=FloatToStr(n);

stringgrid1.Cells[3,i]:=S;

end;

CloseFile(F);

Button3.Enabled:=True;

end;

end.

Приложение Б

Текст программы в MathCad

Рис.

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

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

Находим коэффициенты полиномов, решив системы

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


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

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

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

  • Интерполяция (частный случай аппроксимации). Аппроксимация функцией. Метод наименьших квадратов. Из курса математики известны 3 способа задания функциональных зависимостей: аналитический, графический, табличный.

    реферат [70,4 K], добавлен 26.05.2006

  • Преобразование коэффициентов полиномов Чебышева. Функции, применяемые в численном анализе. Интерполяция многочленами, метод аппроксимации - сплайн-аппроксимация, ее отличия от полиномиальной аппроксимации Лагранжем и Ньютоном. Метод наименьших квадратов.

    реферат [21,5 K], добавлен 27.01.2011

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

    лабораторная работа [166,4 K], добавлен 13.04.2016

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

    курсовая работа [434,5 K], добавлен 14.03.2014

  • Аппроксимация функций методом наименьших квадратов. Описание программного средства: спецификация переменных, процедур и функций, схемы алгоритмов. Реализация расчетов в системе Mathcad. Порядок составления графика в данной среде программирования.

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

  • Аппроксимация экспериментальных зависимостей методом наименьших квадратов. Правило Крамера. Графическое отображение точек экспериментальных данных. Аномалии и допустимые значения исходных данных. Листинг программы на С++. Результаты выполнения задания.

    курсовая работа [166,7 K], добавлен 03.02.2011

  • Исследование вопросов построения эмпирических формул методом наименьших квадратов средствами пакета Microsoft Excel и решение данной задачи в MathCAD. Сравнительная характеристика используемых средств, оценка их эффективности и перспективы применения.

    курсовая работа [471,3 K], добавлен 07.03.2015

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

    реферат [383,7 K], добавлен 19.08.2015

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

    курсовая работа [77,1 K], добавлен 02.06.2011

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