узлах [j, m] для граничных условий 1–го или 2-го типа;
- zd – массив длины m, элемент zd[j] содержит значение i–й частной производной по y в узлах [j, 1] для граничных условий 1–го или 2-го типа.
Ее выходные параметры:
- zx, zy, zxy – одномерные массивы длины n.m содержат значения параметров сплайна.
При расчетах коэффициентов четырежды происходит обращения к функции Spline1d(), предназначенной для построения одномерного интерполяционного кубического сплайна.
Eе входными параметрами являются:
- 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.
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() записать в файл
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.