Построение кубического сплайна функции
Построение
кубического сплайна функции
План:
- вывод расчётных формул;
- текст программы;
- тестирование.
Текст программы.
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#include «mat_vec.h» // классы для работы с матрицами и векторами
#include «progonka.h» // решение системы ур-ний (для 3-х диагональных матриц)
#include «funct.h» // второстепеннные функции программы (рисование
// «корень» программы
void spline (float step, int dop, int n, double* &x, double* &y, double* &x1,double* &y1) {
int k = 0;
matrica Sp (n, n-1);
for (int i = 1; i <= (n-1); i++) {
Sp (i, n) = 3*(y[i-1] - 2*y[i] + y[i+1])/pow (step, 2);
Sp (i, i) = 4;
if (i < (n-1)) Sp (i, i+1) = 1;
if (i > 1) Sp (i, i-1) = 1;
}
float *tmp;
progonka (Sp, tmp); // решение системы уравнений методом прогонки
// (см. файл «progonka.h»)
vector a (n), b (n+1), c (n), d (n); // вычисление коэф-тов многочленов
b (1) = 0;
b (n+1) = 0;
for (int index = 0; index < n-1; index++)
b (index+2) = tmp[index];
delete [] tmp;
for (i = 1; i <= n; i++)
{