O Cálculo Numérico e Eletrotécnica
Por: Ednelso245 • 25/12/2018 • 1.121 Palavras (5 Páginas) • 478 Visualizações
...
Testes
Os testes que deveriam ser realizados, não foram possíveis, devido a erros ocorridos na execução do programa, uma vez que para se medir o tempo e confeccionar o gráfico, e conseqüentemente concluir a eficiência de cada método aplicado se faz necessário o cálculo do mesmo, sabendo que não é possível a realização dos testes se o programa não está rodando.
Conclusão
Depois de realizado todas as partes do programa, e confeccionado todos os métodos de cálculo necessários, devemos citar que o programa esteve sujeito a erros de execução, a não correção dos mesmos não significa que não tentamos.
Ao pesquisar sobre os métodos abordados concluímos que os métodos iterativos, bastante comum de se encontrar sistemas lineares que envolvem uma grande porcentagem de coeficientes nulos, têm menos erros de arredondamento, quando a convergência estiver assegurada, já nos métodos diretos fizemos do pivoteamento parcial para amenizar tais erros.
Referências
Pina, H., Mc Graw-Hill, (1995) Métodos Numéricos Lisboa.
http://pt.wikipedia.org/wiki/M%C3%A9todo_de_n%C3%B3s
http://ssdi.di.fct.unl.pt/pce/primer.html
Anexos
/*Entrada de dados,formação da matriz M, verifica-se erro no momento da execução do programa*/
function[m] = circuitos (m)
m(1,1) = input("Digite o valor dos nos: ");
m(1,2) = input("Digite o valor dos ramos: ");
m(1,3) = input("Digite o valor da tensao na fonte: ");
m(2,1) = input("Digite o valor do no terra: ");
m(2,2) = input("Digite o valor do no onde esta ligada a fonte: ");
m(2,3) = 0;
for i=3 : m(1,2)+2 /* A matriz passa a ser definida a ordem pela quantidade de ramos mais duas linhas, que já estão fixadas*/
m(i,1) = input("Digite o numero do no de origem: ");
m(i,2) = input("Digite o numero do no de destino: ");
m(i,3) = input("Digite o valor da resistencia: ");
end
end
/*Considerando que o programa não esteja executando, fixamos uma matriz M, exemplo dado pelo professor*/
function[coefic,t, corr]= valor[dados,n,no_orig,no_dest,resist]
t = time;
dados = [5 6 12;4 0 0;0 1 1;1 2 4;1 4 2;2 4 6;2 3 8;3 4 10]
coefic = zeros(n, n); /*Formação da Matriz Admitância, entrada de zeros*/
for i = 3 : dados(1, 2) + 2
no_orig = dados(i, 1);
no_dest = dados(i, 2);
resist = dados(i, 3);
if no_orig == dados(2, 1) || no_orig == dados(2, 2)
coefic(no_dest,no_dest) = coefic(no_dest,no_dest) + 1 / resist;
else
if no_dest == dados(2, 1) || no_dest == dados(2, 2)
coefic(no_orig,no_orig) = coefic(no_orig,no_orig) + 1 / resist;
else
coefic(no_dest,no_dest) = coefic(no_dest,no_dest) + 1 / resist;
coefic(no_orig,no_orig) = coefic(no_orig,no_orig) + 1 / resist;
coefic(no_orig,no_dest) = coefic(no_orig,no_dest) - 1 / resist;
coefic(no_dest,no_orig) = coefic(no_dest,no_orig) - 1 / resist;
end
end
corr=zeros(n,1); /* Formação da matriz corrente*/
corr(1)=m(1,3)/m(3,3);
t = time - t;
end
end
/* Encontrar a tensão mediante a eliminação de gauss, método direto*/
function [v,t] = elim_gauss(coefic,corr,col)
t = time;
coefic(:,length(coefic(1,:))+1)=corr';
for i=1:length(coefic(:,1))-1
for k=i+1:length(coefic(:,1))
mult=coefic(k,i)/coefic(i,i);
for j=1:length(coefic(1,:))
coefic(k,j)=coefic(k,j)-mult*coefic(i,j);
end
end
end
col=length(coefic(1,:));
for i=length(coefic(:,1)):-1:1
coefic(i,col)=coefic(i,col)/coefic(i,i);
for j=1:i-1
coefic(j,col)=coefic(j,col)-coefic(i,col)*coefic(j,i);
end
end
v=coefic(:,col);
t = time - t;
return;
endfunction
/*Encontrar a tensão mediante o método de gauss-seidel, iterativo*/
function [x] = g_seidel(coefic,corr,k,e,m)
var=1;
v=k;
for
...