PDF de programación - Programación: operación axpy

Imágen de pdf Programación: operación axpy

Programación: operación axpygráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Noviembre del 2017)
1.289 visualizaciones desde el 19 de Noviembre del 2017
81,2 KB
2 paginas
Creado hace 7a (30/01/2017)
Programaci´on: operaci´on axpy

Objetivos. Programar una funci´on que calcule αx + y, donde α ∈ R, x, y ∈ Rn.

Requisitos. Programaci´on de funciones con arreglos y ciclos for; creaci´on de vectores
pseudoaleatorios; medici´on del tiempo de ejecuci´on.

1. Problema: operaci´on axpy. En alg´un lenguaje de programaci´on escribir una funci´on
que calcule el vector αx + y, donde α ∈ R, x, y ∈ Rn.

Entrada: α ∈ R, x, y ∈ Rn.

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

Salida: el vector αx + y.

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

function r = axpy(a, x, y),

n = length(x);
r = zeros(n, 1);
for j = 1 : n,

r(j) = a * x(j) + y(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. Escribir un programa que llame a la funci´on del
ejercicio anterior, aplic´andola a los siguientes datos:

 ,

 3−4

1

 .

 2

5−2

α = 5,

x =

y =

Nuestra funci´on axpy debe regresar el mismo resultado que la expresi´on alpha * x + y.
Soluci´on en el lenguaje de Matlab (guardar en el archivo testaxpy1.m):

function [] = testaxpy1(),

alpha = 5; x = [3; -4; 1]; y = [2; 5; -2];
display(axpy(alpha, x, y));
display(alpha * x + y);

end

Programaci´on: operaci´on axpy, p´agina 1 de 2

4. Prueba con un vector corto pseudoaleatorio.

function [] = testaxpy2(),

alpha = 2 * rand() - 1;
x = 2 * rand(n, 1) - ones(n, 1);
y = 2 * rand(n, 1) - ones(n, 1);
display(alpha);
display(x);
display(y);
p = axpy(alpha, x, y);
display(p);
q = alpha * x - y;
display(norm(p - q));

end

5. Pruebas con vectores pseudoaleatorios largos. En alg´un lenguaje de progra-
maci´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 tiem-
po de ejecuci´on. Las computadoras contemporaneas realizan una operaci´on de tipo axpy
muy r´apidamente, a´un cuando n es grande. Para medir mejor los intervalos de tiempo,
repetimos cada prueba 10 veces. Soluci´on en Matlab (guardar en el archivo testaxpy3.m):

function [] = testaxpy3(),

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

2 * rand() - 1;

display(n);
alpha =
x = 2 * rand(n, 1) - ones(n, 1);
y = 2 * rand(n, 1) - ones(n, 1);
t1 = cputime();
for rep = 1 : nrep,

p = axpy(alpha, x, y);

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: operaci´on axpy, p´agina 2 de 2
  • Links de descarga
http://lwp-l.com/pdf7572

Comentarios de: Programación: operación axpy (1)

Imágen de perfil
19 de Abril del 2020
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

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