PDF de programación - Programación: producto diádico

Imágen de pdf Programación: producto diádico

Programación: producto diádicográfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Noviembre del 2017)
2.334 visualizaciones desde el 19 de Noviembre del 2017
100,4 KB
2 paginas
Creado hace 7a (30/01/2017)
Programaci´on: producto di´adico

Objetivos. Programar una funci´on que calcule el producto di´adico de dos vectores dados.

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

1. Definici´on del producto di´adico. Dados dos vectores a ∈ Rm, b ∈ Rn, su producto
di´adico a ⊗ b se define de la siguiente manera:

(cid:104)

(cid:105)m,n

a ⊗ b =

ajbk

.

j,k=1

En otras palabras, a ⊗ b es una matriz m × n, cuya entrada (j, k) es

(a ⊗ b)j,k = ajbk.

En ingl´es su usan las palabras outer product, dyadic product, tensorial product.
2. Ejemplo. Escribir el producto di´adico a ⊗ b de los vectores

Mostrar que el resultado coincide con el producto matricial

a =

a2
a3

 ,
 a1
 a1

a2
a3

ab(cid:62) =

(cid:20) b1

b2

(cid:21)

.

(cid:3) .

b2

b =

(cid:2) b1

3. Problema: producto di´adico. En alg´un lenguaje de programaci´on escribir una fun-
ci´on que calcule la matriz ab(cid:62), donde a ∈ Rm y b ∈ Rn son dos vectores dados.

Entrada: a ∈ Rm, b ∈ Rn.
Salida: la matriz ab(cid:62).

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

function [r] = outerproduct(a, b),

m = length(a);
n = length(b);
r = zeros(m, n);
for j = 1 : m,

for k = 1 : n,

r(j, k) = a(j) * b(k);

end

end

end

Programaci´on: producto di´adico, p´agina 1 de 2

4. An´alisis de complejidad. Calcular el n´umero de operaciones de multiplicaci´on en el
algoritmo anterior, suponiendo que m = n. La respuesta es un polinomio de la variable n.

5. 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 siguientes datos:

 ,

 3−4

1

(cid:20) 2

5

(cid:21)

.

a =

b =

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

function [] = testouterproduct1(),

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

end

6. Pruebas con vectores grandes aleatorios. En alg´un lenguaje de programaci´on
escribir un programa que genere vectores de tama˜nos grandes: n = 10, n = 102, n = 103,
aplique a estos vectores la funci´on del Ejercicio 3 y mida el tiempo de ejecuci´on. Soluci´on
en el lenguaje de Matlab (guardar en el archivo testouterproduct2.m):

function [] = testouterproduct2(),

for n = [512, 1024, 2048],

display(n);
a = rand(n, 1);
b = rand(n, 1);
t1 = cputime();
p = outerproduct(a, b);
t2 = cputime();
display(t2 - t1);

end

end

¿C´omo se cambia el tiempo de ejecuci´on al multiplicar n por 2?

Programaci´on: producto di´adico, p´agina 2 de 2
  • Links de descarga
http://lwp-l.com/pdf7575

Comentarios de: Programación: producto diádico (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