Ir ao conteúdo
  • Cadastre-se

Geloww

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por Geloww

  1. Olá pessoal, sou inexperiente em linguagens de programação, mas estou mais familiarizado com a linguagem C.
    Tenho de realizar um código que realize interpolação de Newton mostrando o polinômio no final do programa.

    #include <stdio.h>
    #include <stdlib.h>
    int main () {
        int i,j,m,n,p,q,w,o,k;
        double S[20],B[20],V[2],U[2],C[20];
        double A[20][20];
        scanf("%d",&p);//numero de pontos estabelecidos no plano
        for (i=0; i<19; i++){
                for (j=0; j<19; j++)
                    A[i][j]=0;
        }
        for (i=0;i<19;i++){
            S[i]=0;
            V[i]=0;
            B[i]=0;
            C[i]=0;
            U[i]=0;
        }
        q=p;
        w=p+1;
    
        for (i=0;i<p;i++)
            for (j=0;j<2;j++){
                if(j==0){
                    printf("Digite o valor de X %d \n",i+1);
                    scanf("%lf",&A[i][j]);
                }
                else {
                    printf("Digite o valor de Y %d \n",i+1);
                    scanf("%lf",&A[i][j]);
                }
            }
            for (j=2; j<p+1;j++){
                for (i=0; i<p; i++){
                        A [i][j] = (A[i+1][j-1]-A[i][j-1])/ (A[j+i-1][0] - A [i][0]);
                }
            }
    
            for (i=0; i<q; i++){
                for (j=0; j<w; j++){
                    printf("%lf\t", A[i][j]);
                }
                w--;
                printf("\n");
        }
        S[0]=A[0][1];
        U[1]=1;
        V[1]=1;
        i=1;
        while (i<p){
            V[0]= - A[i-1][0];
            U[0]= - A[i][0];
            switch (i){
                case 1:{
                    for (m=0;m<2;m++){
                        for(n=0;n<2;n++){
                            k=m+n;
                            B[k]=B[k]+V[m]*U[n];
                        }
                    }
                    for (n=0;n<p;n++)
                        C[n]=B[n];
                }
                default :{
                    for (m=0;m<p;m++){
                        for(n=0;n<2;n++){
                            k=m+n;
                            B[k]=B[k]+C[m]*U[n];
                        }
                    }
                    for (n=0;n<p;n++)
                        C[n]=B[n];
                }
                for (n=0;n<p+1;n++)
                S[n]=S[n]+C[n];
            }
            i++;
            for (n=0;n<p+1;n++)
                B[n]=0;
        }
        for(n=0;n<p+1;n++)
            printf("\n%lf",S[n]);
    }

    No caso, o polinômio sairia como um vetor, no qual, as linhas diriam qual a ordem da potência de x, ou seja, S[0]= n1* x ^0, S[1] = n2*x^1, etc.
    Mas estou com alguns problemas de execução, alguem poderia dar uma olhada e me ajudar?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!