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

Построение

кубического сплайна функции

План:

  1. вывод расчётных формул;
  2. текст программы;
  3. тестирование.

Текст программы.

#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++)

{