Смекни!
smekni.com

Задачи изучения дисциплины 5 4 Перечень дисциплин, усвоение которых необходимо для изучения данной дисциплины: 6 (стр. 12 из 19)

4.3.4 Задание на лабораторную работу

В ходе данной лабораторной работы студенты должны выполнить следующие пункты.

Реализовать метод исключения Гаусса без выбора главного элемента в виде процедуры на языке системы MATLAB (блок-схема алгоритма приведена ниже).

Протестировать реализованную процедуру решения СЛАУ на следующих тестовых задачах:

а) СЛАУ с хорошо обусловленной матрицей коэффициентов размером 50х50. Для формирования матрицы коэффициентов А и вектора свободных членов b можно использовать генераторы случайных чисел rand и randn (например, для матрицы A=rand(N) и вектора b=randn(N,1)).

б) СЛАУ с плохо обусловленной матрицей коэффициентов размером 50х50. Для получения плохо обусловленной матрицы можно использовать функции системы MATLAB A=hilb(N) или A=invhilb(N), которые генерируют плохо обусловленную матрицу Гильберта. Матрицы с большим числом обусловленности cond(A) ® ¥ (близкие к вырожденной) при использовании функции A=hilb(N) или A=invhilb(N) получаются при N ³ 15.

Для каждой сформированной матрицы коэффициентов А вычислить определитель det(A), число обусловленности cond(A) и оценку числа обусловленности rcond(A).

Сравнить полученное решение (вектор x) с результатами расчетов с помощью стандартного решателя системы MATLAB x=A\b.

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

а) описание алгоритма метода исключения Гаусса (включая блок-схему);

б) текст программы решения СЛАУ методом Гаусса с необходимым числом комментариев;


Блок-схема алгоритма исключения Гаусса (без выбора главного

элемента) для решения СЛАУ

в) результаты тестирования процедуры;

для каждой тестовой задачи необходимо привести вектор решений х, полученный своей программой и стандартным решателем MATLAB, значение определителя det(A) и величину числа обусловленности cond(А) матрицы коэффициентов и оценку числа обусловленности rcond(A);

г) выводы о проделанной работе.

Отчет по данной лабораторной работе выполняется с помощью текстового редактора MSWord или письменно. Отчет и написанную программу (m-файл) следует прислать для проверки в ТМЦ ДО ТУСУР. Программа должна содержать все необходимые комментарии, объясняющие работу отдельных фрагментов и основных операторов. Также в заголовке программы в комментариях студент должен указать свои ФИО, идентификатор и пароль.

4.4 Лабораторная работа № 3. Линейная полиномиальная интерполяция функций

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

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

Интерполяция – это нахождение функции, которая в некоторых заранее указанных точках совпадает с заданной функцией.

Пусть на отрезке [a, b] задана n+1 точка x0, x1, … , xn (узлы интерполяции). Пусть в этих точках известны значения интерполируемой функции f(x):

yi = f(xi),

.

Требуется построить функцию j(x), принадлежащую известному классу и принимающую в узлах интерполяции те же значения, что и f(x), т.е.

j(xi) = yi,

. (4.1)

Геометрически это означает, что нужно найти кривую y=j(x) определенного вида, проходящую через заданную систему точек (xi, yi),

(см. рис. 4.1). Функция j(x) называется интерполирующей функцией.

Рассмотрим задачу линейной интерполяции. При этом интерполирующая функция имеет следующий вид:

, (4.2)

где j0(x), j1(x), … , jm(x) – базисные функции, вид которых задан; Ck – искомые коэффициенты.


Используя условие (4.1) и выражение (4.2), получаем систему уравнений

(4.3)

Единственное решение системы (4.3) существует при двух условиях:

число точек (xi, yi),

равно числу коэффициентов Сk,
, т.е. m = n.

система уравнений (4.3) должна быть невырожденной, т.е. определитель системы D ¹0.

Таким образом, если выполняются вышеуказанные условия, то через точки (xi, yi) проходит единственная функция вида

.

На практике в качестве интерполирующей функции j(x) часто используются алгебраические полиномы, так как

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

В случае линейной полиномиальной интерполяции базисные функции имеют следующий вид: j0(x)= x0=1, j1(x)= x1=x, j2(x)= x2, … , jm(x)= xm. Интерполирующая функция при этом имеет вид полинома степени m: j(x)= Pm(x)=C0 + C1 x + C2 x 2 + … +Cm x m. При m = n система (4.3) примет вид

(4.4)

В матричной форме систему (4.4) можно переписать как А*C=B, где

– матрица Ван дер Монда;
;
.

Решением системы (4.4) будет вектор коэффициентов полинома С. Так как определитель матрицы Ван дер Монда всегда отличен от нуля (при xi¹xj), то решение системы (4.4) – единственное. Для решения системы (4.4) необходимо найти обратную матрицу A. В этом случае решением (4.4) будет C=A–1*B.

Вывод: Таким образом, через заданные на интервале [a, b] точки (xi, yi),

всегда можно провести единственный интерполяционный полином степени n Pn(x)=C0 + C1 x + + C2 x2 + … +Cnxn, коэффициенты которого находятся в результате решения системы (4.4).

Выражение (4.1) определяет поведение функции j(x) только в узлах интерполяции (xi, yi),

. Между узлами j(x) может вести себя произвольным образом, сколь угодно далеко, в принципе, отклоняясь от зависимости f(x). Определить погрешность приближения можно, используя выражение для абсолютной ошибки e=| f(x) – j(x) |.

Ошибка полиномиальной интерполяции. Лучший способ проверить качество интерполяции – вычислить значения интерполирующей функции в большом числе точек и построить график. Однако в некоторых ситуациях качество интерполянта можно проанализировать. Предположим, что величина yi представляет собой точные значения известной функции f(x) в точках xi. Пусть Pn(x) – единственный полином n-й степени, интерполирующий функцию по этим точкам (xi, yi),

. Предположим, что во всех точках хÎ[a, b] функция f(x) имеет (n+1)-ю непрерывную производную. Тогда можно показать, что абсолютная ошибка интерполяции e(x) = | f(x)– Pn(x) | в некоторой точке
определяется выражением

, (4.5)

где

- максимальное значение (n+1)-й производной функции f(x) на интервале [a, b];
.

Рисунок 4.2 – Интерполяция функции Рунге

полиномом степени n

Теперь посмотрим, что получится, если интерполировать известную функцию f(x) все в большем и большем числе точек на фиксированном интервале. Выражение для погрешности (4.5) состоит из трех разных частей: факториал и произведение разностей wh(x) с увеличением n уменьшают ошибку, но порядок производной при этом растет. Для многих функций величина Mn+1 увеличивается быстрее, чем (n+1)!. В результате полиномиальные интерполянты далеко не всегда сходятся к обычной непрерывной функции. Практический эффект выражается в том, что интерполирующий полином высокой степени может вести себя очень плохо в точках, отличных от узлов интерполяции (xi, yi),

. Поэтому на практике обычно используют интерполирующие полиномы степени не выше 5-6.