Método da Interpolação por Eliminação Gaussiana em Scilab

Versão do Scilab: 5.5.2

Observação: Só calcula equação linear e quadrática;

clear
clc
//Eliminação Gaussiana
//Variavel matriz é a matriz incompleta
//Variavel matrizResposta é a matriz que contem as respostas dos sistemas lineares
function  matrizCoeficientes= eliminacaoGauss(matriz, matrizResposta)
    matrizCompleta=[matriz matrizResposta];
    n=size(matriz,1);
    disp("Resolução do Sistema")
    disp("Matriz Ampliada = ")
    disp(matrizCompleta)
    for j=1:(n-1)
        for i=(j+1):n
           mij=matrizCompleta(i,j)/matrizCompleta(j,j)
           matrizCompleta(i,:)=matrizCompleta(i,:)-mij*matrizCompleta(j,:)
        end
    end
    disp("Matriz Escalonada")
    disp(matrizCompleta)
    //Fazer Retrosubstituição
    matrizCoeficientes(n)=matrizCompleta(n,n+1)/matrizCompleta(n,n)
    for i=(n-1):-1:1
        matrizCoeficientes(i,1)=(matrizCompleta(i,n+1)-matrizCompleta(i,i+1:n)*matrizCoeficientes(i+1:n,1))/matrizCompleta(i,i)
    end
    disp("Matriz resposta : ")
    disp(matrizCoeficientes)
endfunction
        
    
//ENTRADA DE DADOS
// a primeira coluna é toda de 1
//Se a interpolação é linear só colocar os pontos em duas colunas
//Se a interpolação é quadrática => terceira coluna é os numeros da segunda ao quadrada
matriz= [1 31.5 992.25; 1 49.2 2420.64; 1 70.8 5012.64]; //é a matriz incompleta
matrizResposta=[80 ; 100 ; 120 ];    // é a matriz que contem a resposta do sistema linear

matrizCoeficientes = eliminacaoGauss(matriz, matrizResposta)
polinomio = poly(matrizCoeficientes,"x", "coeff")
disp("Polinomio : ")
disp(polinomio)
    
//CALCULO DO VALOR EM UM PONTO NO POLINOMIO DESCOBERTO, OU SEJA, f(x)
ponto = 55.7
valor = horner(polinomio, ponto)
disp("")                //para pular linha
printf("Valor no ponto (%g",ponto);
printf(") é = %g", valor);

Comentários

Postagens mais visitadas deste blog

Cálculo do Erro para Interpolação em Scilab

Método de Interpolação de Lagrange em Scilab