Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica03 PDF
Practica03 PDF
0 pgina 1
PROGRAMACIN EN MATLAB
PRCTICA 03
INTRODUCCIN A MATLAB 7.0
B= [ -1 0 3; 6 1 16; 9 4 2]
C=A*B
A
B
inv(A)*B
A\B
B*inv(A)
B/A
Nota: inv(A) es una funcin que realiza el clculo de la inversa de la matriz A.
A modo de ejercicio se propone el clculo de la expresin matricial (A-3B+C)C-1, donde las
matrices A, B y C vienen dadas por:
1 1 0 1 3 2 2 1 3
A = 5 12 13 B = 6 0 3 C = 7 1 9
1 0 4 3 7 13 1 4 3
MATLAB permite definir una serie de matrices de forma automtica sin necesidad de tener
que introducir los elementos uno por uno. Las matrices que se pueden generar de esta
manera cumplen alguna peculiaridad que las distingue del resto. Veamos en este apartado
algunas de las funciones que hacen esto posible.
eye(4) forma la matriz unidad de tamao (4x4)
zeros(3,5) forma una matriz de ceros de tamao (3x5)
zeros(4) dem de tamao (4x4)
ones(3) forma una matriz de unos de tamao (3x3)
ones(2,4) dem de tamao (2x4)
linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y
x2
logspace(d1,d2,n) genera un vector con n valores espaciados logartmicamente
entre 10^d1 y 10^d2. Si d2 es pi1, los puntos se generan entre
10^d1 y pi
rand(3) forma una matriz de nmeros aleatorios entre 0 y 1, con
distribucin uniforme, de tamao (3x3)
rand(2,5) dem de tamao (2x5)
randn(4) forma una matriz de nmeros aleatorios de tamao (4x4), con
distribucin normal, de valor medio 0 y varianza 1
1
pi es una variable predefinida en MATLAB, que como es fcil suponer representa el nmero .
TECNUN
3 Prctica. Matlab 7.0 pgina 3
magic(4) crea una matriz (4x4) con los nmeros 1, 2, ... n*n, con la
propiedad de que todas las filas y columnas suman lo mismo
diag(x) forma una matriz diagonal, en la que los elementos de la
diagonal son los elementos del vector x.
Pruebe las siguientes sentencias en MATLAB
zeros(4)
B=zeros(2,3)
ones(1,3)
ones(3,1)
A=eye(3)
eye(2)
magic(3)
C=rand(3,6)
diag([1 2 3])
x=[ -1 3 1 4], diag(x)
y=linspace(0, 10, 21)
z=logspace(1, 6, 6)
z=logspace(0, 6, 13)
Aparte de las operaciones bsicas con matrices, MATLAB es capaz de realizar clculos de
nivel superior gracias al conjunto de funciones que posee. Aqu se presentan algunas de ellas
que pueden resultar de inters para el alumno.
B = inv(A) calcula la inversa de A
d = det(A) devuelve el determinante d de la matriz cuadrada A.
t = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de una
matriz cuadrada A
[m,n] = size(A) devuelve el nmero de filas m y de columnas n de una matriz
rectangular A
i = size(A,1) devuelve el nmero de filas de A
j = size(A,2) devuelve el nmero de columnas de A
n = size(A) devuelve el tamao de una matriz cuadrada A
A modo de ejercicio realice el clculo del determinante y de la inversa de la siguiente matriz
cuadrada A.
1 2 3 1 0
7 5 2 1 13
A = 4 11 6 3 0
0 2 4 9 12
3 33 1 5 6
TECNUN
3 Prctica. Matlab 7.0 pgina 5
Para acceder a filas y/o columnas que no sean consecutivas, basta con crear un vector con las
filas y/o columnas a las que se desea acceder. Por ejemplo para extraer las filas 1 y 3 y las
columnas 2, 4 y 5 de una matriz B, se puede utilizar la siguiente secuencia de operaciones:
B=magic(5)
fil = [1, 3]
col = [2, 4, 5]
A=B(fil,col)
Los vectores se pueden considerar como matrices con una fila o una columna, por lo tanto
el tratamiento de vectores desde el punto de vista matricial es el mismo que el de las
matrices. En ocasiones interesa realizar en un vector o incluso en una matriz operaciones
elemento a elemento. Por ejemplo supongamos que se desea calcular el cuadrado de cada
elemento de un vector.
Dado un vector x
x=[1 2 4 6 8]
el cuadrado de los elementos de x se obtiene como sigue
x.^2
mientras que si se intenta ejecutar el comando
x^2
el programa da un error porque las dimensiones no son acordes segn las reglas del producto
de matrices.
Obsrvese que el operador potenciacin para el clculo elemento a elemento es .^.El
conjunto de operadores que realizan clculos elemento a elemento son:
.* multiplicacin
.^ potenciacin
a.\b divide los elementos de b por los de a (a y b mismo tamao)
a./b divide los elementos de a por los de b (a y b mismo tamao)
Evidentemente la adicin y la sustraccin no requieren el punto, ya que son por
definicin operaciones elemento a elemento.
Obtenga el cubo de los nmeros naturales impares desde 1 hasta 15. Obtn asimismo
una matriz cuyos elementos sean los cuadrados de los elementos de la matriz A=magic(6).
Funcin save
La funcin save puede guardar aquellas variables que se encuentren en el Workspace.
Inicialmente vace el Workspace utilizando la funcin clear. Cree una matriz de tipo magic
de dimension 3x3 y asgnele el nombre de matriz_A. Ahora calcule su inversa y guarde el
resultado en otra matriz llamada matriz_B. Posteriormente asigne el resultado del producto
de ambas matrices a una variable llamada matriz_AxB.
Funcin load
Vace nuevamente el Workspace utilizando la funcin clear. Ahora el Workspace est vaco
y vamos a recuperar los ficheros de datos guardados anteriormente.
Escriba: >>load Matrices.
El resultado es que en el Worskspace reaparecen las variables matriz_A, matriz_B y
matriz_AxB, con sus respectivos contenidos.
Vace nuevamente el Workspace utilizando la funcin clear y escriba:
>>load Matriz_A_y_B
Observar que en el Workspace slo aparece la variable matriz_A y la variable matriz_B,
pero no la matriz_AxB.
Para mas informacin escriba:
>>help load
Y tambin:
>>help save
TECNUN
3 Prctica. Matlab 7.0 pgina 7