Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Mateus Andrade Ferreira

RESOLVIDO MatLab Output argument "maxA" (and maybe others) not assigned during call to...

Recommended Posts

Bom dia galera fiz o programa abaixo que calcula o maior autovalor de uma matriz, ele funcionou bem para o exemplo que eu tinha aqui, matriz A=[3 0 1;2 2 2;4 2 5], porém quando tentei usar outra matriz recebi o seguinte erro:

 

Error in autov (line 4)
[m,n]=size(A);
 
Output argument "maxA" (and maybe others) not assigned during call to
"C:\Users\Mateus\Dropbox\Mestrado\Métodos numéricos\listas\Lista 2\menu\autov.m>autov".
 
se alguem puder me ajudar agradeço. Sei que meu programa é meio complicado, mas talvez alguém possa me ajudar apenas com o erro.
    function [ maxA,iter ] = autov( A,toler,itermax )%entrada: matriz, precisão, usada no exemplo, 0.001, e número máximo de iterações%Saída: o maior autovalor e o numero de iterações[m,n]=size(A);y0=ones(n,1);erro=toler+1;iter=0;z1=zeros(n,1);av=z1;av0=av;z1=A*y0;%calcula o z inicialvetor_E=zeros(n,1);%ITERAÇÕES. ATÉ ENCONTRAR A PRECISÃO DESEJADAwhile erro>=toler && itermax>iter     iter=iter+1;    alpha=0;    for i=1:1:n %encontra o maior elemento de Z1 em módulo e armazena em alpha        if abs(z1(i,1))>alpha        alpha=abs(z1(i,1));        end    end    y1=(1/alpha)*z1; %CALCULA O Y INICIAL        z1=A*y1; %CALCULA O NOVO VALOR DE Z(K+1)           for i=1:1:n %encontra o vetor erro    vetor_E(i,1)=abs(y1(i,1)-y0(i,1))/abs(y1(i,1));    end        menor=0;    maior=0;     for i=1:1:n %encontra o maior e o menor elementos do vetor erro em módulo para o cálculo da precisão        if abs(vetor_E(i,1))>maior        maior=abs(vetor_E(i,1));        end        if abs(vetor_E(i,1))<menor        menor=abs(vetor_E(i,1));        end    end        erro=maior-menor;%calcula a precisão para verificar se chegou a esperada    av0=(z1./y1);%CARREGA O VETOR DE AUTOVALORES%VERIFICA QUAL VALOR TEVE MENOR VARIAÇÃO    menor=0;     for i=1:1:n %encontra o maior e o menor elementos do vetor erro em módulo para o cálculo da precisão    menor=abs(av(i,1));        if abs(av0(i,1)-av(i,1))<menor        maxA=abs(av(i,1));        end    end      y0=y1; %CARREGA Y0 COM O VALOR DE Y1 PARA A ITERAÇÃO SEGUINTEav=av0; %endy1end

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

"maxA" está dentro de um condicional, o que significa que se a condição nunca for atendida ele nunca receberá valor algum, e a função não terá nenhum valor pra retornar para esta variável de saída, o que resulta em erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×