Escreva um algoritmo para dada uma matriz
e um vetor bn times 1=[cb1 b2 vdots bn] retorne o produto A cdot b.
Passo 1
Beleza, vamos analisar o que o exercício pede. Ele quer um algoritmo que, dado
uma matriz de dimensão ,
um vetor de dimensão ,
retorne o produto .
Conteúdo da matéria: álgebra linear básica (produto de matriz por vetor) e lógica de programação (laços, inicialização, soma e multiplicação).
O que vamos precisar:
Saber que o produto de uma matriz por um vetor resulta num vetor de tamanho ,
Entender que cada entrada desse vetor é o “produto interno” (dot product) entre uma linha de e o vetor ,
Definir laços aninhados para percorrer linhas e colunas.
Passo 2
Antes de codificar, entenda a teoria:
Para cada linha ci ;=;sumj=1^n aij,bj de , o elemento do vetor resultado é
Isso é só a soma de cada vezes — o famoso produto escalar entre a linha e o vetor .
Passo 3
Agora, monta o algoritmo em pseudocódigo, passo a passo:
Algoritmo MatrizVetor(A, b, m, n):
// A é m×n, b é n×1
criar vetor c de tamanho m
para i de 1 até m faça
c[i] ← 0 // inicializa o acumulador
para j de 1 até n faça
c[i] ← c[i] + A[i][j] * b[j]
fim para
fim para
retornar c
Explicando:
Primeiro criamos o vetor c com m posições.
O laço externo (índice i) escolhe a linha de A.
Dentro dele, inicializamos c[i] em zero pra começar a soma.
O laço interno (índice j) percorre as colunas da linha i, multiplica A[i][j] por b[j] e acumula em c[i].
Resposta
O algoritmo acima retorna o vetor ci = sumj=1^n aij,bj, cujos componentes são