Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MU_LR_VychMat_230400

.pdf
Скачиваний:
17
Добавлен:
10.05.2015
Размер:
2.14 Mб
Скачать

7. ЗАНЯТИЕ 6. СРЕДНЕКВАДРАТИЧЕСКОЕ ПРИБЛИЖЕНИЕ ФУНКЦИЙ

7.1.ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

7.1.1.Постановка задачи среднеквадратического приближения

Пусть на отрезке [a,b]

задана сетка

a x0

x1 ... xN b

и в ее узлах заданы

значения f(x): y0 f (x0 ) , y1

f (x1 ) ,…, yi

f (xi ) ,…, yN

f (xN ) . Пусть на [a,b] задано

также некоторое семейство

функций F(x,c ),

c (c ,...,c )T

- вектор параметров,

 

 

 

0

n

 

значение которого определяет конкретную функцию из этого семейства, причем n N .

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

сумма

квадратов отклонений аппроксимирующей функции F(x,c ) от аппроксимируемой

f (x) в

узлах аппроксимации была минимальна:

 

 

 

c * arg min J (c ) ,

(7.1)

 

 

 

c

 

 

 

 

 

 

 

N

 

где J (c )

F (xi ,c ) f (xi ) 2 - критерий среднеквадратического приближения.

 

 

i 0

 

Задачу среднеквадратического приближения также называют задачей регрессионного анализа.

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

функции n 1 меньше (и, как правило, существенно), чем число узлов аппроксимации

N 1. В связи с этим в общем случае невозможно подобрать параметры

c0 ,...,cn так,

чтобы функция F(x,c ) точно проходила через все узлы xi ,i 0,..., N ,

т.е. чтобы

выполнялись условия интерполяции.

 

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

Задача (7.1) является задачей оптимизации функции нескольких аргументов при

отсутствии

 

ограничений.

При

 

этом заметим, что

точка

минимума

критерия J (c )

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

совпадает с точкой минимума подкоренного выражения F (xi ,c ) f (xi ) 2 .

 

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

В связи с этим для нахождения стационарной точки (подозрительной на экстремум)

для функции J (c ) продифференцируем

подкоренное

выражение

по каждой из

переменных c0 ,...,cn :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

2

 

 

N

 

F (xi ,c )

 

 

 

 

 

 

F (xi ,c ) f (xi )

 

 

2

F (xi

,c ) f (xi

)

 

 

, k

0,..., n,

 

cj

 

 

cj

 

i 0

 

 

 

i 0

 

 

 

 

Приравняв полученные производные к нулю, получим систему уравнений для нахождения координат стационарной точки:

61

N

F (xi ,c )

N

F (xi ,c )

 

 

F (xi c )

 

f (xi )

 

, k 0,..., n .

(7.2)

cj

cj

i 0

i 0

 

 

Конкретный вид системы уравнений определяется видом аппроксимирующей функции F(x,c ) .

Поскольку минимизируемая функция является квадратичной, то найденная путем решения системы стационарная точка с координатами c0 ,...,cn является точкой минимума критерия J (c ) и, соответственно, решением задачи среднеквадратичного приближения

(7.1).

7.1.3.Среднеквадратическое приближение многочленами

Вкачестве параметрического семейства F(x,c ) может быть выбрана любая

подходящая (согласующаяся с исходными данными) эмпирическая формула, например,

F(x,c

 

,c ) c

 

ec1x ,

F(x,c

 

,c ,c

 

) c

 

c ln(c

 

x) ,

F (x,c

 

,c )

 

 

c0

и т.д.

0

0

0

2

0

2

0

 

 

 

 

1

 

 

1

 

1

 

 

1

1

c1x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

n

 

F (x,c ) ck k (x) ,

(7.3)

k 0

где k (x) , k=0,1,…,n – фиксированная система базисных функций.

В этом случае система уравнений (7.2) будет системой линейных алгебраических уравнений и примет вид:

 

 

n

 

 

 

 

 

ck

( k , j ) ( f , j ) ,

 

(7.4)

 

 

k 0

 

 

 

N

 

 

 

 

 

где ( k , j ) k (xi ) j (xi )

-

скалярное произведение

функций k (x) и

j (x) на

i 0

 

 

 

 

 

 

 

 

N

 

 

множестве узлов xi ,i 0,..., N

и ( f , j ) f (xi ) j (xi )

- соответственно,

скалярное

 

 

 

i 0

 

 

произведение функций f (x)

и j (x)

на том же множестве узлов xi ,i 0,..., N .

 

Определитель матрицы коэффициентов при неизвестных системы (7.4), составленный из скалярных произведений, называется определителем Грамма. В теории функций доказывается, что он отличен от нуля тогда и только тогда, когда система функций k (x) , k=0,1,…,n является линейно независимой.

Таким образом, для того, чтобы задача среднеквадратического приближения многочленом по базису функций k (x) , k=0,1,…,n имела единственное решение необходимо и достаточно, чтобы система функций k (x) , k=0,1,…,n была линейно независимой на множестве узлов аппроксимации. Наиболее типичными примерами линейно независимых систем функций является система степенных 1, x,..., xk и система тригонометрических базисных функций 1, sin(x) , cos(x) , sin(2x) , cos(2x) ,… .

Если же система базисных функций является не только линейно независимой, но и ортогональной или ортонормированной на множестве узлов аппроксимации, то решение

62

системы (7.4) существенно упрощается, поскольку она распадается на n 1 независимых уравнений.

Две функции k (x) и j (x) называются ортогональными на некотором множестве точек x0 ,..., xN , среди которых нет совпадающих, если их скалярное произведение на этом множестве точек равно нулю:

N

 

 

( k , j ) k (xi ) j (xi ) 0

при k j .

(7.5)

i 0

 

 

Система функций k (x) , k=0,1,…,n называется ортогональной на множестве точек x0 ,..., xN , если скалярные произведения всех пар несовпадающих функций из базисной системы на данном множестве точек равны нулю:

N

 

( k , j ) k (xi ) j (xi ) 0 , k, j 0,...,n, k j .

(7.6)

i 0

 

Система функций k (x) , k=0,1,…,n называется ортонормированной на множестве точек x0 ,..., xN , если она является ортогональной на этом множестве точек и норма каждой из функций равна единице, т.е.

|| k (x) || k , k 1 , k 0,..., n

Вслучае ортогональной системы базисных функций коэффициента аппроксимирующего многочлена могут быть найдены по формулам cj ( f , j ) / ( j , j ) , а

вслучае ортонормированной системы еще проще: cj ( f , j ) .

7.1.4.Система многочленов, ортогональных на равномерной сетке

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

полиномы

Чебышева

P

(t), P

(t),..., P

(t)

степеней

0,1,...,n,n N , ортогональные и

 

 

0,N

1,N

 

 

n,N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

отличные от нуля на равномерной сетке T {0,1,..., N} и определяющиеся формулой:

 

 

Pk ,N (t) k

 

 

 

 

 

t

[ j ]

 

 

 

 

 

 

 

 

 

( 1) j Ckj Ckj j

 

 

, k 0,..., n ;

(7.7)

 

 

 

 

[ j ]

 

 

 

 

 

j 0

 

 

 

 

N

 

 

 

 

 

 

 

 

t[ j ]

t(t 1)...(t j 1),

N[ j ]

N(N 1)...(N j 1);

 

 

C j

k!

 

;

C j

 

 

(k j)!

 

(k j)!

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

j!(k j)!

k j

 

j!(k j j)!

 

 

j!k!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|| Pk ,N (t) ||

 

(N k 1)[k 1]

 

Норма многочленов Чебышева:

 

 

 

.

 

 

 

(2k 1)N[k ]

 

Для

перехода к

произвольной

равномерной сетке

 

X {x0 ,..., xN } воспользуемся

заменой переменных:

t (x x0 ) / h ,

которая

переводит

точки множества X

в точки

множества

T {0,1,..., N} .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда аппроксимирующий полином, составленный из полиномов Чебышева примет

вид:

63

n

x x0

 

 

1

f j , Pk ,N ,

 

 

F (x,c ) Qn (x) ck Pk ,N

 

,

ck

 

k 0,..., n .

(7.8)

 

2

k 0

 

h

 

 

|| Pk ,N (t) ||

 

 

7.1.5. Работа с файлами в MathCAD

Для общения с внешними файлами данных в MathCAD имеется несколько разных способов. Рассмотрим функции работы с текстовыми файлами.

1)- READPRN(―file‖) – чтение данных в матрицу из текстового файла;

-WRITEPRN(―file‖) – запись данных в текстовый файл;

-APPENDPRN(―file‖) – дозапись данных в существующий текстовый файл, где file – путь к файлу.

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

MathCAD.

Пример:

а) б)

Рисунок 7.1 – а) текстовый файл и б) считывание данных из него при помощи функции

READPRN

2) Начиная с MathCAD 12 появилась возможность импорта данных из внешнего файла при помощи мастера импорта данных (Data Import Wizard), позволяющего осуществить импорт в нужном формате в диалоговом режиме с подсказками.

Для вызова мастера можно выбрать команду верхнего меню Insert | Component (Вставка | Компонент), а затем указать в списке тип компонента Data Import Wizard. При этом появится окно Мастера, которое в пошаговом режиме позволит осуществить считывание нужной информации (Рисунок 7.2).

64

Рисунок 7.2 – Считывание файла при помощи мастера импорта данных

3) Начиная с MathCAD 12 также появилась функция READFILE, которая позволяет автоматизировать процедуру считывания данных из файла и имеет следующий формат:

READFILE ("file","type",[colwidth,rows,cols,emptyfill]) — возвращает матрицу с элементами, считанными из внешнего файла данных:

"file" — название файла (включая путь к нему на диске);

"type" — тип файла ("delimited" или "Excel");

colwidth — ширина столбца данных, считываемого из файла в случае выбора в качестве предыдущего параметра типа "fixed", т. е. с фиксированной шириной данных;

rows — начальная строка импорта данных или двухкомпонентный вектор, задающий интервал импорта строк;

cols — начальный столбец импорта данных или двухкомпонентный вектор, задающий интервал импорта столбцов;

emptyfill — значение, которое будет использовано для замены отсутствующих данных (пустот в файле). Для него можно использовать значение НеЧисло (NaN)

Пример:

Рисунок 7.3 – Пример использования функции READFILE для чтения данных из файла

65

7.1.6.Среднеквадратическое приближение полиномами произвольной степени

вMathCAD

ВMathcad среднеквадратическое приближение полиномом (полиномиальная регрессия) осуществляется комбинацией встроенной функции regress и полиномиальной интерполяции:

regress (х, у, k) — вектор коэффициентов для построения полиномиальной регрессии данных;

interp(s,x,y, t) — результат полиномиальной регрессии:

s=regress(х,у,k);

x — вектор действительных данных аргумента, элементы которого расположены в порядке возрастания;

у — вектор действительных данных значений того же размера;

k — степень полинома регрессии (целое положительное число);

t — значение аргумента полинома регрессии;

ВНИМАНИЕ!

Для среднеквадратического приближения полиномом k-й степени необходимо наличие, по крайней мере, (k+1) точек данных. Для построения полиномиальной регрессии после функции regress обязательно нужно использовать функцию interp.

Рисунок 7.4 – Пример среднеквадратического приближения полиномами разных степеней

66

7.2.ЗАДАНИЕ

1.Выполнить среднеквадратическое приближение исходной функции f (x) ,

заданной таблично, одной из функций

 

F(x,c

0

,c ) c

0

ec1x , F(x,c

0

,c ,c

2

) c

0

c ln(c

2

x) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

1

 

 

F(x,c

0

,c ) c

0

c x ,

F(x,c

0

,c ,c

2

) c

0

c x c

2

x 2

,

 

F(x,c

0

,c ,c

2

) c

0

c sin(c

2

x)

или

 

1

 

1

 

 

1

 

1

 

 

 

 

 

 

1

 

1

 

 

 

 

 

F (x,c0

,c1)

 

 

c0

 

, наиболее согласующейся с исходными данными.

 

 

 

 

 

 

 

 

 

 

c1x

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблицу значений исходной функции для варианта с номером N необходимо взять из прилагающегося файла с названием varN.txt.

План выполнения задания 1:

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

2)Найти производные критерия среднеквадратического приближения по каждому из параметров c0 ,c1 ,c2 и приравнять к нулю, получив систему уравнений вида (7.2).

3)Полученную в результате выполнения п.2. систему уравнений решить в MathCAD при помощи блока Given … Find (см. раздел «Решение СЛАУ в MathCAD»).

4)Записать полученную аппроксимирующую функцию с учетом найденных коэффициентов.

5)Построить средствами MathCAD на одном графике результирующую аппроксимирующую функцию и узлы аппроксимации.

2.По точкам x0 ,..., x4 исходных данных из файла varN.txt выполнить

среднеквадратическое приближение по степенному базису полиномом второй степени Q2 (x) 1) без использования ортогональных полиномов и 2) с использованием ортогональных полиномов Чебышева.

Рекомендации по выполнению задания 2.

1)при аппроксимации многочленом по не ортогональному базису необходимо составить СЛАУ вида (7.4) и решить ее любым способом (можно в MathCAD при помощи функции lsolve). В качестве результата привести найденную функцию и ее график с указанием узлов аппроксимации.

2)решение выполнить по формулам (7.7)-(7.8). В качестве результата привести найденную функцию и ее график с указанием узлов аппроксимации.

 

3.

По точкам

x0 ,..., x4 выполнить среднеквадратическое приближение полиномами

P (x), P (x) , P (x)

и

P (x)

средствами MathCAD. Для каждого полинома вычислить его

1

2

3

 

4

 

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

67

8. ЗАНЯТИЕ 7. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ

8.1.ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

8.1.1.Постановка задачи численного интегрирования

Пусть дана функция f (x) , непрерывная на [a,b] . Требуется найти значение определенного интеграла

b

I f (x)dx .

a

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

8.1.2. Концепция численного интегрирования

Все численные методы строятся на том, что подынтегральная функция приближенно заменяется (интерполируется) более простой функцией (как правило, полиномом 0-го,1- го, 2-го или более высокого порядка), от которой интеграл берется легко. В результате получаются формулы интегрирования, называемые квадратурными, в виде взвешенной суммы ординат подынтегральной функции в отдельных точках xi с весами i :

b

f (x)dx i f (xi ) .

a i

8.1.3. Квадратурные формулы для сетки с равноотстоящими узлами. Квадратурные формулы Ньютона-Котеса

Разобьем отрезок интегрирования [a,b] на n равных отрезков при помощи

равноотстоящих точек:

x a, x

x

 

i h,

i 1,...,n 1, x

b , где h

b a

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

i

 

0

 

 

 

 

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заменим подынтегральную функцию f (x) интерполяционным полиномом Лагранжа

 

(x) n

n

 

x

xj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ln

f (xi )

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 0

j 0, j i xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введем обозначения q

 

x x0

,

 

q

n 1

q(q 1)..(q n)

,

dq

dx

.

 

 

 

 

 

 

 

h

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С учетом этих обозначений, а также того,

что xi

xj

x0 i h x0 j h h(i j) ,

 

 

n

( 1)

n i

q

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

получим: Ln

(x)

 

 

 

 

 

f (xi ) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i!(n i)!

q i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

xn

 

 

 

 

 

 

 

n

 

 

( 1)

n i xn

n 1

 

 

 

 

 

 

 

b a

 

 

Тогда I f (x)dx Ln (x)dx f (xi )

 

 

q

 

dx

и т.к. dx hdq

и h

,

 

 

 

 

 

 

 

 

a

 

 

 

x

 

 

 

 

 

 

i 0

 

 

i!(n i)! x q i

 

 

 

 

 

 

 

n

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

то

68

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

I (b a) Hi f (xi ) ,

(7.9)

 

 

 

 

 

 

 

 

 

 

i 0

 

 

 

 

1 ( 1)n i

n q n 1

i 0,1,..., n - постоянные, называемые коэффициентами

где

Hi

 

 

 

 

 

 

dq ,

n i!(n i)!

 

 

 

 

q i

 

 

 

 

 

 

 

 

 

0

 

 

 

 

Котеcа. Они не зависят ни от функции, ни от конкретных значений узлов и, следовательно, могут быть вычислены заранее для каждого значения n.

n

 

 

 

Свойства коэффициентов Котеса: Hi

1,

Hi Hn i .

(7.10)

i 0

 

 

 

Выбирая различные значения n 0,1,... (степень интерполирующего

полинома),

можно получить различные частные случаи квадратурных формул Ньютона-Котеса. Однако на практике не применяют формулы для n 8 , поскольку они становятся вычислительно неустойчивыми.

8.1.4. Частные случаи квадратурных формул Ньютона-Котеса. Простые формулы прямоугольников, трапеций и парабол (Симпсона)

Формулы прямоугольников

Подынтегральную функцию f (x) на отрезке интегрирования [a,b] заменим интерполяционным многочленом нулевого порядка (n 0) , построенным по значению

 

 

 

a b

 

 

a b

f (x) в средней точке

x0

 

, т.е.

P0

(x) f (x0 ) f

 

.

2

 

 

 

 

 

 

 

2

Это вырожденный случай, когда будет всего один коэффициент Котеса, который, в соответствии со свойствами (7.10), равен единице: H0 1.

В этом случае интеграл функции f (x) на [a,b] вычисляется по приближенной формуле:

b

a b

 

 

 

y(x)dx (b a) y

 

.

 

a

 

2

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

f (x)

f (x)

fa b

2

a

a b

b

x

 

2

 

 

Рисунок 8.1 – Геометрическая интерпретация метода средних прямоугольников

69

Заметим, что формулы левых прямоугольников

b

f (x)dx (b a) f (a) ,

a

и правых прямоугольников

b

f (x)dx (b a) f (b) ,

a

не являются частными случаями формулы Ньютона-Котеса (7.9) и имеют худший порядок точности.

2) Формула трапеций

В данном случае подынтегральная функция f (x) на отрезке [a,b] заменяется интерполяционным полиномом первого порядка (n 1) , построенным по значениям f (x)

в крайних точках отрезка x0 a и x1

b .

 

 

 

 

 

 

Найдем коэффициенты Котеса.

 

 

 

 

 

 

 

 

 

 

 

1 ( 1)1 0

1 q(q 1)

q2

 

 

1

1

 

 

1

 

 

 

 

 

H0

 

 

 

 

 

 

dq

 

q

 

 

 

 

1

 

 

,

1 0!(1 0)!

0 q 0

2

2

2

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

1

 

( 1)1 1

 

1

q(q 1)

dq

q2

 

 

1

 

1

.

 

 

 

 

 

 

 

 

 

1

11!(1

1)!

 

q 1

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

H и

 

 

 

0

 

1

 

 

1

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H

 

H

 

 

H

 

 

1 , т.е. свойства (7.10) выполняются.

0

0

 

 

 

 

1

 

 

 

1

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Квадратурная формула в данном случае примет вид:

b

1

 

1

 

 

b a

f (a) f (b) .

 

 

 

I f (x)dx (b a)

 

f (a)

 

f (b)

 

 

 

 

 

a

2

 

2

 

 

2

 

 

 

 

 

 

 

 

 

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

f (x)

f (a)

f (x)

 

f (b)

 

a b x

Рисунок 8.2 – Геометрическая интерпретация метода трапеций

3) Формула парабол (Симпсона)

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

параболой (n 2) , которая строится по трем точкам x0 a , x1 a b и x2 b . 2

Коэффициенты Котеса в данном случае равны:

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]