Está en la página 1de 4

La interpolacin de Lagrange es una de las interpolaciones ms tiles en integracin numrica,

est consiste en una representacin de polinomios de la funcin:


Esta interpolacin pasa por los puntos n+1 dados:

Para hallar la Interpolacion de Lagrange se tiene que seguir ciertas frmulas, nosotros veremos
un algoritmo en el cual no es necesario utilizar las frmulas basta con lo siguiente:

Ahora vemos como sera el cdigo en C++:


?
#include<iostream.h>
1 #include<conio.h>
2 void main(){
3 float x[50],y[50],z,l, valor=0;
4 int n;
5
cout<<"ingrese el numero de elementos: "; cin>>n;
6 cout<<"ingrese x: ";
7
8 for(int i=0; i<n; i++){
9 cin>>x[i];
10 }
11
12 cout<<endl;
cout<<"ingrese y: ";
13 for(int i=0; i<n; i++){
14 cin>>y[i];
15
16 }
17 cout<<endl;
cout<<endl<<"ingrese z: "; cin>>z;
18
19 for(int i=0; i<n ;i++){
20 l=y[i];
21 for(int j=0; j<n; j++){
if(i!=j){
22 l=(l*(z-x[j]))/(x[i]-x[j]);
23 }
24 }
25 valor=valor+l;
}
26
27 cout<<endl<<endl<<"El valor al polinomio de interpolacion en Z= "<<z <<" es :
28 "<<valor;
29 getch();
30 }
31
32
33
34
35

En Dev c++ sera de la siguiente forma:

?
#include <cstdlib>
1 #include <iostream>
2
3 using namespace std;
4
5 int main(int argc, char *argv[])
6 {
7 float x[50],y[50],z,l, valor=0;
int n;
8
9 cout<<"ingrese el numero de elementos: "; cin>>n;
10 cout<<"ingrese x: ";
11
12 for(int i=0; i<n; i++){
13 cin>>x[i];
}
14
15 cout<<endl;
16 cout<<"ingrese y: ";
17 for(int i=0; i<n; i++){
18 cin>>y[i];
19
20 }
cout<<endl;
21
22 cout<<endl<<"ingrese z: "; cin>>z;
23
24 for(int i=0; i<n ;i++){
25 l=y[i];
26 for(int j=0; j<n; j++){
if(i!=j){
27
l=(l*(z-x[j]))/(x[i]-x[j]);
28 }
29 }
30 valor=valor+l;
}
31
32 cout<<endl<<endl<<"El valor al polinomio de interpolacion en Z = "<<z<<" es : "<
33 valor<<endl;
34
35
36 system("PAUSE");
37 return EXIT_SUCCESS;
38 }
39
40
41
42
43

Ejemplo: Averiguar la raz de 3. Empiezo con x=2

1/2 * (2 + 3/2) = 1,75

1/2 * (1,75 + 3/1,75) = 1,732143

1/2 * (1,732143 + 3/1,732143) = 1,732051

1/2 * (1,732051 + 3/1,732051) = 1,732051

Si, Newton ya us su binomio


para extraer races, es muy prctico...

Para 63 mejor usa 64 = 8^2

(63)^(1/2) = (64 - 1)^(1/2)


(63)^(1/2) = (64)^(1/2) * (1 - (1/64))^(1/2)

(63)^(1/2) = 8* (1 - (1/64))^(1/2)

(63)^(1/2) = 8* (1 - (1/2) (1/64) - (1/8) (1/64)^2 - (1/16) (1/64)^3 -...)

(63)^(1/2) = 8 - (4) (1/64) - (1/64)^2 - (1/2) (1/64)^3 -...

Ya con el primer y segundo trmino tienes

8 - (4/64) = 8 - (1/16) = 8 - 0.0625 = 7.9375

que se acerca bastante a

raiz(63) = 7.9372539...

8:.........................8.000000
1/16 :.................-0.0625000.......7.937...
1/64^2...............-0.000244...........
(1/2)(1/64^3)....-0.000002.........7.9...
etc

También podría gustarte