7 de dez de 2012

Multiplicação de polinômios no Matlab sem o conv

Implementando, com auxílio dos conhecimentos do post anterior, a multiplicação de dois polinômios (que, normalmente, é feita pela função conv):


  1. function D=multiplicarPolinomios(A,C)
  2. % Entre com A e C na forma de vetor coluna e obtenha D, onde:
  3. % A representa a0^N+...+aN
  4. % B representa b0^M+...+bM
  5. %e a saida eh a0*b0^(M+N)+...+aNbM
  6.  
  7. N=length(C);
  8. B=zeros(0);
  9. for i=1:N,
  10.     Aux=[zeros(i-1,1);A;zeros(N-i,1)];
  11.     B=[B,Aux];
  12.     i=i+1;
  13. end
  14. D=B*C;


Precisei implementar essa função por extenso para calcular um sistema de equações, que não estava na forma explícita.

2 comentários:

Gabriel C disse...

cara esse código nao funcionou versão do matlab R2013a

declarei os vetores A e C com letras maiusculas e obtive o seguinte erro ao executar a funçao:


Error using vertcat
Dimensions of matrices being concatenated are not consistent.

Error in convolucao (line 10)
Aux=[zeros(i-1,1);A;zeros(N-i,1)];

q versão do matlab vc usa?

Raphael disse...

Fiz esse programa no 2008b, creio que não seja questão de compatibilidade, mas algum bug. Poderia passar os vetores A e C que você usou como entrada? Vou tentar reproduzir seu erro aqui e descobrir o bug. Caso descubra o bug, por favor comente aqui para contribuir para a comunidade.

Quem sou eu

Raphael Fernandes
Carioca, Brasileiro, Estudante de Robótica
Hiperativo, Imperativo
Gosto de tecnologia, de transporte, de Rock, de reclamar e de propagandas criativas (e outras coisas que posso ter falado em um post ou não)
Musicalmente falando, sou assim.

Related Posts Plugin for WordPress, Blogger...

Veja também...