-
Notifications
You must be signed in to change notification settings - Fork 0
/
Aitken Update .cpp
59 lines (56 loc) · 1.51 KB
/
Aitken Update .cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "stdafx.h"
#include<iostream>
using namespace std;
void getValue(double *x, double **function, int size) {
cout << "Enter Value of X: " << endl;
for (int i = 0; i < size; i++) {
cin >> x[i];
}
cout << "Enter Value of F(x): " << endl;
for (int i = 0; i < size; i++) {
cin >> function[0][i];
}
}
double findValue(double xp, double xi, double xj, double func1, double func2) {
double result;
//cout << "function 1 : " << func1 << " functioj 2 : " << func2 << " xp : " <<xp << " xi : " << xi << " xj : " << xj<< endl;
result = ((xp - xi) * func2) - ((xp - xj) * func1);
//cout << "Result of func1 and func2 : " << result << endl;
if (result < 0) {
result = result * (-1);
}
result = result / (xj - xi);
return result;
}
double result(double **function, double *x, double xp, int size) {
double result = 0;
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size ; j++) {
result= findValue(xp, x[i], x[j], function[i][i], function[i][j]);
function[i + 1][j] = result;
//cout << "\nResult : " << result << endl;
}
}
return result;
}
int main()
{
double xp;
int size;
cout << "Enter Size of Array: " << endl;
cin >> size;
double **function;
function = new double*[size];
for (int i = 0; i < size; i++) {
function[i] = new double[size];
}
double* x = new double[size];
getValue(x, function, size);
cout << "Enter Value of Xp: " << endl;
cin >> xp;
cout << "Result of Atiken : " << result(function, x, xp, size) << endl;
system("pause");
delete function;
delete x;
return 0;
}