Exercício 12: Construir um trecho de código que realize a multiplicação de uma matriz A por um vetor ve armazene o resultado em um vetor r .

Passo 1

O enunciado pede um código que receba uma matriz A de tamanho m×n e um vetor v de tamanho n, faça a multiplicação A·v e armazene o resultado num vetor r de tamanho m. O conteúdo é multiplicação matriz-vetor, em que cada componente r_i é o produto escalar da i-ésima linha de A pelo vetor v.

Passo 2

Para multiplicar A por v usamos a definição de produto matriz-vetor: para todo i de 0 até m-1, vale
ri=sumj=0^n-1Aijcdot vj
Precisamos então percorrer cada linha i de A e, para cada linha, somar A[i][j]*v[j] em r[i].

Passo 3

Implementamos isso com dois loops aninhados em C (ou linguagem similar): o loop externo varia i de 0 a m-1 e inicializa r[i] com zero; o loop interno varia j de 0 a n-1 e acumula o produto A[i][j]*v[j] em r[i].

Resposta

// Supondo A[][], v[] e r[] já declarados e m,n definidos
for(int i = 0; i < m; i++) {
r[i] = 0; // inicializa cada componente do resultado
for(int j = 0; j < n; j++) {
r[i] += A[i][j] * v[j]; // acumula o produto escalar da linha i com o vetor
}
}

Exercícios relacionados