3. Аппроксимация функций с помощью метода
наименьших квадратов
Метод наименьших квадратов применяется при обработке результатов эксперимента для аппроксимации (приближения) экспериментальных данных аналитической формулой. Конкретный вид формулы выбирается, как правило, из физических соображений. Такими формулами могут быть:
и другие.
Сущность метода наименьших квадратов состоит в следующем. Пусть результаты измерений представлены таблицей:
Таблица 4 |
||||
x n |
||||
y n |
(3.1) |
где f - известная функция, a 0 , a 1 , …, a m - неизвестные постоянные параметры, значения которых надо найти. В методе наименьших квадратов приближение функции (3.1) к экспериментальной зависимости считается наилучшим, если выполняется условие
(3.2) |
то есть сумм a квадратов отклонений искомой аналитической функции от экспериментальной зависимости должна быть минимальна .
Заметим, что функция Q называется невязкой.
Так как невязка
то она имеет минимум. Необходимым условием минимума функции нескольких переменных является равенство нулю всех частных производных этой функции по параметрам. Таким образом, отыскание наилучших значений параметров аппроксимирующей функции (3.1), то есть таких их значений, при которых Q = Q (a 0 , a 1 , …, a m ) минимальна, сводится к решению системы уравнений:
(3.3) |
Методу наименьших квадратов можно дать следующее геометрическое истолкование: среди бесконечного семейства линий данного вида отыскивается одна линия, для которой сумма квадратов разностей ординат экспериментальных точек и соответствующих им ординат точек, найденных по уравнению этой линии, будет наименьшей.
Нахождение параметров линейной функции
Пусть экспериментальные данные надо представить линейной функцией:
Требуется подобрать такие значения a и b , для которых функция
(3.4) |
будет минимальной. Необходимые условия минимума функции (3.4) сводятся к системе уравнений:
|
После преобразований получаем систему двух линейных уравнений с двумя неизвестными:
|
(3.5) |
решая которую , находим искомые значения параметров a и b .
Нахождение параметров квадратичной функции
Если аппроксимирующей функцией является квадратичная зависимость
то её параметры a , b , c находят из условия минимума функции:
(3.6) |
Условия минимума функции (3.6) сводятся к системе уравнений:
|
После преобразований получаем систему трёх линейных уравнений с тремя неизвестными:
|
(3.7) |
при решении которой находим искомые значения параметров a , b и c .
Пример . Пусть в результате эксперимента получена следующая таблица значений x и y :
Таблица 5 |
||||||||
y i |
0,705 |
0,495 |
0,426 |
0,357 |
0,368 |
0,406 |
0,549 |
0,768 |
Требуется аппроксимировать экспериментальные данные линейной и квадратичной функциями.
Решение. Отыскание параметров аппроксимирующих функций сводится к решению систем линейных уравнений (3.5) и (3.7). Для решения задачи воспользуемся процессором электронных таблиц Excel .
1. Сначала сцепим листы 1 и 2. Занесём экспериментальные значения x i и y i в столбцы А и В, начиная со второй строки (в первой строке поместим заголовки столбцов). Затем для этих столбцов вычислим суммы и поместим их в десятой строке.
В столбцах C – G разместим соответственно вычисление и суммирование
2. Расцепим листы.Дальнейшие вычисления проведём аналогичным образом для линейной зависимости на Листе 1и для квадратичной зависимости на Листе 2.
3. Под полученной таблицей сформируем матрицу коэффициентов и вектор-столбец свободных членов. Решим систему линейных уравнений по следующему алгоритму:
Для вычисления обратной матрицы и перемножения матриц воспользуемся Мастером функций и функциями МОБР и МУМНОЖ .
4. В блоке ячеек H2: H 9 на основе полученных коэффициентов вычислим значенияаппроксимирующего полинома y i выч ., в блоке I 2: I 9 – отклонения D y i = y i эксп . - y i выч .,в столбце J – невязку:
Полученные таблицы и построенные с помощью Мастера диаграмм графики приведёны на рисунках6, 7, 8.
Рис. 6. Таблица вычисления коэффициентов линейной функции,
аппроксимирующей экспериментальные данные.
Рис. 7. Таблица вычисления коэффициентов квадратичной функции,
аппроксимирующей экспериментальные данные.
Рис. 8. Графическое представление результатов аппроксимации
экспериментальных данных линейной и квадратичной функциями.
Ответ. Аппроксимировали экспериментальные данные линейной зависимостью y = 0,07881 x + 0,442262 c невязкой Q = 0,165167 и квадратичной зависимостью y = 3,115476 x 2 – 5,2175 x + 2,529631 c невязкой Q = 0,002103 .
Задания. Аппроксимировать функцию, заданную таблично, линейной и квадратичной функциями.
Таблица 6 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№0 |
x |
0,1 |
0,2 |
0,3 |
0,4 |
0,5 |
0,6 |
0,7 |
0,8 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
y |
3,030 |
3,142 |
3,358 |
3,463 |
3,772 |
3,251 |
3,170 |
3,665 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3,314 |
3,278 |
3,262 |
3,292 |
3,332 |
3,397 |
3,487 |
3,563 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1,045 |
1,162 |
1,264 |
1,172 |
1,070 |
0,898 |
0,656 |
0,344 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6,715 |
6,735 |
6,750 |
6,741 |
6,645 |
6,639 |
6,647 |
6,612 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 4 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2,325 |
2,515 |
2,638 |
2,700 |
2,696 |
2,626 |
2,491 |
2,291 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 5 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.752 |
1,762 |
1,777 |
1,797 |
1,821 |
1,850 |
1,884 |
1,944 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 6 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1,924 |
1,710 |
1,525 |
1,370 |
1,264 |
1,190 |
1,148 |
1,127 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 7 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1,025 |
1,144 |
1,336 |
1,419 |
1,479 |
1,530 |
1,568 |
1,248 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 8 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5,785 |
5,685 |
5,605 |
5,545 |
5,505 |
5,480 |
5,495 |
5,510 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
№ 9 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4,052 |
4,092 |
4,152 |
4,234 |
4,338 |
4,468 |
4,599 |
АППРОКСИМАЦИЯ ФУНКЦИИ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 1. Цель работы 2. Методические указания 2.2 Постановка задачи 2.3 Методика выбора аппроксимирующей функции 2.4 Общая методика решения 2.5 Методика решения нормальных уравнений 2.7 Методика вычисления обратной матрицы 3. Ручной счет 3.1 Исходные данные 3.2 Система нормальных уравнений 3.3 Решение систем методом обратной матрицы 4. Схема алгоритмов 5. Текст программы 6. Результаты машинного расчета 1. Цель работы Настоящая курсовая работа является завершающим разделом дисциплины «Вычислительная математика и программирование» и требует от студента в процессе ее выполнения решения следующих задач: а) практического освоения типовых вычислительных методов прикладной информатики; б) совершенствования навыков разработки алгоритмов и построения программ на языке высокого уровня. Практическое выполнение курсовой работы предполагает решение типовых инженерных задач обработки данных с использованием методов матричной алгебры, решения систем линейных алгебраических уравнений численного интегрирования. Навыки, приобретаемые в процессе выполнения курсовой работы, являются основой для использования вычислительных методов прикладной математики и техники программирования в процессе изучения всех последующих дисциплин при выполнении курсовых и дипломных проектов. 2. Методические указания 2.2 Постановка задачи При изучении зависимостей между величинами важной задачей является приближенное представление (аппроксимация) этих зависимостей с помощью известных функций или их комбинаций, подобранных надлежащим образом. Подход к такой задаче и конкретный метод её решения определяются выбором используемого критерия качества приближения и формой представления исходных данных. 2.3 Методика выбора аппроксимирующей функции Аппроксимирующую функцию выбирают из некоторого семейства функций, для которого задан вид функции, но остаются неопределенными (и подлежат определению) её параметры т.е. Определение аппроксимирующей функции φ разделяется на два основных этапа: Подбор подходящего вида функции ; Нахождение ее параметров в соответствии с критерием МНК. Подбор вида функции представляет собой сложную задачу, решаемую методом проб и последовательных приближений. Исходные данные, представленные в графической форме (семейства точек или кривые), сопоставляется с семейством графиков ряда типовых функций, используемых обычно для целей аппроксимации. Некоторые типы функций , используемых в курсовой работе, приведены в таблице 1. Более подробные сведения о поведении функций, которые могут быть использованы в задачах аппроксимации, можно найти в справочной литературе. В большинстве заданий курсовой работы вид аппроксимирующей функции задан. 2.4 Общая методика решения После того как выбран вид аппроксимирующей функции (или эта функция задана) и, следовательно, определена функциональная зависимость (1), необходимо найти в соответствии с требованиями МНК значения параметров С 1 , С 2 , …, С m . Как уже указывалось, параметры должны быть определены таком образом, чтобы значение критерия в каждой из рассматриваемых задач было наименьшим по сравнению с его значением при других возможных значениях параметров. Для решения задачи подставим выражение (1) в соответствующее из выражений и проведем необходимые операции суммирования или интегрирования (в зависимости от вида I). В результате величина I, именуемая в дальнейшем критерием аппроксимации, представляется функцией искомых параметров Последующее сводиться к отысканию минимума этой функции переменных С k ; определение значений С k =C k * , к=1,m, соответствующих этому элементу I, и является целью решаемой задачи. Типы функций Таблица 1
Возможны следующие два подхода к решению этой задачи: использование известных условий минимума функции нескольких переменных или непосредственное отыскание точки минимума функции каким – либо из численных методов. Для реализации первого из указанных подходов воспользуемся необходимым условием минимума функции (1) нескольких переменных, в соответствии с которыми в точке минимума должны быть равны нулю частные производные этой функции по всем ее аргументам Полученные m равенств следует рассматривать как систему уравнений относительно искомых С 1 , С 2 ,…, С m . При произвольном виде функциональной зависимости (1) уравнения (3) оказывается нелинейным относительно величин C k и их решение требует применение приближенных численных методов. Использование равенства (3) дают, лишь необходимые, но недостаточные условия минимума (2). Поэтому требуется уточнить, обеспечивают ли найденные значения C k * именно минимум функции . В общем случае такое уточнение выходит за рамки данной курсовой работы, и предлагаемые для курсовой работы задания подобраны так, что найденное решение системы (3) отвечает именно минимуму I. Однако, поскольку величина I неотрицательна (как сумма квадратов) и нижняя её граница есть 0 (I=0), то, если существует решение системы (3) единственно, оно отвечает именно минимуму I. При представлении аппроксимирующей функции общим выражением (1) соответствующие нормальным уравнениям (3) оказываются нелинейными относительно искомых С к. их решение может быть сопряжено со значительными трудностями. В таких случаях предпочтительным являются непосредственный поиск минимума функции в области возможных значений ее аргументов С к, не связанный с использованием соотношений (3). Общая идея подобного поиска сводиться к изменению значений аргументов С к и вычислению на каждом шаге соответствующего значения функции I до минимального или достаточно близко к нему. 2.5 Методика решения нормальных уравнений Один из возможных способов минимизации критерия аппроксимации (2) предполагает решение системы нормальных уравнений (3). При выборе в качестве аппроксимирующей функции линейной функции искомых параметров нормальные уравнения представляют собой систему линейных алгебраических уравнений. Систему n линейных уравнений общего вида: (4) можно записать посредством матричных обозначений в следующем виде: А·Х=В, ; ; (5) квадратная матрица А называется матрицей системы , а вектора Х и В соответственно вектором-столбцом неизвестных систем и вектором-столбцом ее свободных членов . В матричном виде исходную систему n линейных уравнений можно записать и так: Решение системы линейных уравнений сводиться к отысканию значений элементов вектора-столбца (х i), называемых корнями системы. Чтобы эта система имела единственное решение, входящее в нее n уравнение должно быть линейно независимым. Необходимым и достаточным условием этого является неравенство нулю определителя системы, т.е. Δ=detA≠0. Алгоритм решения системы линейных уравнений подразделяется на прямые и итерационные. На практике никакой метод не может быть бесконечным. Для получения точного решения итерационные методы требуют бесконечного числа арифметических операций. практически это число приходиться брать конечным и поэтому решение в принципе имеет некоторую ошибку, даже если пренебречь ошибками округлений, сопровождающими большинство вычислений. Что же касается прямых методов, то они даже при конечном числе операций могут в принципе дать точное решение, если оно существует. Прямые и конечные методы позволяют найти решение системы уравнений за конечное число шагов. Это решение будет точным, если все промежутки вычисления проводятся с ограниченной точностью. 2.7 Методика вычисления обратной матрицы Один из методов решения системы линейных уравнений (4), записываем в матричной форме А·Х=В, связан с использованием обратной матрицы А -1 . В этом случае решение системы уравнений получается в виде где А -1 –матрица, определяемая следующим образом. Пусть А –квадратная матрица размером n х n с ненулевым определителем detA≠0. Тогда существует обратная матрица R=A -1 , определяемая условием A·R=E, где Е –единичная матрица, все элементы главной диагонали которой равны I, а элементы вне этой диагонали -0, Е=, где Е i –вектор-столбец. Матрица К –квадратная матрица размером n х n. где Rj –вектор-столбец. Рассмотрим ее первый столбец R=(r 11 , r 21 ,…, r n 1) T , где Т –означает транспонирование. Нетрудно проверить, что произведение A·R равно первому столбцу E 1 =(1, 0, …, 0) Т единичной матрицы Е, т.е. вектор R 1 можно рассмотреть как решение системы линейных уравнений A·R 1 =E 1. Аналогично m –й столбец матрицы R , Rm, 1≤ m ≤ n, представляет собой решение уравнения A·Rm=Em, где Em=(0, …, 1, 0) T m –й столбец единичной матрицы Е. Таким образом, обратная матрица R представляет собой набор из решений n систем линейных уравнений A·Rm=Em , 1≤ m ≤ n. Для решения этих систем можно применять любые методы, разработанные для решения алгебраических уравнений. Однако метод Гаусса дает возможность решать все эти n систем одновременно, а независимо друг от друга. Действительно, все эти системы уравнений отличаются только правой частью, а все преобразования, которые проводятся в процессе прямого хода метода Гаусса, полностью определяются элементами матрицы коэффициентов (матрицы А). Следовательно, в схемах алгоритмов изменению подлежат только блоки, связанные с преобразованием вектора В. В нашем случае одновременно будут преобразовываться n векторов Em, 1≤ m ≤ n. Результатом решения также будет не один вектор, а n векторов Rm, 1≤ m ≤ n. 3. Ручной счет 3.1 Исходные данные
3.2 Система нормальных уравнений 3.3 Решение систем методом обратной матрицы аппроксимация квадрат функция линейный уравнение 5 3,5 2,6 0,5 5 3,5 2,6 0,5 3,5 2,85 2,43 -0,89 0 0,4 0,61 -1,24 2,56 2,43 2,44 -1,86 0 0,638 1,109 -2,116 0 0,4 0,61 -1,24 0 0 0,136 -0,138 Результаты расчета: С 1 =1,71; С 2 =-1,552; С 3 =-1,015; Аппроксимирующая функция: 4 . Текст программы mass=arrayof real; mass1=array of real; mass2=array of real; X,Y,E,y1,delta: mass; big,r,sum,temp,maxD,Q:real; i,j,k,l,num: byte; Procedure VVOD(var E: mass); For i:=1 to 5 do Function FI(i ,k: integer): real; if i=1 then FI:=1; if i=2 then FI:=Sin(x[k]); if i=3 then FI:=Cos(x[k]); Procedure PEREST(i:integer;var a:mass1;var b:mass2); for l:= i to 3 do if abs(a) > big then big:=a; writeln (big:6:4); writeln("Перестановка уравнений"); if num<>i then for j:=i to 3 do a:=a; writeln("Введите значения Х"); writeln("__________________"); writeln("‚Введите значения Y"); writeln("___________________"); For i:=1 to 3 do For j:=1 to 3 do For k:=1 to 5 do begin A:= A+FI(i,k)*FI(j,k); write(a:7:5); end; writeln("________________________"); writeln("Матрица Коэффициентов Ai,j"); For i:=1 to 3 do For j:=1 to 3 do write (A:5:2, " "); For i:=1 to 3 do For j:=1 to 5 do B[i]:=B[i]+Y[j]*FI(i,j); writeln("__________________________"); writeln(‘Матрица Коэффициентов Bi "); For i:=1 to 3 do write(B[i]:5:2, " "); for i:=1 to 2 do for k:=i+1 to 3 do Q:=a/a; writeln("g=",Q); for j:=i+1 to 3 do a:=a-Q*a; writeln("a=",a); b[k]:=b[k]-Q*b[i]; writeln("b=",b[k]); x1[n]:=b[n]/a; for i:=2 downto 1 do for j:=i+1 to 3 do sum:=sum-a*x1[j]; x1[i]:=sum/a; writeln("__________________________"); writeln ("Значение коэффициентов "); writeln("_________________________"); for i:=1 to 3 do writeln(" C",i,"=",x1[i]); for i:=1 to 5 do y1[i]:= x1[k]*FI(k,i) + x1*FI(k+1,i) + x1*FI(k+2,i); delta[i]:=abs (y[i]-y1[i]); writeln (y1[i]); for i:=1 to 3 do write (x1[i]:7:3); for i:=1 to 5 do if delta[i]>maxD then maxD:=delta; writeln ("max Delta= ", maxD:5:3); 5 . Результаты машинного расчета С 1 =1,511; С 2 =-1,237; С 3 =-1,11; Пример. Экспериментальные данные о значениях переменных х
и у
приведены в таблице. В результате их выравнивания получена функция Используя метод наименьших квадратов , аппроксимировать эти данные линейной зависимостью y=ax+b (найти параметры а и b ). Выяснить, какая из двух линий лучше (в смысле метода наименьших квадратов) выравнивает экспериментальные данные. Сделать чертеж. Суть метода наименьших квадратов (МНК).Задача заключается в нахождении коэффициентов линейной зависимости, при которых функция двух переменных а и b принимает наименьшее значение. То есть, при данных а и b сумма квадратов отклонений экспериментальных данных от найденной прямой будет наименьшей. В этом вся суть метода наименьших квадратов. Таким образом, решение примера сводится к нахождению экстремума функции двух переменных. Вывод формул для нахождения коэффициентов.Составляется и решается система из двух уравнений с двумя неизвестными. Находим частные производные функции по переменным а
и b
, приравниваем эти производные к нулю. Решаем полученную систему уравнений любым методом (например методом подстановки
или ) и получаем формулы для нахождения коэффициентов по методу наименьших квадратов (МНК). При данных а и b функция принимает наименьшее значение. Доказательство этого факта приведено . Вот и весь метод наименьших квадратов. Формула для нахождения параметра a содержит суммы , , , и параметр n - количество экспериментальных данных. Значения этих сумм рекомендуем вычислять отдельно. Коэффициент b находится после вычисления a . Пришло время вспомнить про исходый пример. Решение. В нашем примере n=5
. Заполняем таблицу для удобства вычисления сумм, которые входят в формулы искомых коэффициентов. Значения в четвертой строке таблицы получены умножением значений 2-ой строки на значения 3-ей строки для каждого номера i . Значения в пятой строке таблицы получены возведением в квадрат значений 2-ой строки для каждого номера i . Значения последнего столбца таблицы – это суммы значений по строкам. Используем формулы метода наименьших квадратов для нахождения коэффициентов а
и b
. Подставляем в них соответствующие значения из последнего столбца таблицы: Следовательно, y = 0.165x+2.184 - искомая аппроксимирующая прямая. Осталось выяснить какая из линий y = 0.165x+2.184 или лучше аппроксимирует исходные данные, то есть произвести оценку методом наименьших квадратов. Оценка погрешности метода наименьших квадратов.Для этого требуется вычислить суммы квадратов отклонений исходных данных от этих линий и , меньшее значение соответствует линии, которая лучше в смысле метода наименьших квадратов аппроксимирует исходные данные. Так как , то прямая y = 0.165x+2.184 лучше приближает исходные данные. Графическая иллюстрация метода наименьших квадратов (мнк).На графиках все прекрасно видно. Красная линия – это найденная прямая y = 0.165x+2.184 , синяя линия – это , розовые точки – это исходные данные. Для чего это нужно, к чему все эти аппроксимации? Я лично использую для решения задач сглаживания данных, задач интерполяции и экстраполяции (в исходном примере могли бы попросить найти занчение наблюдаемой величины y при x=3 или при x=6 по методу МНК). Но подробнее поговорим об этом позже в другом разделе сайта. Доказательство. Чтобы при найденных а и b функция принимала наименьшее значение, необходимо чтобы в этой точке матрица квадратичной формы дифференциала второго порядка для функции была положительно определенной. Покажем это. | АППРОКСИМАЦИЯ ФУНКЦИИ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 1. Цель работы 2. Методические указания 2.2 Постановка задачи 2.3 Методика выбора аппроксимирующей функции 2.4 Общая методика решения 2.5 Методика решения нормальных уравнений 2.7 Методика вычисления обратной матрицы 3. Ручной счет 3.1 Исходные данные 3.2 Система нормальных уравнений 3.3 Решение систем методом обратной матрицы 4. Схема алгоритмов 5. Текст программы 6. Результаты машинного расчета 1. Цель работы Настоящая курсовая работа является завершающим разделом дисциплины «Вычислительная математика и программирование» и требует от студента в процессе ее выполнения решения следующих задач: а) практического освоения типовых вычислительных методов прикладной информатики; б) совершенствования навыков разработки алгоритмов и построения программ на языке высокого уровня. Практическое выполнение курсовой работы предполагает решение типовых инженерных задач обработки данных с использованием методов матричной алгебры, решения систем линейных алгебраических уравнений численного интегрирования. Навыки, приобретаемые в процессе выполнения курсовой работы, являются основой для использования вычислительных методов прикладной математики и техники программирования в процессе изучения всех последующих дисциплин при выполнении курсовых и дипломных проектов. 2. Методические указания 2.2 Постановка задачи При изучении зависимостей между величинами важной задачей является приближенное представление (аппроксимация) этих зависимостей с помощью известных функций или их комбинаций, подобранных надлежащим образом. Подход к такой задаче и конкретный метод её решения определяются выбором используемого критерия качества приближения и формой представления исходных данных. 2.3 Методика выбора аппроксимирующей функции Аппроксимирующую функцию выбирают из некоторого семейства функций, для которого задан вид функции, но остаются неопределенными (и подлежат определению) её параметры т.е. Определение аппроксимирующей функции φ разделяется на два основных этапа: Подбор подходящего вида функции ; Нахождение ее параметров в соответствии с критерием МНК. Подбор вида функции представляет собой сложную задачу, решаемую методом проб и последовательных приближений. Исходные данные, представленные в графической форме (семейства точек или кривые), сопоставляется с семейством графиков ряда типовых функций, используемых обычно для целей аппроксимации. Некоторые типы функций , используемых в курсовой работе, приведены в таблице 1. Более подробные сведения о поведении функций, которые могут быть использованы в задачах аппроксимации, можно найти в справочной литературе. В большинстве заданий курсовой работы вид аппроксимирующей функции задан. 2.4 Общая методика решения После того как выбран вид аппроксимирующей функции (или эта функция задана) и, следовательно, определена функциональная зависимость (1), необходимо найти в соответствии с требованиями МНК значения параметров С 1 , С 2 , …, С m . Как уже указывалось, параметры должны быть определены таком образом, чтобы значение критерия в каждой из рассматриваемых задач было наименьшим по сравнению с его значением при других возможных значениях параметров. Для решения задачи подставим выражение (1) в соответствующее из выражений и проведем необходимые операции суммирования или интегрирования (в зависимости от вида I). В результате величина I, именуемая в дальнейшем критерием аппроксимации, представляется функцией искомых параметров Последующее сводиться к отысканию минимума этой функции переменных С k ; определение значений С k =C k * , к=1,m, соответствующих этому элементу I, и является целью решаемой задачи. Типы функций Таблица 1
Возможны следующие два подхода к решению этой задачи: использование известных условий минимума функции нескольких переменных или непосредственное отыскание точки минимума функции каким – либо из численных методов. Для реализации первого из указанных подходов воспользуемся необходимым условием минимума функции (1) нескольких переменных, в соответствии с которыми в точке минимума должны быть равны нулю частные производные этой функции по всем ее аргументам Полученные m равенств следует рассматривать как систему уравнений относительно искомых С 1 , С 2 ,…, С m . При произвольном виде функциональной зависимости (1) уравнения (3) оказывается нелинейным относительно величин C k и их решение требует применение приближенных численных методов. Использование равенства (3) дают, лишь необходимые, но недостаточные условия минимума (2). Поэтому требуется уточнить, обеспечивают ли найденные значения C k * именно минимум функции . В общем случае такое уточнение выходит за рамки данной курсовой работы, и предлагаемые для курсовой работы задания подобраны так, что найденное решение системы (3) отвечает именно минимуму I. Однако, поскольку величина I неотрицательна (как сумма квадратов) и нижняя её граница есть 0 (I=0), то, если существует решение системы (3) единственно, оно отвечает именно минимуму I. При представлении аппроксимирующей функции общим выражением (1) соответствующие нормальным уравнениям (3) оказываются нелинейными относительно искомых С к. их решение может быть сопряжено со значительными трудностями. В таких случаях предпочтительным являются непосредственный поиск минимума функции в области возможных значений ее аргументов С к, не связанный с использованием соотношений (3). Общая идея подобного поиска сводиться к изменению значений аргументов С к и вычислению на каждом шаге соответствующего значения функции I до минимального или достаточно близко к нему. 2.5 Методика решения нормальных уравнений Один из возможных способов минимизации критерия аппроксимации (2) предполагает решение системы нормальных уравнений (3). При выборе в качестве аппроксимирующей функции линейной функции искомых параметров нормальные уравнения представляют собой систему линейных алгебраических уравнений. Систему n линейных уравнений общего вида: (4) можно записать посредством матричных обозначений в следующем виде: А·Х=В, ; ; (5) квадратная матрица А называется матрицей системы , а вектора Х и В соответственно вектором-столбцом неизвестных систем и вектором-столбцом ее свободных членов . В матричном виде исходную систему n линейных уравнений можно записать и так: Решение системы линейных уравнений сводиться к отысканию значений элементов вектора-столбца (х i), называемых корнями системы. Чтобы эта система имела единственное решение, входящее в нее n уравнение должно быть линейно независимым. Необходимым и достаточным условием этого является неравенство нулю определителя системы, т.е. Δ=detA≠0. Алгоритм решения системы линейных уравнений подразделяется на прямые и итерационные. На практике никакой метод не может быть бесконечным. Для получения точного решения итерационные методы требуют бесконечного числа арифметических операций. практически это число приходиться брать конечным и поэтому решение в принципе имеет некоторую ошибку, даже если пренебречь ошибками округлений, сопровождающими большинство вычислений. Что же касается прямых методов, то они даже при конечном числе операций могут в принципе дать точное решение, если оно существует. Прямые и конечные методы позволяют найти решение системы уравнений за конечное число шагов. Это решение будет точным, если все промежутки вычисления проводятся с ограниченной точностью. 2.7 Методика вычисления обратной матрицы Один из методов решения системы линейных уравнений (4), записываем в матричной форме А·Х=В, связан с использованием обратной матрицы А -1 . В этом случае решение системы уравнений получается в виде где А -1 –матрица, определяемая следующим образом. Пусть А –квадратная матрица размером n х n с ненулевым определителем detA≠0. Тогда существует обратная матрица R=A -1 , определяемая условием A·R=E, где Е –единичная матрица, все элементы главной диагонали которой равны I, а элементы вне этой диагонали -0, Е=, где Е i –вектор-столбец. Матрица К –квадратная матрица размером n х n. где Rj –вектор-столбец. Рассмотрим ее первый столбец R=(r 11 , r 21 ,…, r n 1) T , где Т –означает транспонирование. Нетрудно проверить, что произведение A·R равно первому столбцу E 1 =(1, 0, …, 0) Т единичной матрицы Е, т.е. вектор R 1 можно рассмотреть как решение системы линейных уравнений A·R 1 =E 1. Аналогично m –й столбец матрицы R , Rm, 1≤ m ≤ n, представляет собой решение уравнения A·Rm=Em, где Em=(0, …, 1, 0) T m –й столбец единичной матрицы Е. Таким образом, обратная матрица R представляет собой набор из решений n систем линейных уравнений A·Rm=Em , 1≤ m ≤ n. Для решения этих систем можно применять любые методы, разработанные для решения алгебраических уравнений. Однако метод Гаусса дает возможность решать все эти n систем одновременно, а независимо друг от друга. Действительно, все эти системы уравнений отличаются только правой частью, а все преобразования, которые проводятся в процессе прямого хода метода Гаусса, полностью определяются элементами матрицы коэффициентов (матрицы А). Следовательно, в схемах алгоритмов изменению подлежат только блоки, связанные с преобразованием вектора В. В нашем случае одновременно будут преобразовываться n векторов Em, 1≤ m ≤ n. Результатом решения также будет не один вектор, а n векторов Rm, 1≤ m ≤ n. 3. Ручной счет 3.1 Исходные данные
3.2 Система нормальных уравнений 3.3 Решение систем методом обратной матрицы аппроксимация квадрат функция линейный уравнение 5 3,5 2,6 0,5 5 3,5 2,6 0,5 3,5 2,85 2,43 -0,89 0 0,4 0,61 -1,24 2,56 2,43 2,44 -1,86 0 0,638 1,109 -2,116 0 0,4 0,61 -1,24 0 0 0,136 -0,138 Результаты расчета: С 1 =1,71; С 2 =-1,552; С 3 =-1,015; Аппроксимирующая функция: 4 . Текст программы mass=arrayof real; mass1=array of real; mass2=array of real; X,Y,E,y1,delta: mass; big,r,sum,temp,maxD,Q:real; i,j,k,l,num: byte; Procedure VVOD(var E: mass); For i:=1 to 5 do Function FI(i ,k: integer): real; if i=1 then FI:=1; if i=2 then FI:=Sin(x[k]); if i=3 then FI:=Cos(x[k]); Procedure PEREST(i:integer;var a:mass1;var b:mass2); for l:= i to 3 do if abs(a) > big then big:=a; writeln (big:6:4); writeln("Перестановкауравнений"); if num<>i then for j:=i to 3 do a:=a; writeln("Введите значения Х"); writeln("__________________"); writeln("‚Введите значения Y"); writeln("___________________"); For i:=1 to 3 do For j:=1 to 3 do For k:=1 to 5 do begin A:= A+FI(i,k)*FI(j,k); write(a:7:5); end; writeln("________________________"); writeln("МатрицаКоэффициентовAi,j"); For i:=1 to 3 do For j:=1 to 3 do write (A:5:2, " "); For i:=1 to 3 do For j:=1 to 5 do B[i]:=B[i]+Y[j]*FI(i,j); writeln("__________________________"); writeln(‘Матрица Коэффициентов Bi "); For i:=1 to 3 do write(B[i]:5:2, " "); for i:=1 to 2 do for k:=i+1 to 3 do Q:=a/a; writeln("g=",Q); for j:=i+1 to 3 do a:=a-Q*a; writeln("a=",a); b[k]:=b[k]-Q*b[i]; writeln("b=",b[k]); x1[n]:=b[n]/a; for i:=2 downto 1 do for j:=i+1 to 3 do sum:=sum-a*x1[j]; x1[i]:=sum/a; writeln("__________________________"); writeln ("Значение коэффициентов "); writeln("_________________________"); for i:=1 to 3 do writeln(" C",i,"=",x1[i]); for i:=1 to 5 do y1[i]:= x1[k]*FI(k,i) + x1*FI(k+1,i) + x1*FI(k+2,i); delta[i]:=abs (y[i]-y1[i]); writeln (y1[i]); for i:=1 to 3 do write (x1[i]:7:3); for i:=1 to 5 do if delta[i]>maxD then maxD:=delta; writeln ("max Delta= ", maxD:5:3); 5 . Результаты машинного расчета С 1 =1,511; С 2 =-1,237; С 3 =-1,11; Вывод В процессе выполнения курсовой работы я практически освоил типовые вычислительные методы прикладной математики, совершенствовал навыки разработки алгоритмов и построения программ на языках высокого уровня. Получил навыки, являющиеся основой для использования вычислительных методов прикладной математики и техники программирования в процессе изучения всех последующих дисциплин при выполнении курсовых и дипломных проектов. |