Пример использования метода наименьших квадратов

ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНИХ РАБОТ

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

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

Теоретические сведения и выводы должны быть написаны от руки.

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

ТЕМА 1. АППРОКСИМАЦИЯ ФУНКЦИЙ ПО МЕТОДУ НАИМЕНЬШИХ КВАДРАТОВ (МНК)

Лабораторная работа № 1

Метод наименьших квадратов

В случае аппроксимации полиномами

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

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

1. Изучить теоретические сведения.

2. Провести ручной счёт построения аппроксимирующего многочлена первой степени для таблично заданной функции.

Используя пакеты MathCad и MatLab:

3. Написать подпрограммы построения аппроксимирующего многочлена для таблично заданной функции.

4. Определить невязки аппроксимации.

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

6. Проверить вычисления с помощью встроенных функций.

7. Построить графики аппроксимирующих полиномов и заданной функции.

Теоретические сведения

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

МНК применяется:

1) При построении эмпирических формул (получение путём эксперимента). Аналитическое построение дискретной зависимости между x и y.

2) Аппроксимация функции (приближение);

3) Обработка статистического материала (выделение сигнала на фоне помех).

Для использования МНК должна быть известна либо табличная зависимость xk, yk, либо функция, вид которой мы хотим упростить.

Описание метода

Пусть в результате эксперимента получена таблица 1 значений функции:

Таблица 1

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru
Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Требуется аппроксимировать эту функцию многочленом степени Пример использования метода наименьших квадратов - student2.ru ( Пример использования метода наименьших квадратов - student2.ru ):

Пример использования метода наименьших квадратов - student2.ru .

Идея метода: подобрать значения параметра an= ( Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru ,…, Пример использования метода наименьших квадратов - student2.ru ) таким образом, чтобы функция Пример использования метода наименьших квадратов - student2.ru

была минимальной.

С учетом необходимых условий существования экстремума функции нескольких переменных получаем систему уравнений для определения неизвестных Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru , …, Пример использования метода наименьших квадратов - student2.ru :

Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru , (1)

Доказано, что система (1) имеет единственное решение, при котором Пример использования метода наименьших квадратов - student2.ru принимает минимальное значение.

Рассмотрим частные случаи.

Частный случай 1. Пусть Пример использования метода наименьших квадратов - student2.ru , т.е. функцию аппроксимируем многочленом первой степени:

Пример использования метода наименьших квадратов - student2.ru .

Система уравнений для вычисления параметров Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru имеет вид:

Пример использования метода наименьших квадратов - student2.ru ;

Пример использования метода наименьших квадратов - student2.ru . (2)

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

Частный случай 2. Пусть Пример использования метода наименьших квадратов - student2.ru , т.е. функцию аппроксимируем многочленом второй степени:

Пример использования метода наименьших квадратов - student2.ru .

Система уравнений для определения параметров Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru , Пример использования метода наименьших квадратов - student2.ru имеет следующий вид:

Пример использования метода наименьших квадратов - student2.ru ;

Пример использования метода наименьших квадратов - student2.ru ; (3)

Пример использования метода наименьших квадратов - student2.ru .

Решив систему, можем записать многочлен Пример использования метода наименьших квадратов - student2.ru . Вычисления коэффициентов систем (2) и (3) запишем в виде табл. 2:

Таблица 2

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru
Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru
Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru
... ... ... ... ... ... ... ...
Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru
  Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Преимущество МНК:

При построении аппроксимирующего многочлена по МНК используются все точки таблицы. Если исходные данные получены с некоторыми погрешностями, то МНК сглаживает их.

Встроенные функции для реализации метода:

Пакет MathCad:

1.slope (vx,vy) – возвращает число а, равное наклону аппроксимирующей функции

2. intercept(vx,vy) – возвращает число b, равное смещению по оси ординат аппроксимирующей функции.

Вызов: y=slope(vx,vy)*x+intercept(vx,vy) –для линейной функции.

Пакет MatLab:

Пункт Tools основного меню графического окна содержит две команды:

Basic Fitting – основные методы аппроксимации;

Data Statistic – статичтические параметры данных.

В окне Basic Fitting можно выбрать метод аппроксимации, при этом соответствующая кривая появляется в графическом окне. Активизировав параметр Show equations (показать уравнения), получим выражение аппроксимирующей функции непосредственно в графическом окне. Оценку погрешности аппроксимации можно получить, если активизировать режим Plot residuals (показать норму погрешностей), выводящий столбцовый или линейчатый график погрешностей в узловых точках. Параметр Show norm of residuals (показать норму погрешности) позволяет вывести в окно погрешности норму, характеризующую среднеквадратичную ошибку.

Команда Tools/Data statistics выводит на экран окно, содержащее ряд статистических характеристик. Отметив соответствующую характеристику, можно визуализировать её в графическом окне.

Вариант решения

Функция задана таблично:

Пример использования метода наименьших квадратов - student2.ru -2 -1
Пример использования метода наименьших квадратов - student2.ru 1.8 1.8 2.5 3.1 3.7 2.2 1.9

1. Введём заданную функцию в виде векторов:

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

2. Решение задачи в среде MathCad:

2.1. Рассмотрим подпрограмму для построения аппроксимирующего многочлена:

PolinomMNK(x,y,k,n)- функция для нахождения коэффициентов многочлена, где k-степень полинома, n-количество точек:

 
  Пример использования метода наименьших квадратов - student2.ru

Aproxim(x,A,n)- функция для нахождения аппроксимирующего многочлена. A- матрица коэффициентов многочлена. Пример использования метода наименьших квадратов - student2.ru

2.2. Рассмотрим формулу для определения невязок:

Пример использования метода наименьших квадратов - student2.ru

где vj=PolinomMNK(x,y,n,k)

2.3.Найдём многочлены первой и второй степеней, аппроксимирующие заданную функцию:

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Определим невязки аппроксимации:

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

2.4. Проверим вычисления с помощью встроенных функций:

Найдём коэффициенты a и bмногочлена первой степени с помощью встроенных функций slope(x,y) и intercept(x,y)

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Найдём коэффициенты c, d и e многочлена второй степени с помощью встроенных функций Given и Find:

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

2.5. Построим графики полученных многочленов и заданной функции:

Пример использования метода наименьших квадратов - student2.ru

где yi - заданные значения функции.

3. Реализация в среде MatLab

3.1. Напишем подрограмму для нахождения коэффициентов многочлена:

function res=Polinom(x,y,k,n);

A=zeros(k+1,1);

x1=zeros(n+1,k+1);

for i=1:n+1

for j=1:k+1

x1(i,j)=x(i,1)^(j-1);

end

end

A=inv(x1.'*x1)*x1.'*y;

res = A;

return

x,y- заданный набор точек; k-степень полинома, n- количество точек.

3.2. Рассмотрим функцию для нахождения аппроксимирующего многочлена для заданной функции:

function res=Aproxim(x,A,k);

n=length(x);

for j=1:n

sum=0;

for i=1:k+1

sum=sum+A(i)*x(j)^(i-1);

end;

y(j)=sum;

end;

res=y;

return

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

3.3. Построим графики многочленов первой и второй степеней, аппроксимирующих заданную функцию:

>> x=[-2;-1;0;1;2;3;4];

Пример использования метода наименьших квадратов - student2.ru >> y=[1.8;1.8;2.5;3.1;3.7;2.2;1.9];

>> A1=Polinom(x,y,1,6)

A1 = 2.3464

0.0821

>> A2=Polinom(x,y,2,6)

A2 =2.7929

0.3798

-0.1488

>> xx=-2:0.001:6;

>> f1=Aproxim(xx,A1,1);

>> f2=Aproxim(xx,A2,2);

>> plot(x,y,'O',xx,f1,xx,f2)

>> plot(x,y,'O',xx,f1,xx,f2)

Использование Basic Fitting:

Пример использования метода наименьших квадратов - student2.ru Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов

В «Основах химии» Д.И. Менделеева приводяться данные о растворимости азотно-кислого натрия NaNo3 в зависимости от температуры воды. В 100 частях воды растворяется следующее число условных частей NaNO3 при соответствующих температурах:

0º 4º 10º 15º 21º 29º 36º 51º 68º

66,7 71,0 76,3 80,6 85,7 92,9 99,4 113,6 125,1 (4)

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

y=a + bx,

где x- температура в градусах, а y- растворимость в условных частях на 100 частей воды. Однако, если мы попытаемся определить коэффициенты a и b, полагая x=xi=0º, 4º, 10º,… и y=yi=66,7;71,0;76,3,…, то придём к 9 уравнениям

yi=a+bxi (i=1, 2, …,9) (5)

относительно двух величин a и b, причём эти уравнения окажутся несовместными. Эта несовместность уравнений может объясняться либо несовершенством теории, предписывающей линейность зависимости, либо погрешностями наблюдений, либо тем и другим вместе. Мы можем, однако, думать, что количественные поправки к теории и наблюдениям невелики, и пытаться если не точно, то приближённо выразить наблюдения линейной зависимостью. Естественно тогда постараться найти такие значения коэффициентов a и b, для которых абсолютные величины «ошибок»

Пример использования метода наименьших квадратов - student2.ru = yi – (a+bxi) (i=1, 2, … , 9), (6)

были бы в каком-то смысле «малыми в совокупности».

Метод наименьших квадратов в данном частном случае состоит в определении a и b из условия

Пример использования метода наименьших квадратов - student2.ru (7)

Для нахождения точек (a, b), удовлетворяющих (7), составим уравнения:

Пример использования метода наименьших квадратов - student2.ru

Пример использования метода наименьших квадратов - student2.ru

С помощью описанной ранее функции PolinomMNK найдём коэффициенты a и b:

Пример использования метода наименьших квадратов - student2.ru ,

Пример использования метода наименьших квадратов - student2.ru

где x1и y1взяты из (4).

Получим полином первой степени:

y=67.508+0.871*x

(что и было полученно Менделеевым ещё в 1881 г.).

Варианты лабораторных работ

Наши рекомендации