Professional Documents
Culture Documents
#include <iostream>
#include <fstream>
3
4
5
6
#include <iomanip>
7
8
9
int main () {
10
11
cout << "Polinomio de interpolacion de Lagrange\n\n";
12
13
ifstream label1 ("datos//datos.in");
14
15
16
int n, i, j, k;
17
18
label1 >> n;
19
20
21
22
23
24
25
26
cout << "Valores de x y f(x)\nx
f(x)\n";
27
28
for (i= 0; i < n; i++){
29
30
label1 >> x[i] >> f[i];
31
cout << x[i] << setw(5) << setiosflags(ios::right) << f[i] << "\n";
32
33
34
35
36
37
38
39
40
producto = 1;
41
for (i = 0; i < n; i++){
42
43
44
45
}
46
47
L[k] = f[k]/producto;
48
49
}
50
51
cout << "Coeficientes de interpolacion de Lagrange\n\n";
52
53
cout.setf(ios::fixed);
54
55
56
cout.precision(1);
57
58
59
60
cout << "L(" << n-i-1 << ") = " << setw(4) << setiosflags(ios::right)
61
62
63
64
65
66
67
68
j = 0;
69
70
for (i = 0; i < n; i++){
71
72
if (i != k) {xp[j] = x[i]; j += 1;}
73
74
75
76
77
78
79
80
81
82
}
83
84
85
86
cout << "Polinomio de interpolacion de Lagrange (grado " << n-1 << ")\n\n
87
88
for (i= 0; i < n; i++){
89
90
cout << "P(" << n-i-1 << ") = " << setw(4) << setiosflags(ios::right)
91
92
93
94
95
96
return 0;
97
98
99
10
0
double *E;
10
1
10
2
10
3
D[0] = 1;
10
4
D[1] = -x[0];
10
5
10
6
10
7
10
8
E[k] = D[k] + D[k-1]*(-x[i]);
10
9
110
111
D[i+1] = D[i]*(-x[i]);
112
113
114
115
D[j] = E[j];
116
117
}
118
119
}
12
0
12
1
12
2
12
3
12
4
12
5
12
6
12
7
12
delete E;
8
12
9
Lo emplearemos para encontrar el polinomio de interpolacin de Lagrange (de
grado 2) a partir de tres pares ordenados (x, f(x)) que gener usando la ecuacin de
la parbola:
f(x) = x + 2x -5
Los valores utilizados fueron los siguientes:
1
0 -5
1 -2
lagrange.c++
-o
lagrange
4
5
6
7
8
Valores de x y f(x)
x f(x)
0 -5
1 -2
2 3
9
1
0
11
1
2
L(2) = -2.5
L(1) = 2.0
1
3
L(0) = 1.5
1
4
Polinomio de interpolacion de Lagrange (grado 2)
1
5
1
6
P(2) = 1.0
P(1) = 2.0
1
7
1
8
1
P(0) = -5.0
9
2
0
2
1
donde se verifica que los coeficientes del polinomio cuadrtico obtenido ajustan
perfectamente a la ecuacin f(x) = x + 2x -5 ya referida. Sin embargo, no nos
emocionemos tanto por este xito. Si incluimos, por ejemplo, 10 pares ordenados
para los valores experimentales de una variable como funcin de otra, el polinomio
que obtendramos sera de grado 9 y, aunque pasar por todos los puntos
considerados, la grfica que obtendremos posiblemente se comportar de una
manera no deseada fuera de ellos. Existen tcnicas de interpolacin ms poderosas
como la de los splines pero, este caso, es vlido e interesante como ejercicio de
programacin.
Acerca de estos anuncios