Курсовая работа: Рівномірне наближення функцій ермітовими сплайнами
/////////////////////////////////////////////////////////////////////////////
void ermit_2(double *b, double x0, double x1, int p) {
double h;
h = x1 - x0;
b[3] = 2 * ((fp(x1, p) + fp(x0, p)) / 2 - (f(x1, p) - f(x0, p)) / h) / (h
* h);
b[2] = 0.5 * ((fp(x1, p) - fp(x0, p)) / h - 3* b [3] * (x0 + x1));
b[1] = fp(x1, p) - 2* b [2] * x1 - 3* b [3] * x1 * x1;
b[0] = 0.5 * (f(x1, p) + f(x0, p) - b[3] * (x0 * x0 * x0 + x1 * x1 * x1)
- b[2] * (x0 * x0 + x1 * x1) - b[1] * (x0 + x1));
}
////////////////////////////////////////////////////////////////
void ermit_3(double *a, double x0, double x2, int p) {
double a1, a2, a3, b1, b2, b3, z1, z2, z3, g1, g2, g3;
double x1;
x1 = (x0 + x2) / 2;
a1 = Math::Log(f(x1, p) / f(x0, p)) / (x1 - x0) - Math::Log(f(x2, p) / f(x0, p)) / (x2- x0);
b1 = (x1 + x0) * (x1 * x1 + x0 * x0) - (x2 + x0) * (x2 * x2 + x0 * x0);
z1 = x1 * x1 + x1 * x0 - x2 * x2 - x2 * x0;
g1 = x1 - x2;
a2 = Math::Log(f(x1, p) / f(x0, p)) / (x1 - x0) - fp(x0, p) / f(x0, p);
b2 = x1 * x1 * x1 + x0 * x1 * (x0 + x1) - 3* x0 * x0 * x0;
z2 = x1 * x1 + x0 * x1 - 2* x0 * x0;
g2 = x1 - x0;
a3 = Math::Log(f(x1, p) / f(x0, p)) / (x1 - x0) - fp(x2, p) / f(x2, p);
b3 = (x0 + x1) * (x0 * x0 + x1 * x1) - 4* x2 * x2 * x2;
z3 = x1 * x1 + x0 * x1 + x0 * x0 - 3* x2 * x2;
g3 = x1 + x0 - 2* x2 ;
a[2] = ((a2 * b1 - a1 * b2) * (z3 * b1 - z1 * b3) - (z2 * b1 - z1 * b2)