19.11.2012 Views

IntroduccionaMatlab

IntroduccionaMatlab

IntroduccionaMatlab

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introducción a Matlab y Octave, Release 0.1<br />

Importante: No existe una multiplicación de vectores, la operación anterior es operar los vectores elemento<br />

elemento, lo que corresponde más a una tabla que a lo que se esperaría de un vector. De hecho en Cálculo Numérico<br />

no hay ninguna diferencia entre un vector y una simple lista de números.<br />

Una operación importante cuando se habla de vectores es el producto escalar, que se define como.<br />

u · v = �<br />

uivi (3.1)<br />

En Maltab puede calcularse con la función dot.<br />

dot(u, v, dim)<br />

Calcula el producto escalar de dos vectores. El tercer argumento, dim es de utilidad en el caso que alguno<br />

de los dos argumentos o ambos sean matrices.<br />

>> dot(v,w)<br />

ans = 60<br />

Aunque sea mucho menos eficiente también podemos calcular ese producto escalar utilizando la definición de la<br />

operación y la función sum.<br />

sum(x, dim)<br />

Suma los elementos de un vector. dim es de utilidad cuando el argumento sea una matriz.<br />

>> sum(v.*w)<br />

ans = 60<br />

Advertencia: En muchos programas escritos en Matlab encontraremos el producto escalar escrito como<br />

>> u’*v<br />

Es una operación válida, aunque aún no sepamos qué operaciones son el apóstrofe y el asterisco sin punto<br />

respectivamente. El problema de no utilizar la función dot es que estamos utilizando una sintaxis ambigua,<br />

no sabemos si u y v son vectores, además de ser una opreación mucho más propensa a fallar sin dar excesiva<br />

información del porqué. Recordad que la belleza es importante.<br />

prod(x, dim)<br />

Calcula el producto de los elementos de un vector. dim es de utilidad cuando el argumento sea una matriz.<br />

Una técnica importante en Matlab es la concatenación de dos vectores que puede hacerse simplemente pegándolos<br />

>> a = [1,2,3];<br />

>> b = [4,5,6];<br />

>> [a,b]<br />

ans =<br />

1 2 3 4 5 6<br />

o utilizando la función cat.<br />

Ejercicio 5<br />

Cuando Gauss contaba siete años el profesor les puso un ejercicio para tenerlos entretenidos un rato. ¿Cuánto es la<br />

suma de todos los números enteros entre 1 y 100? Gauss llegó fácilmente al reultado en sólo unos pocos segundos<br />

porque vio que sumando pares de números 1+99, 2+98, 3+97... La operación podía reducirse a 50 × 99+100. Con<br />

Matlab se puede hacer la operación por fuerza bruta de muchas maneras pero... ¿Eres capaz de hacerlo con sólo<br />

una línea de código?<br />

Ejercicio 6<br />

3.4. Vectores 17<br />

i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!