Студопедія
рос | укр

Головна сторінка Випадкова сторінка


КАТЕГОРІЇ:

АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія






ЗАТВЕДЖЕНО


Дата добавления: 2015-10-19; просмотров: 503



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

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

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


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

'nearest' — линейная интерполяция (принята по умолчанию);

Пример (интерполяция функции косинуса):

» x=0:10:y=cos(x);

» xi=0:0.1:10;

» yi= nearest (x,y,xi);

» plot(x,y,'x',xi,yi,'g'),hold on

» yi= nearest (x,y,xi.'spline'):

» plot(x,y,'o ' ,xi,yi,'m').grid,hold off


 

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

'linear' — линейная интерполяция (принята по умолчанию);

Пример (интерполяция функции косинуса):

» x=0:10:y=cos(x);

» xi=0:0.1:10;

» yi= linear (x,y,xi);

» plot(x,y,'x',xi,yi,'g'),hold on

» yi= linear (x,y,xi.'spline'):

» plot(x,y,'o ' ,xi,yi,'m').grid,hold off


 

31. Вычислить значение интеграла при заданных значениях a, b и с помощью метода трапеций встроенными средствами MATLAB.

Для вычисления значений определенных интегралов в пакете MATLAB имеются следующие функции quad( ), quadl( ), trapz( ), cumtrapz( ).

Функция trapz( ) вычисляет интеграл, используя метод трапеций. Синтаксис функции trapz( ):

Z = trapz(Y)% возвращает значение определенного интеграла, в

% предположении, что X=1:length(Y)

Z = trapz(X,Y)% возвращает значение интеграла

% на интервале [X(1),X(N)]

Z = trapz(...,dim)% интегрирует вектор Y, формируемый из чисел,

% расположенных в размерности dim

% многомерного массива

Пример 6.4. Вычисление определенного интеграла с использованием встроенной функции пакета MATLAB.

>> x=0:0.01:pi/2;% задание координат узловых точек

>> y=sin(x);% вычисление значений подынтегральной функции в

% узловых точках

>> trapz(y)% вычисление значения интеграла, в предположении о

% том, что шаг интегрирования равен единице

ans = 99.9195

>> trapz(x,y)% вычисление значения интеграла на отрезке с

% шагом интегрирования 0.01

ans = 0.9992


32. Вычислить значение интеграла при заданных значениях a, b и с помощью метода Симпсона встроенными средствами MATLAB.

Для вычисления значений определенных интегралов в пакете MATLAB имеются следующие функции quad( ), quadl( ), trapz( ), cumtrapz( ), которые имеют следующий синтаксис.

>> q = quad(fun,a,b)% возвращает значение интеграла от функции

% fun на интервале [a,b], при вычислении

% используется адаптивный метод Симпсона.

Пример 6.3. Вычисление интеграла с использованием функций quad.

>> q=quad('sin',0,pi/2,10^-4)

q = 1.0000

>> q-1

ans = -3.7216e-008

>> q=quad('sin',0,pi/2,10^-6,'trace');

E-001 0.0896208493

E-001 0.4966040522

E-001 0.2032723690

E-001 0.2933317183

E-001 0.4137750613

>> q-1

ans = -2.1269e-009

>> [q,fnct]=quad('sin',0,pi/2,10^-6,'trace');

E-001 0.0896208493

E-001 0.4966040522

E-001 0.2032723690

E-001 0.2933317183

E-001 0.4137750613

>> 17


33. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы левых прямоугольников в MATLAB.

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)');% задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1);% шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x);% вычисление значений функции в узлах сетки

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

>> m=1:N-1;

>> y1(m)=y(m);

>> Fl=sum(y1)*dx

Fl =

0.9996

>> Fl-1

ans =

-3.9295e-004


 

34. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы средних прямоугольников в MATLAB.

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)');% задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1);% шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x);% вычисление значений функции в узлах сетки

% Нахождение значения интеграла с помощью

%метода средних прямоугольников

I=inf;

for i=1:n-1

I=I+fz1(a+i*h+h/2);

end

format long e

I1=I*h

D1=abs(I-I1)


 

35. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы левых прямоугольников.

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

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

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

. (6.24)

Из (6.24) видно, что основной член погрешности на каждом отрезке имеет порядок или, в символической записи, . Поскольку полное число отрезков равно

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


 

 

36. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы средних прямоугольников.

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

Для оценки погрешности интегрирования разложим подынтегральную функцию в ряд Тейлора около средней точки

(4.26)

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

(4.27)

При интегрировании и подстановке пределов получаем, что все интегралы от членов ряда (4.26), содержащих нечетные степени , обращаются в нуль. Подставляя полученное соотношение в формулу (4.25), получим При малой величине шага интегрирования h основной вклад в погрешность будет вносить первое слагаемое, которое называется главным членом погрешности вычисления интеграла на отрезке (4.28)

Главный член полной погрешности для интеграла на всем интервале определиться путем суммирования погрешностей на каждом отрезке

(4.29)

Формула (4.29) представляет собой теоретическую оценку погрешности вычисления интеграла методом средних прямоугольников, эта оценка является априорной, так как не требует знания значения вычисляемого интеграла. Степень шага h, которой пропорциональна величина , называется порядком метода интегрирования. Метод средних прямоугольников имеет второй порядок точности.

37. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы трапеций в MATLAB.

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)');% задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1);% шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x);% вычисление значений функции в узлах сетки

% вычисление интеграла методом трапеций

>> s=0;

for i=2:N-1

s=s+y(i);

End;

Ft=(0.5*y(1)+s+0.5*y(N))*dx

Ft =

1.0000

>> Ft-1

ans =

-5.1456e-008

 

38. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы трапеций.

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

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

Погрешность формулы трапеций

. Так как значение интеграла на отрезке вычисляется по формуле , то погрешность равна

(6.25)

Заменив в (6.25) первый член выражением (6.23), значение функции в точке - разложением в ряд Тэйлора:

,

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


 

39. Вычислить значение интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы Симпсона в MATLAB.

Пример 6.2. Вычисление интеграла методом прямоугольников в пакете MATLAB:

>> f=inline('sin(x)');% задание подынтегральной функции

>> Xmin=0;

>> Xmax=pi/2;

>> N=2001;

>> i=1:N;

>> dx=(Xmax-Xmin)/(N-1);% шаг интегрирования

>> x=Xmin:dx:Xmax; % вычисление координат узлов сетки

>> y=feval(f,x);% вычисление значений функции в узлах сетки

% вычисление интеграла методом Симпсона

>> s=0;

for i=2:N-1

if i-2*ceil(i/2)==0

k=4;

Else

k=2;

End;

s=s+k*y(i);

End;

Fs=(y(1)+s+y(N))*dx/3

Fs =

1.0000

>> Fs-1

ans =

E-015


 

40. Аналитически найти теоретическую погрешность при численном вычислении интеграла при заданных значениях a, b, и количестве узлов интегрирования n с помощью квадратурной формулы Симпсона.

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

. (6.22)

Тогда интеграл от данной функции на отрезке будет равен

. (6.23)

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


 

 

 

 

 


<== предыдущая лекция | следующая лекция ==>
Приклад визначення ризику | Обробка багажу без супроводу
1 | 2 | 3 | 4 | <== 5 ==> | 6 |
Studopedia.info - Студопедия - 2014-2024 год . (0.254 сек.) російська версія | українська версія

Генерация страницы за: 0.254 сек.
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7