Интерполяция табличных функций (Лабораторная работа № 8)

Страницы работы

Фрагмент текста работы

узлах [j, m] для граничных условий 1–го или 2-го типа;

zd – массив длины m, элемент zd[j] содержит значение i–й частной производной по y в узлах [j, 1] для граничных условий 1–го или 2-го типа.

Ее выходные параметры:

zx, zy, zxy – одномерные массивы длины n.m содержат значения параметров сплайна.

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

входными параметрами являются:

n – число узлов;

x – массив (длины n), содержащий узлы интерполяции;

y – массив, содержащий значение функции в узлах интерполяции;

ind – указатель режима работы, при значениях которого:

ind = 0 – программа вычисляет параметры сплайна,

ind = 1 – параметры сплайна известны;

ib – тип граничных условий;

ax, bx – значения параметров, входящих в граничные условия 1-го и 2-го типа;

xx – точка, в которой вычисляется значение сплайна и двух его первых производных;

Выходные параметры

z – массив (длины n), содержащий параметры сплайна;

sp – значения сплайна в точке хх;

dsp – значение 1-ой производной сплайна в точке хх,

d2sp – значение 2-ой производной сплайна в точке хх.

Функция Spline1d() при решении обращается к функции решения системы линейных уравнений с трехдиагональной матрицей Progon3(), которая содержится в модуле Spline.

10. Задание к работе

1.  Проанализировать текст функций модуля Polynom и восстановить лежащие в их основе алгоритмы и формулы.

2.  Разработать управляющую программу для интерполяции табличной функции с помощью функции IntClassic(). Выполнить интерполяцию функции

0.0

1.0

2.0

3.0

4.0

5.0

4.0

18.0

21.0

17.0

19.0

33.5

3.  После получения коэффициентов интерполирующего полинома с помощью функции WritePolinom() создать на диске текст функции на языке С/С++, моделирующий этот полином. Используя эту функцию, построить его график с большим (порядка 100) количеством точек. Добавить на этот график исходные точки.

4.  Разработать управляющую программу для интерполяции табличной функции с помощью функции IntLagrange(). Выполнить интерполяцию функции из предыдущего пункта и представить результат на графике в виде непрерывной зависимости и исходных точек.

5.  Проанализировать тексты функций SplineCoeff() и Spline() из модуля Spline, восстановить алгоритмы, лежащие в основе их работы. Сопоставить операторы подпрограмм с приведенными описанием алгоритма и формулами.

6.  Разработать управляющую программу для определения коэффициентов сплайн-интерполяции с помощью функции SplineCoeff(). Выполнить сплайн-интерполяцию функции интегрального синуса Si(x) на интервале (0, 10). Исходной информацией является таблица значений интегрального синуса или данные, хранящиеся в файле si.dat.

0.0

0.00000

6.0

1.42469

1.0

0.94608

7.0

1.45460

2.0

1.60541

8.0

1.57419

3.0

1.84865

9.0

1.66504

4.0

1.75820

10.0

1.65835

5.0

1.54993

С помощью функции WriteSpline() создать на диске текст функции на языке С/С++, моделирующий эту функцию. Используя ее, построить график сплайн-интерполяции интегрального синуса и наложить на него исходные точки.

7.  Выполнить сплайн-интерполяцию одной из следующих функции на интервале (0, 10), предварительно насчитав таблицу точек с шагом, равным 1.0. Построить на одном графике точную кривую функции и кривую ее сплайн-интерполяции и проанализировать их совпадение на серединах интервалов.

8.  С помощью функции SplineCoeff2d() и управляющей программы из файла get2dspl.cpp выполнить двумерную сплайн-интерполяцию одной из приведенных ниже функций и с помощью функции Write2dSpline() записать в файл

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Методические указания и пособия
Размер файла:
516 Kb
Скачали:
0