Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / sidorov / Сидоров.DOC
Скачиваний:
30
Добавлен:
10.12.2013
Размер:
1.68 Mб
Скачать

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

Y

Y(x)

*

*

*

0 X

Пусть для некоторых значений аргумента "хi" известны значения "yi". Функция "Y", значения которой Y(xi) можно использовать вместо "yi", называется аппроксимирующей функцией. Как правило, аппроксимация применяется для получения функциональной зависимости, описывающей экспериментально полученные значения "yi" при различных "хi".

Рассмотрим разработанный Гауссом метод наименьших квадратов, при котором получается наилучшее приближение функции Y(xi) к значениям yi.

Метод заключается в аппроксимации "N" значений "yi" полиномом степени "m":

Y(x) = A0 + A1 *x + A2 *x2 + . . . + Am *xm для которого сумма квадратов отклонений Di = Y(xi)-yi минимальна. Коэффициенты A0, A1, A2, . . . , Am находятся при решении системы уравнений: S/A0=0; S/A1=0; S/A2=0; . . . S/Am=0;

где S = D12 + D22 + D32 + . . . + DN2;

В случае аппроксимации линейной функцией Y(x)= A0 + A1*x; для определения коэффициентов A0 и A1 необходимо решить систему двух уравнений:

N*A0 + [X]*A1 = [Y]; [X]*A0 + [X2]*A1 = [XY];

где [X]= x1 + x2 + x3 + ... + xN; [X2]= x12 + x22 + x32 + ... + xN2;

[Y]= y1 + y2 + y3 + ... + yN; [XY]= x1*y1+ x2*y2+ x3*y3+...+ xN*yN;

Решая систему, получаем:

A0 = ([XY]*[X]-[Y]*[X2])/([X]*[X] - N *[X2]);

A1 = ([X] *[Y]-[XY]*N) /([X]*[X] - N *[X2]);

Практическое задание N 2. 30

1. Составить процедуру линейной аппроксимации по методу наименьших квадратов массива значений, полученных экспериментально в шести сериях по 10 замеров согласно зависимости:

1. 1. yi= A + B*xi + 0. 5-Random; где A=10; B=3; C=2; xi=8*i;

1. 2. yi= A + sin(xi)*Random; где A=15; xi=i; где i=1, 2, . . . , 6.

Нарисовать график функции Y(x) = A0 + A1*x; и экспериментальные точки yi.

152

2. 5. 3. Численный расчет интегралов

Вычисление определенного интеграла исторически обусловлено задачей расчета площадей различных фигур. Согласно “теореме о среднем” определенный интеграл равен произведению длины отрезка интегрирования на значение подынтегральной функции в некоторой точке "xi" этого отрезка:

b f(xi)

S = f(x)*dx =(b-a)*f(xi); a <= xi <= b,

a

a xi b

где a и b - верхний и нижний пределы интегрирования.

Таким образом, определенный интеграл равен площади прямоугольника с основанием длиной "b-a" и высотой "f(xi)". Здесь значение xi, а значит и f(xi) неизвестно. Однако, если отрезок интегрирования разбить на много малых отрезков "dxi", в которых значение функции f(xi) можно принять постоянным, то

b

S = f(x)*dx = f(x1)*dx1 + f(x2)*dx2 + f(x3)*dx3 + ... + f(xN)*dxN;

a

где dx1 + dx2 + dx3 + . . . + dxN = b - a;

Вычисление определенного интеграла по приведенной выше формуле называется численным интегрированием. Численное интегрирование применяют при решении различных задач, например: при определении площадей сложных геометрических фигур, определении работы сил, расчете длины траектории точки и в других случаях, когда подынтегральная функция "f(x)"задана по точкам, имеет сложное аналитическое выражение или ее первообразная не определяется аналитически. Сущность численных методов интегрирования состоит в различной замене (интерполяции) сложной подынтегральной функции на малых отрезках простой функцией, либо в представлении подынтегральной функции в виде сходящегося бесконечного ряда.

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

При равномерном разбиении отрезка [a, b] на "N" малых отрезков (интервалов) необходимо определять значения функции "f(xi)" в "M" точках внутри отрезка [a, b].

Метод прямоугольников основан на интерполяции функции на малом отрезке постоянным значением. Кривую f(x) на каждом малом интервале "h" заменяют горизонтальной линией, пересекающей кривую в середине отрезка, при этом M=N. Интеграл вычисляется по формуле:

S1 = f1 * h; - на одном отрезке.

S =( f1 + f2 + ... + fM )*h; - на M отрезках.

Здесь fi = f(xi); h = (b-a)/N; xi = a - h/2 + h*i; i = 1, 2, . . . ,

153

Y Y Y Y

f (x) f (x) f (x) f(x)

a x1 x2 x3 b X a x1 x2 b X a x1 x2 x3 b X a x1 x2 x3 x4 x5 b X

Метод трапеций состоит в том, что кривую f(x) на каждом малом интервале "h" заменяют отрезком прямой, соединяющим точки кривой f(x) на краях этого интервала, при этом M=N-1. Интеграл вычисляется по формуле:

S1 =((fa + fb)/2)* h; - на одном отрезке.

S = ((fa + fb)/2 + f1 + f2 + ... + fM )*h; - на N отрезках.

Здесь fi = f(xi); h = (b-a)/N; xi = a + h*i; i = 1, 2, . . . , M.

Метод Симпсона основан на интерполяции функции на малом отрезке квадратичной параболой, проходящей через крайние и среднюю точки кривой f(x). При этом M=2*N-1, а интеграл вычисляется по формуле:

S1 =((fa + 4*f1 + fb)/3)* h - на одном отрезке.

S=(fa+fb+ 2*(f2+f4+...+fM-2)+ 4*(f1+f3+...+fM-1))*h/3; - на N отрезках.

Здесь fi = f(xi); h = (b-a)/(2*N); xi = a + h*i; i = 1, 2, . . . , M.

Метод "трех восьмых" основан на интерполяции функции на малом отрезке кубической параболой, проходящей через крайние и две равноотстоящие по "x" точки кривой f(x). При этом M=3*N-1, а интеграл вычисляется по формуле:

S1 =((fa + 3*(f1+f2) + fb)*3/8)* h - на одном отрезке.

S = (fa+fb+ 2*(f3+f6+...+fM-3)+ 3*(f1+f2+...+fM-1))*3*h/8; - на N отрезках.

Здесь fi = f(xi); h = (b-a)/(3*N); xi = a + h*i; i = 1, 2, . . . , M.

Операторы для вычисления интеграла в этом случае имеют вид:

m:= 3*n-1; h:= (b-a)/(3*n); s:= f(a) + f(b);

for i:=1 to m do begin

x:= a+h*i; if i mod 3 = 0 then S:= S+2*f(x) else S:= S+3*f(x)

end;

S:= 3/8*S*h;

Отметим, что методы прямоугольников и трапеций точны для многочленов первой степени, формулы Симпсона и "трех восьмых" - для многочленов третьей степени.

Практическое задание N 2. 31

1. Рассчитать определенные интегралы с заданной погрешностью двух последовательных приближений от функций: f(x) = sin(x); на интервале [0. . pi], и f(x) = cos(x); на интервале [-pi/2 . . pi/2]. Сравнить результат с точным значением интеграла от функции.

2. Показать на примерах точность квадратурных формул при n=1. Например: метод прямоугольников и трапеций для f( x) = x+5; на интервале [ 1. . 3], формулы Симпсона и "трех восьмых" - для f( x) = x3/4 + 1; на интервале [ 0. . 4].

154

Можно построить квадратурные формулы, точные для многочленов k -ой степени. С помощью замены переменных x= (b-a)*u/2 + (a+b)/2; и V(u) = (b-a)*f(x)/2; получаем:

b 1

S = f(x)*dx = V(u)du = A1*V1 + A2*V2 + A3*V3 + ... + AM*VM ;

a -1

где Vi = V(ui); Такого вида формулы получены Чебышевым и Гауссом. Для различных значений "M" (числа точек интегрирования) приводятся таблицы данных для коэффициентов "Ai" и аргументов "ui". В формуле Чебышева A1=A2=A3=... =AM=2/M. Формула Чебышева точна для многочленов M -ой степени (при четных M - для многочленов M+1 -ой степени), формула Гаусса - для многочленов 2*M-1 -ой степени. Приведем данные для M=3 и M=6.

формула Чебышева формула Гаусса

M значение "ui" значение "ui" значение "Ai"

3 0.0 0.0 0.888888

0.707107 0.774597 0.555555

0.266635 0.238619 0.467914

6 0.422519 0.661209 0.360762

0.866247 0.932470 0.171325

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

x

S= e-X dx= x- x3/(3*1!)+ ...+ (-1)k*x(2*k+1)/((2*k+1)*k!); k=0,1,2,...

0

При интегрировании может использоваться формула:

b b a

S = f(x)*dx = f(x)*dx - f(x)*dx;

a 0 0

Практическое задание N 2. 32

1. Составить процедуры расчета определенных интегралов по формулам Чебышева и Гаусса для заданного числа точек интегрирования. Рассчитать численными методами интеграл от функций: f( x) = sin( x); на интервале [ 0. . pi ] и f( x) = cos( x); на интервале [-pi/2 . . pi/2 ] при M=6. Сравнить результат с точным значением и вывести значение относительной погрешности. Провести расчет с разбиением интервала N>1.

2. Показать на примерах точность квадратурных формул при M=3 и при M=6.

Например: по формуле Чебышева для f(x)= x3/4+1; и f(x)= x7/8+5; по формуле Гаусса для f(x)= x5+3; и f(x)= x11/18+5; на интервале [1. . 3]. Функцию можно задать в виде: function f(x:real):real; begin f:=exp(k*ln(x))+c end;

3. Рассчитать интегралы от функций f( x) = sin( x)/ x; и f( x) = (1-cos( x))/ x, применяя разложение тригонометрической функции в ряд (см. стр. ). Рассчитать интегралы на интервале [ pi/2 . . pi ] для числа членов ряда от 1 до 8 и сравнить с данными расчета по формуле Гаусса при M=6.

155