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);
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
Postar um comentário
Obrigado pelo contato, retornarei o mais breve possível!