| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Echi44

Registrado: 22 Jun 2004 Mensajes: 11 Ubicación: Venezuela
| Publicado: 09/02/2005 9:32 pm | | | Título: Polinomio de Lagrange |
| Bueno estoy "TRATANDO" d hacer un programa q haga interpolaciones por el polinomio d lagrange. La entrada por teclado es un polinomio normal, lo q no sé hacer es cómo construir el código q arme el polinomio interpolado, me siguen?
la cosa es q por ejemplo, si el polinomio es d grado 2, interpola 2 vcs mostrando la última nada más..... si me pueden ayudar con eso les agradecería mucho, el programa es un poco más complejo, pero eso es lo q me traba. Un saludo!
PD: ah, es en pascal  _________________ "La luz viaja más rápido que el sonido. Es por eso que muchas personas parecen brillantes. Hasta que hablan." |
| | Volver arriba | |  | soloc
Registrado: 25 Ene 2005 Mensajes: 212 Ubicación: Bolivia
| Publicado: 10/02/2005 6:46 am | | | Título: |
| El truco más simple es que cada parte del polinomio (coeficiente, exponente) se almacene en un arreglo (tal como lo estas haciendo). Pero como debes realizar varias iteraciones debes almacenar cada polinomio en un arreglo bidimensional (Matriz). Cada fila es el polinomio que resulta de cada iteración.
saludos |
| | Volver arriba | |  | Echi44

Registrado: 22 Jun 2004 Mensajes: 11 Ubicación: Venezuela
| Publicado: 10/02/2005 9:09 am | | | Título: |
| gracias..... pero tngo problemas con los arreglos en pascal, no los sé hacer bien, me podrías explicar más o menos? _________________ "La luz viaja más rápido que el sonido. Es por eso que muchas personas parecen brillantes. Hasta que hablan." |
| | Volver arriba | |  | | soloc
Registrado: 25 Ene 2005 Mensajes: 212 Ubicación: Bolivia
| Publicado: 14/02/2005 4:21 pm | | | Título: |
| Mira...
Te envio un link para que estudies al respecto...
Saludos...  |
| | Volver arriba | |  | Echi44

Registrado: 22 Jun 2004 Mensajes: 11 Ubicación: Venezuela
| Publicado: 23/02/2005 9:37 pm | | | Título: |
| bueeeeeeno, no sé por q demonios los arreglos no me sirven, akí les pongo lo q he hecho, a ver si alguien me ayuda!. Por cierto, le voy a dar de entrada los datos d una vez, y no el polinomio, ya un amigo me explicó como se hacía y no entendí mucho, así q haré primero este q es más fácil jeje..... Akí está el código:
| Código: | program lagrange; uses crt; const
max=5;
var
vectorx, vectory: array[1..max] of real; n,i, j: integer; numerador, denominador,s,v,x,num,den,y: real;
Begin s:= 0; numerador:= 0; denominador:= 0;num:=1; den:=1; clrscr; Writeln('Programa para calcular el polinmomio de Lagrange'); Writeln('Introduzca el numero de datos: '); read(n);
for i:=1 to (n) do Begin writeln('Introducir el valor de x',i,': '); readln(vectorx[i]); end;
for i:=1 to (n) do Begin writeln('Introducir el valor de y',i,' :'); readln(vectory[i]); end;
Writeln('Introduzca el punto a evaluar: '); readln(v);
{ if () then begin writeln('Punto no valido'); readln; halt; end else begin} for i:=1 to n do for j:=1 to n do Begin if (i<>j) then Begin numerador:= (v-vectorx[j]); denominador:= (vectorx[i]-vectorx[j]); WriteLn('numerador: ',numerador:2:2); WriteLn('denominador: ',denominador:2:2); ReadLn; {num:= num*numerador; den:=den*denominador;} num:= num*vectory[i]; s:=s+(num/den);
end; end; Writeln('El polinomio de Lagrange de grado ',n,' es: ', s:2:4); ReadLn; { end;} End. |
lo q está en llave no me funciona. Ah, y la formula de lagrange para 3 es así:
P3= [((v-x2)*(v-x3))/((x1-x2)*(x1-x3))]*y1 +[((v-x1)*(v-x3))/((x2-x1)*(x2-x3))]*y2 +[((v-x1)*(v-x2))/((x3-x1)*(x3-x2))]*y3 _________________ "La luz viaja más rápido que el sonido. Es por eso que muchas personas parecen brillantes. Hasta que hablan." |
| | Volver arriba | |  | Anonymous

Registrado: 10 Nov 2000 Mensajes: 99
| Publicado: 17/03/2005 8:37 am | | | Título: el programa |
| sorry la tardansa, pero solo ayer lei tu duda te mando el programa pa que lo compares con el tuyo y veas los errores..
prueballo con: orden 1,2 ; dependiendo el orden ingresa las variables que te piden ----variable a ingresar y el resultado q te debe dar, por ejemplo: X =1.0; 4.0; 6.0 Y =0.0; 1.3862944; 1.7917595 evaluado en "2" = 0.4620981;0.5658.
hey si es de orden 2 tonces ingresas 3 variables x e y, pq empieza del 0;
program Polinomio_lagrange; var i,m,j,op:integer; li,fx,pev:real; matrx,matry,l:array [1..100] of real ;
begin writeln('ingrese el orden del polinomio'); readln(op); for i:=1 to op+1 do begin m:=i-1; writeln ('ingrese X ',m, ' e Y ',m, ' respectivamente'); read(matrx[i],matry[i]); writeln(''); end; writeln ('ingrese pto a evaluar '); readln(pev); for i:=1 to (op +1) do l[i]:=1;
for i:=1 to (op+1) do for j:=1 to (op+1) do if j<>i then l[i]:=(pev-matrx[j])/(matrx[i]-matrx[j])*l[i] ;
fx:=0; for i:=1 to (op+1) do fx:=l[i]*matry[i]+fx;
writeln ('resultado del P. L. es: ', fx:10:5); readln; end. prueba con otros
PD: lo probe y funcionaba!!!! , cualquier duda o error que pueda tirar postealo aqui mismo. chao suerte!!!!!! |
| | Volver arriba | |  | | Anonymous

Registrado: 10 Nov 2000 Mensajes: 99
| Publicado: 17/03/2005 8:53 am | | | Título: bidi ???????????? |
| | hola no te compliques con arreglos bidim........... ; el asunto es solo aplicar la formula del P. L. con unos poquitos detalles , yo use 3 arreglos unidimensionales |
| | Volver arriba | |  | Disruption
Registrado: 10 Ago 2005 Mensajes: 14
| Publicado: 12/08/2005 1:00 am | | | Título: |
| Mmmm
" Writeln('Introduzca el punto a evaluar: '); readln(v);
{ if () then begin
"
Uhmmm, has puesto un if vacio, si lo que quieres comprobar es si V esta vacio deberias poner la condicion no? algo como " if ( v:=0) then begin ... end else " Otra cosa. En lugar de usar un halt cuando no se introduzca un dato valido, podrias usar un "Repeat [···] until", poniendo la condicion de que v sea distinto de 0, y poner dentro del repeat la peticion del valor, asi no te veras obligado a interrumpir el programa si se introducen mal los datos.
A lo mejor ese If vacio es lo que hace que de algun problema, pero no se, prueba poniendo alguna condicion. Un saludo (Siento no ser muy explicito ni muy claro, pero estoy algo "Oxidado", cosas del tiempo.... :S) |
| | Volver arriba | |  | Benn
Registrado: 07 Ago 2007 Mensajes: 1
| Publicado: 07/08/2007 4:33 pm | | | Título: Re: Polinomio de Lagrange |
| | Echi44 escribió: | Bueno estoy "TRATANDO" d hacer un programa q haga interpolaciones por el polinomio d lagrange. La entrada por teclado es un polinomio normal, lo q no sé hacer es cómo construir el código q arme el polinomio interpolado, me siguen?
la cosa es q por ejemplo, si el polinomio es d grado 2, interpola 2 vcs mostrando la última nada más..... si me pueden ayudar con eso les agradecería mucho, el programa es un poco más complejo, pero eso es lo q me traba. Un saludo!
PD: ah, es en pascal  |
tengo los programas de interpolacion de Lagrange y de Newton en la calculadora hp48g |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |