ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.08.2019

Просмотров: 4688

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

ЛР 3. Интерполяция функций. Полиномы Лагранжа, Ньютона.

136

при линейной интерполяции, и значениями синуса в этих точках. Построй-

те графики синуса и интерполяционного многочлена. Какую максималь-

ную ошибку мы допускаем при аппроксимации синуса данным полино-

мом? Сравните экспериментальную погрешность с теоретической.

4

k

В программе сделать возможность строить многочлен Лагранжа или

Ньютона для произвольного набора точек

t = t

0

, t

1

, . . . , t

n

.

5

k

При вычислении многочлена стараться заменить циклы матричными

операциями (см. первое практическое занятие).

3

k

Найдите значение интерполяционного полинома при

t = 2. Почему

оно так сильно отличается от значения синуса в этой точке?

4

k

Задайте функцию Рунге

f (x) =

1

1+25x

2

на отрезке

[

−5, 5] в десяти

равноотстоящих точках. Сравните значения функции и интерполяцион-

ного полинома при

x = 4, 5. Постройте графики функции и полинома на

заданном отрезке и объясните поведение интерполяционного полинома.

Посмотрите, что будет происходить при постепенном увеличении числа

узлов интерполяции и подумайте, как можно избавиться от получившего-

ся эффекта.

6

k

Для приближения функции Рунге используйте Чебышёвские узлы.

Постройте графики функции и многочлена.

Реализация функциями Matlab. Для одномерной интерполяции в

Matlab есть функция interp1. Изучите её и постройте графики интер-

полированных функций из примеров, рассмотренных выше.

Контрольные вопросы

1. Системами каких функций можно приближать заданную таблично

функцию? Из каких соображений выбирается эта система? Приведите

примеры.

2. Чем различается построение интерполяционных полиномов Лагранжа

и Ньютона?

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

n точек?


background image

ЛР 4. Дифференцирование функции, заданной таблично.

137

4. Пусть таблично заданно достаточное количество точек некоторой сте-

пенной функции. Возможно ли и как восстановить коэффициенты это-

го многочлена?

5. Каким образом за счёт выбора узлов можно добиться уменьшения

ошибки интерполяции?

6. Выпишите формулы для оценки погрешности интерполяции в точке

и на отрезке.

7. Что называется кусочной интерполяцией и каковы критерии её при-

менимости?

8. Каким образом следует поступить, если ставится не прямая, а обрат-

ная задача: требуется найти значение

x, при котором f (x) принимает

заданное значение?

3.4

ЛР 4. Дифференцирование функции, заданной таблично.

3

k

Выберите некоторую функцию (например,

sin x, cos x, exp x, sh x, ch x,

ln x, . . . ) и некоторую точку x из области определения функции. Найди-

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

формулу численного дифференцирования) с точностью

10

−3

,

10

−6

. Поль-

зоваться точным значением производной в качестве эталона запрещено

3

.

4

k

Выберите некоторую функцию (например,

sin x, cos x, exp x, sh x,

ch x, ln x, . . . ) и некоторую точку x из области определения функции.

Сравните погрешности у формул с разными порядками погрешностей (на-

пример,

y

0

(x)

y(x+h)

−y(x)

h

и

y

0

(x)

y(x+h)

−y(x−h)

2h

) для последовательности

убывающих шагов (например,

h =

1
2

,

1
4

,

1
8

). С какими скоростями убыва-

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

подтвердите ответ экспериментом

4

.

3

В данном задании лучше использовать формулу

y

0

(x)

f (x)−f (x−h)

h

или формулу

y

0

(x)

f (x+h)−f (x−h)

2h

. Погрешность для этих формул легко получить из разложения

f (x

± h) в ряд Тейлора в окрестности точки x.

4

Напомним, что

y

0

(x) =

y(x+h)−y(x)

h

+ O(h

1

) и формула имеет первый порядок по-

грешности;

y

0

(x) =

y(x+h)−y(x−h)

2h

+O(h

2

) и формула имеет второй порядок погрешности.


background image

ЛР 4. Дифференцирование функции, заданной таблично.

138

5

k

Неустойчивость численного дифференцирования. Выберите некото-

рую функцию (например,

sin x, cos x, exp x, sh x, ch x, ln x, . . . ) и неко-

торую точку

x из области определения функции. Попробуйте применить

формулу

y

0

(x)

y(x+h)

−y(x)

h

для стремящейся к нулю последовательности

h =

1
2

,

1
4

,

1
8

,

1

16

, . . .). Будет ли погрешность ε =

y

0

(x)

y(x+h)

−y(x)

h

монотон-

но убывать при уменьшении

h? Сравните практический и теоретический

результаты.

Реализация функциями Matlab.

р = polyfit(x,y,n) — вычисление коэффициентов полинома наилучше-

го (среднеквадратического) приближения степени

n.

k = polyder(p) — получение коэффициентов

k полинома, получающего-

ся при дифференцировании полинома, заданного коэффициентами

p.

у = polyval(p,x) — вычисление значения полинома с коэффициента-

ми p в точках x.

Контрольные вопросы

1. Как теоретически узнать погрешность формулы численного диффе-

ренцирования? Как узнать порядок погрешности?

2. Какие есть способы получения формул численного дифференцирова-

ния?

3. Какие есть способы практической (при вычислении на компьютере)

оценки погрешности численного дифференцирования?

4. Являются ли формулы численного дифференцирования устойчивыми

к погрешностям входных данных? Ответ обоснуйте.

5. Опишите, как имея в распоряжении формулу для численного диффе-

ренцирования с порядком точности

p, получить формулу с большим

порядком точности (метод Рунге).


background image

ЛР 5. Интегрирование функций. Формулы трапеций, Симпсона.

139

3.5

ЛР 5. Интегрирование функций. Формулы трапеций, Симп-
сона.

3

k

Задайте функцию

f (x) = x

3

на отрезке

[0, 1]. Очевидно, определённый

интеграл от функции

f (x) на этом отрезке равен

1
4

. Напишите программу,

вычисляющую значение интеграла по формулам трапеций и Симпсона.

Какую максимальную теоретическую ошибку мы при этом допускаем?

Найдите реальное значение погрешности (абсолютное значение разности

между теоретическим и аналитическим решением). Почему при вычисле-

нии интеграла по формуле Симпсона от данной функции ошибка равна

нулю? Какие бы получились значения погрешностей для квадратичной

и линейной функций (предположите и проведите численный эксперимент

для

f

2

(x) = x

2

,

f

1

(x) = x/2 на отрезке [0, 1]).

4

k

Используя соотношение

R

1

0

1

1+x

2

dx = arctg(1) найдите значение числа

π с точностью 10

−6

. В данном задании в процессе вычислений нельзя ис-

пользовать встроенную константу pi для определения величины шага. Из

каких соображений выбирался шаг для получения указанной точности?

5

k

Реализовать предыдущее задание, определяя точность методом Рун-

ге. При численном вычислении интегралов последовательно с шагами

h и

h/2 можно сократить число арифметических операций. Заметим, что при-

ближённое значение интеграла

I

h/2

есть сумма, часть слагаемых которой

возможно уже участвовало при вычислении

I

h

. Поэтому можно получить

I

h/2

, используя числовое значение

I

h

. Это позволяет избежать повторного

суммирования части слагаемых

5

.

5

Продемонстрируем это на примере метода трапеций для шагов

h и h/2:

I

h

= h

 1

2

f

0

+ f

1

+ . . . + f

n−1

+

1
2

f

n

,

I

h/2

=

h

2

 1

2

f

0

+ f

1/2

+ f

1

+ f

3/2

+ . . . + f

n−1

+ f

n−1/2

+

1
2

f

n

.

Очевидно, что

I

h/2

=

I

h

2

+

h

2

f

1/2

+ f

3/2

+ . . . + f

n−3/2

+ f

n−1/2

.


background image

ЛР 6. Решение систем линейных уравнений.

140

Реализация функциями Matlab. q = quad(fun,a,b) — вычисле-
ние интеграла от функции fun (встроенной или описанной файл-функцией)

на отрезке

[a, b]. Алгоритм основан на квадратурной формуле Симпсона

с автоматическим подбором шага.

Контрольные вопросы

1. В каких случаях имеет смысл использовать неравномерное распре-

деление узлов? Каким образом алгоритмически можно реализовать

автоматический подбор шага?

2. Какая ошибка допускается, если подынтегральная функция заменя-

ется интерполяционным полиномом, а затем производится аналитиче-

ское вычисление интеграла?

3. Какой метод — прямоугольников (с выбором центральной точки) или

трапеций — даёт в общем случае меньшую ошибку?

4. Каким образом можно уточнить значение интеграла, уже вычислен-

ного по формулам трапеций и прямоугольников?

3.6

ЛР 6. Решение систем линейных уравнений.

3

k

Задайте матрицу

A и вектор-столбец f системы линейных уравнений

AX = f , используя генератор случайных чисел. Очевидно, можно по-

лучить решение таким образом:

X = A

−1

f (предварительно проверив,

что матрица

A не вырожденная) или по правилу Крамера (x

i

=

det A

i

det A

,

где

A

i

— матрица, получающаяся из матрицы

A заменой i-го столбца на

столбец правой части

f ). Реализуйте и проверьте работоспособность этих

методов. Несмотря на простоту использования в Matlab, эти варианты
чрезвычайно неэкономичны по числу операций.

3

k

Напишите программу нахождения решения системы линейных урав-

нений методом Гаусса с выбором главного элемента.

3

k

Функция rref Matlab также приводит матрицу [A f] к диаго-

нальному виду, из которого сразу же видно решение системы. Также па-