Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <iomanip>
- #include <math.h>
- using namespace std;
- double func(double x) {
- return pow(x, 2) - 10 * pow(sin(x), 2);
- }
- double Newton(double x, double**& XYtable, int n)
- {
- double result = XYtable[0][1];
- double ind = 1;
- double* diff = new double[20];
- for (int i = 0; i < n; i++) {
- diff[i] = XYtable[i][1];
- }
- for (int i = 0; i < n - 1; i++) {
- for (int j = 0; j < (n - 1) - i; j++) {
- diff[j] = (diff[j + 1] - diff[j]) / (XYtable[j + i + 1][0] - XYtable[j][0]);
- }
- ind *= x - XYtable[i][0];
- result += ind * diff[0];
- }
- return result;
- }
- int main(void)
- {
- setlocale(LC_ALL, "Russian");
- cout << "Введите границы a и b " << endl;
- int a, b;
- cin >> a >> b;
- cout << "Введите m " << endl;
- int m;
- cin >> m;
- double** matr = new double*[20];
- for (int i = 0; i < 20; i++)matr[i] = new double[2];
- int k = 0;
- for (double i = a; i <= b; i += (b - a) / (m - 1)) {
- matr[k][0] = i;
- matr[k][1] = func(i);
- k++;
- }
- cout << setw(4) << "X" << setw(10) << "Y" << endl;
- for (int i = 0; i < k; i++) {
- cout<< setw(4) << matr[i][0] << setw(10) << matr[i][1] << endl;
- }
- cout << endl;
- cout << setw(5) << "X" << setw(10) << "Y" <<setw(10)<<"P"<<setw(12)<<"погр."<< endl;
- for (int i = 0; i < 21; i++) {
- double temp = a + ((b - a) / 20.)*i;
- cout << setw(5) << temp << setw(10) << func(temp) << setw(10) << Newton(temp, matr,m) << setw(12) << fabs(func(temp)- Newton(temp, matr, m)) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement