Buscar

Método das Diferenças Divididas de Newton em Linguagem C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

______ 
 Página 1 de 3 
 
Departamento de Matemática 
Disciplina: Cálculo Numérico 
Professor: Ismael R. F. Lins 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Método das Diferenças Divididas de Newton em Linguagem C 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aluno: ____________________________ 
Matrícula: _________________________ 
 ______ 
 Página 2 de 3 
 
#include<stdio.h> 
 
int main(){ 
 
 system("Color 4F"); 
 float x[5], y[5], a[5], f[5], aux; 
 int Op, i=1; 
 
 printf("\nEste programa utiliza o metodo das diferencas divididas de Newton \npara interpolar ate 4 prontos 
informados pelo usuario.\n\n"); 
 printf("Quantos pontos deseja interpolar?\nInforme o numero da opcao desejada.\n\n\t(1) - Um.\n\t(2) - 
Dois.\n\t(3) - Tres.\n\t(4) - Quatro.\n\t>Opcao: "); 
 scanf("%d",&Op); 
 
 while((Op!=1) && (Op!=2) && (Op!=3) && (Op!=4)){ /*Enquanto o usuario digitar um numero fora das opcoes, o programa informa 
o erro e pede um novo numero.*/ 
 
 printf("Opcao invalida! Informe um numero dentre as opcoes.\n\t>Opcao: "); 
 scanf("%d",&Op); 
 } 
 
 while(i<=Op){/*Recebendo os pontos para interpolar. Enquanto o for menor que o numero da opcao informada, que e o numero de pontos 
para interpolar, o programa vai pedir os pontos.*/ 
 
 printf("\nInforme o(s) ponto(s).\n"); 
 printf("\n\t>X%d: ",i); 
 scanf("%f",&x[i]);/*Vetor x que recebe os pontos em x.*/ 
 printf("\t>Y%d: ",i); 
 scanf("%f",&y[i]);/*Vetor y que recebe os pontos em y.*/ 
 i++; 
 } 
 
 if(Op==1){/*Se o usuario deseja interpolar apenas um ponto.*/ 
 
 printf("\nPonto a ser interpolado e:\n\t (%.2f,%.2f)",x[1],y[1]); 
 f[0]=y[1];/*Polinomio de grau 0, entao apenas f[x1] que e a0.*/ 
 printf("\n\nA funcao interpoladora de grau 0 e:\n\t> P0(x) = (%.2f)",f[0]); 
 } 
 if(Op==2){/*Se o usuario deseja interpolar dois pontos.*/ 
 
 printf("\nOs pontos a serem interpolados sao:\n\t (%.2f,%.2f) (%.2f,%.2f)",x[1],y[1],x[2],y[2]); 
 f[0]=y[1];/*f[x1] que e a0.*/ 
 f[1]=(y[2]-y[1])/(x[2]-x[1]);/*Polinomio de grau 1, entao apenas f[x1 x2] que e a1.*/ 
 printf("\n\nA funcao interpoladora de grau 1 e:\n\t> P1(x) = (%.2f)+(%.2f(x-(%.2f)))",f[0],f[1],x[1]); 
 } 
 if(Op==3){/*Se o usuario deseja interpolar tres pontos.*/ 
 
 printf("\nOs pontos a serem interpolados sao:\n\t (%.2f,%.2f) (%.2f,%.2f) 
(%.2f,%.2f)",x[1],y[1],x[2],y[2],x[3],y[3]); 
 f[0]=y[1];/*f[x1] que e a0.*/ 
 f[1]=(y[2]-y[1])/(x[2]-x[1]);/*f[x1 x2] que e a1.*/ 
 f[2]=(y[3]-y[2])/(x[3]-x[2]);/*f[x2 x3]*/ 
 f[2]=(f[2]-f[1])/(x[3]-x[1]);/*Polinomio de grau 2. f[x1 x2 x3] que e a2.*/ 
 printf("\n\nA funcao interpoladora de grau 2 e:\n\t> P2(x) = (%.2f)+(%.2f(x-(%.2f)))+(%.2f(x-(%.2f))(x-
(%.2f)))",f[0],f[1],x[1],f[2],x[1],x[2]); 
 } 
 ______ 
 Página 3 de 3 
 
 if(Op==4){/*Se o usuario deseja interpolar quatro pontos.*/ 
 
 printf("\nOs Pontos a serem interpolados sao:\n\t (%.2f,%.2f) (%.2f,%.2f) (%.2f,%.2f) 
(%.2f,%.2f)",x[1],y[1],x[2],y[2],x[3],y[3],x[4],y[4]); 
 f[0]=y[1];/*f[x1] que e a0.*/ 
 f[1]=(y[2]-y[1])/(x[2]-x[1]);/*f[x1 x2] que e a1.*/ 
 f[2]=(y[3]-y[2])/(x[3]-x[2]);/*f[x2 x3]*/ 
 aux=f[2];/*variável auxiliar recebe f[x2 x3]*/ 
 f[2]=(f[2]-f[1])/(x[3]-x[1]);/*f[x1 x2 x3] que e a2.*/ 
 f[3]=(y[4]-y[3])/(x[4]-x[3]);/*f[x3 x4]*/ 
 f[3]=(f[3]-aux)/(x[4]-x[2]);/*f[x2 x3 x4]*/ 
 f[3]=(f[3]-f[2])/(x[4]-x[1]);/*Polinomio de grau 3. f[x1 x2 x3 x4] que e a3*/ 
 printf("\n\nA funcao interpoladora de grau 3 e:\n\t> P3(x) = (%.2f)+(%.2f(x-(%.2f)))+(%.2f(x-(%.2f))(x-
(%.2f)))+(%.2f(x-(%.2f))(x-(%.2f))(x-(%.2f)))",f[0],f[1],x[1],f[2],x[1],x[2],f[3],x[1],x[2],x[3]); 
 } 
 printf("\n\n"); 
 return(0); 
}

Outros materiais