PDF de programación - Programación: producto punto de dos vectores

Imágen de pdf Programación: producto punto de dos vectores

Programación: producto punto de dos vectoresgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Noviembre del 2017)
963 visualizaciones desde el 19 de Noviembre del 2017
80,4 KB
2 paginas
Creado hace 4a (30/01/2017)
Programaci´on: producto punto de dos vectores

Objetivos. Programar la funci´on que calcule el producto punto de dos vectores.

Requisitos. Programaci´on de funciones, ciclos for, entradas de vectores.

1. Problema: producto punto de dos vectores. En alg´un lenguaje de programaci´on
escribir una funci´on que calcule el producto punto de dos vectores dados.

Entrada: a, b ∈ Rn.

Condici´on que debe cumplir la entrada: los vectores dados son de la misma longitud.
No tiene que verificar esta condici´on.

Salida: el n´umero(cid:80)n

j=1 ajbj.

Soluci´on en el lenguaje de Matlab (guardar en el archivo mydotproduct.m):

function [p] = mydotproduct(a, b),

n = length(a);
p = 0;
for j = 1 : n,

p = p + a(j) * b(j);

end

end

2. An´alisis de complejidad. Calcular el n´umero de operaciones de multiplicaci´on en el
algoritmo anterior. La respuesta es un polinomio de la variable n. Calcular el n´umero de
operaciones de adici´on.

3. Pruebas con vectores peque˜nos. En alg´un lenguaje de programaci´on escribir un
programa que llame a la funci´on del ejercicio anterior, aplic´andola a los vectores

 ,

 3−4

1

 .

 2

5−2

a =

b =

Soluci´on en el lenguaje de Matlab (guardar en el archivo testmydotproduct1.m):

function [] = testmydotproduct1(),
a = [3; -4; 1]; b = [2; 5; -2];
display(mydotproduct(a, b));
display(a’ * b);

end

Programaci´on: producto punto de dos vectores, p´agina 1 de 2

4. Pruebas con vectores pseudoaleatorios. El prop´osito de estas pruebas es asegurar-
se que la funci´on devuelve resultados correctos. Guardar en el archivo testmydotproduct1.m
y ejecutar:

function [] = testmydotproduct2(),

for testindex = 1 : 10,

n = round(rand() * 10);
a = 2 * rand(n, 1) - 1;
b = 2 * rand(n, 1) - 1;
res1 = mydotproduct(a, b);
res2 = a’ * b;
disp(abs(res1 - res2));

end

end

5. Tiempo de ejecuci´on con vectores largos pseudoaleatorios. En alg´un lenguaje
de programaci´on escribir un programa que genere vectores de tama˜nos grandes: n = 104,
luego n = 105, luego n = 106, aplique a estos vectores la funci´on del Ejercicio 1 y
mida el tiempo de ejecuci´on. Soluci´on en el lenguaje de Matlab (guardar en el archivo
testmydotproduct3.m):

function [] = testmydotproduct3(),

nrep = 10;
for n = [100000, 1000000, 10000000],

display(n);
a = rand(n, 1); b = rand(n, 1);
t1 = cputime();
for rep = 1 : nrep,

p = mydotproduct(a, b);

end
t2 = cputime();
display((t2 - t1) / nrep);

end

end

¿C´omo se cambia el tiempo de ejecuci´on cuando n se multiplica por 10?

Programaci´on: producto punto de dos vectores, p´agina 2 de 2
  • Links de descarga
http://lwp-l.com/pdf7573

Comentarios de: Programación: producto punto de dos vectores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad