Interpolação em C

2 respostas
P

O código abaixo realiza interpolação de uma função através do método de lagrange,de fórmula genérica:

http://upload.wikimedia.org/math/a/7/8/a78...875653bbd2a.png

Minha solução compila sem apresentar erros, porém , o resultado não é exibido em tela. Se alguém encontrar alguma irregularidade, fico grato.

#include <stdio.h>  
#include <stdlib.h>  
  
int main(int argc, char *argv[])  
{  
    
  int tamanho,cont,i,j;  
       
     printf("Insira o numero de valores conhecidos da funcao que deseja interpolar:\t");  
     scanf("%d",&tamanho);  
     printf("\n");   
       
  float vetfx[tamanho],vetx[tamanho],x,pdtparcial,pdtfinal,fx;  
       
     printf("Valores de x pre existentes:\n");  
       
     for(cont=0;cont<tamanho;cont++){  
        printf("Insira o valor de x%d :\t",cont);  
        scanf("%f",&vetx[cont]);  
     }                                  
     printf("\n");     
          
            
     printf("Valores de f<x> pre existentes:\n");      
       
     for(cont=0;cont<tamanho;cont++){  
        printf("Insira o valor de y%d :\t",cont);  
        scanf("%f",&vetfx[cont]);  
     }                                  
     printf("\n");     
  
     printf("Insira o valor de x para o qual deseja obter f<x>: ");  
     scanf("%f",&x);  
     printf("\n");  
       
     fx=0;          
     pdtfinal=1;  
            
     for(i=0;i<tamanho;i++){  
       for(j=0;j<=tamanho;j++){  
          if(j=i){j++;}  
          pdtparcial=0;  
            
          pdtparcial=(x-vetx[j])/(vetx[i]-vetx[j]);            
            
          if(j!=tamanho){ pdtfinal*=pdtparcial; }  
       }  
         
       fx=fx+vetfx[i]*pdtfinal;  
          
       pdtfinal=0;                                              
  
     }   
  
     printf("O valor de f<%f> e : %.4f ",x,fx);  
     printf("\n\n");  
       
  
  system("PAUSE");      
  return 0;  
}

Havia postado essa dúvida em “Java Básico”.Perdão.

[]'s

2 Respostas

A

Dê exemplos de E/S, e diga qual saída você espera.

P

(função linear ‘f(x)=x’ );

Número de valores conhecidos = 4;

vetx = [0,1,3,4]
vetfx=[0,1,3,4]

Valor para o qual se quer obter f(x):

x=2;

f(x)=2;

Criado 11 de outubro de 2011
Ultima resposta 11 de out. de 2011
Respostas 2
Participantes 2