Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <windows.h>
- using namespace std;
- double NFORWARD(double);
- double NBACKWARD(double);
- double STIRLING(double);
- double X[11];
- double Y[11];
- int main() {
- ofstream fout;
- fout.open("outFile.txt", ios::app);
- SetConsoleOutputCP(CP_UTF8);
- int i;
- double x1, x2, x3;
- ifstream input("input.txt");
- for (i = 0; i < 11; i++) {
- input >> X[i];
- input >> Y[i];
- }
- input >> x1 >> x2 >> x3;
- input.close();
- cout << "x1 = " << x1 << " NFOR | NBACK | STIR" << endl;
- cout << NFORWARD(x1) << " | " << NBACKWARD(x1) << " | " << STIRLING(x1) << endl;
- cout << "x2 = " << x2 << " NFOR | NBACK | STIR" << endl;
- cout << NFORWARD(x2) << " | " << NBACKWARD(x2) << " | " << STIRLING(x2) << endl;
- cout << "x3 = " << x3 << " NFOR | NBACK | STIR" << endl;
- cout << NFORWARD(x3) << " | " << NBACKWARD(x3) << " | " << STIRLING(x3) << endl;
- return 0;
- }
- double NFORWARD(double x) {
- double a;
- double h, q;
- double delta[11][11];
- int i, j;
- double NEWTON;
- h = X[1] - X[0];
- q = (x - X[0]) / h;
- for (i = 0; i < 11; i++) {
- delta[i][0] = Y[i];
- }
- for (j = 1; j < 11; j++) {
- for (i = 0; i < 11 - j; i++)
- delta[i][j] = delta[i + 1][j - 1] - delta[i][j - 1];
- }
- NEWTON = 0;
- for (i = 0; i < 11; i++) {
- a = 1;
- for (j = 0; j < i; j++) {
- a = a * (q - j) / (j + 1);
- }
- NEWTON = NEWTON + delta[0][i] * a;
- }
- return NEWTON;
- }
- double NBACKWARD(double x) {
- double a;
- double h, q;
- double delta[11][11];
- int i, j;
- double NEWTON;
- h = X[10] - X[9];
- q = (x - X[10]) / h;
- for (i = 0; i < 11; i++)
- delta[i][0] = Y[10 - i];
- for (j = 1; j < 11; j++) {
- for (i = 0; i < 11 - j; i++)
- delta[i][j] = delta[i][j - 1] - delta[i + 1][j - 1];
- }
- NEWTON = 0;
- for (i = 0; i < 11; i++) {
- a = 1;
- for (j = 0; j < i; j++) {
- a = a * (q + j) / (j + 1);
- }
- NEWTON = NEWTON + delta[0][i] * a;
- }
- return NEWTON;
- }
- double STIRLING(double x) {
- double a, STIR;
- int n = 5;
- double h, q;
- double delta[11][11];
- int i, j;
- for (i = 0; i < 11; i++)
- delta[i][0] = Y[i];
- for (j = 1; j < 11; j++) {
- for (i = 0; i < 11 - j; i++)
- delta[i][j] = delta[i + 1][j - 1] - delta[i][j - 1];
- }
- h = X[1] - X[0];
- q = (x - X[n]) / h;
- double kvadr;
- double fakt;
- STIR = delta[n][0];
- int par1 = 0, par2 = 1;
- for (i = 1; i < 11; i++) {
- if (i % 2 == 1) {
- fakt = 1;
- kvadr = 1;
- a = q;
- for (j = 1; j < i; j++)
- fakt = fakt * (j + 1);
- for (j = 1; j <= i / 2; j++)
- kvadr = kvadr * (q - j) * (q + j);
- a = a * kvadr / fakt;
- STIR = STIR + (delta[n - par1][i] + delta[n - par1 - 1][i]) * a / 2;
- par1++;
- } else {
- fakt = 1;
- kvadr = 1;
- a = 1;
- for (j = 1; j < i; j++)
- fakt = fakt * (j + 1);
- for (j = 0; j < i / 2; j++)
- kvadr = kvadr * (q - j) * (q + j);
- a = a * kvadr / fakt;
- STIR = STIR + delta[n - par2][i] * a;
- par2++;
- }
- }
- return STIR;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement