Octave - Sistemas lineares por Jacobi

Publicado por Daniel Moreira dos Santos (última atualização em 14/07/2010)

[ Hits: 13.838 ]

Homepage: http://www.danielmoreira.wordpress.com

Download Jacobi.m




O método de Jacobi trata-se dum algoritmo para determinar a solução de um sistema de equações lineares com os maiores valores absolutos em cada linha e coluna dominados pelo elemento da sua diagonal. Trata-se duma versão simplificada do algoritmo de valores próprios de Jacobi.

  



Esconder código-fonte

function [x,Iter,CondErro] = Jacobi(n,A,b,Toler,IterMax)


%n,A,b,Toler,IterMax = ordem,matriz,vetor independente,tolerancia,numero

%maximo de iteracoes

%x,Iter,CondErro = vetor solucao,numero de iteracoes e condicao de erro



for i=1:n

    r=1/A(i,i);

    for j=1:n

        if i~=j

            A(i,j)=A(i,j)*r;

        end

    end

    b(i)=b(i)*r;

    x(i)=b(i);

end

Iter =0;

 fprintf('\nIter = %d  ' ,Iter);

    x

    

while 1

    Iter = Iter+1;

    for i=1:n

        Soma=0;

        for j=1:n

            if i~=j

                Soma=Soma+A(i,j)*x(j);

            end

        end

        v(i)=b(i)-Soma;

    end

    NormaNum =0;

    NormaDen=0;

    for i=1:n

        t=abs(v(i)-x(i));

        if t>NormaNum

            NormaNum =t;

        end

        if abs(v(i))>NormaDen

            NormaDen = abs(v(i));

        end

        x(i)=v(i);

    end

    NormaRel = NormaNum/NormaDen;

    fprintf('\nIter = %d  ' ,Iter);

    x

    fprintf('NormaRel = %f \n',NormaRel);

    if NormaRel<=Toler | Iter>=IterMax

        break;

    end

end

if NormaRel<=Toler

    CondErro =0;

else

    CondErro =1;

end


Scripts recomendados

Octave - Calcular raiz pelo método da Secante

Crivo de Eratóstenes Simples em Fortran 95

Algoritmo para calcular a tabuada

Cálculo da raiz de uma função pelo Método da Bisseção - Octave

Função Fatorial Recursiva em Fortran 95


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts