Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE INFORMTICA
Profesor: Dra. Sonia Benz.
ENTORNO DE TRABAJO 3
MANEJO BSICO 6
1. DECLARACIN DE VARIABLES. 6
EJERCITACIN RESUELTA. 38
2
Fundamentos de Informtica UTN FRRo 2011
Qu es Matlab (MATrixLABoratory)?
Es una herramienta para hacer clculos matemticos. Como su nombre lo indica, utiliza la matriz
como elementos bsico.
Es un lenguaje de programacin interactivo y avanzado, pero fcil de utilizar.
Es una plataforma de desarrollo para determinadas reas (herramientas para el procesamiento de
seales, simulacin de sistemas dinmicos, etc.)
Entorno de trabajo
1. Inicio del programa
Se debe iniciar desde el men inicio del sistema operativo/ programas/ Matlab o bien desde el cono de acceso
directo presente en el escritorio de Windows.
2. Pantalla inicial
3
Fundamentos de Informtica UTN FRRo 2011
En esta ventana, se muestra el prompt (>>) indicando al usuario que Matlab est listo para recibir
instrucciones. Las rdenes (comandos o datos) se introducen escribindolas una a una a continuacin del
prompt (>>) y luego se presiona Intro para que las ejecute.
Espacio de trabajo (Workspace): contiene informacin sobre todas las variables que se hayan
definido en esta sesin y permite ver y modificar las matrices con las que se est trabajando. Es la
memoria visible del programa.
Tambin se muestra informacin acerca del directorio y/o archivo en el que se est trabajando
(Current directory). Este directorio se puede cambiar desde esta misma ventana con el
procedimiento caracterstico de Windows.
Hay una barra de herramientas que muestra los tpicos conos para el manejo de archivos, que en este
caso corresponden al editor de archivos *.m del que hablaremos a continuacin.
3. Editor de archivos-M.
Un script es simplemente una lista de comandos escritos segn la sintaxis de Matlab, que ha sido guardado en
un archivo con extensin .m y que tienen la ventaja de poder ejecutarse y/o modificarse sin tener que tener
que escribir las sentencias cada vez que se desea obtener un nuevo resultado.
Para crear un archivo nuevo o abrir un archivo existente desde Matlab solo se debe hacer un clic en el cono
correspondiente segn se indica en la figura.
4
Fundamentos de Informtica UTN FRRo 2011
Al crear un archivo nuevo o abrir un archivo existente, se trabajar en una nueva ventana. La siguiente
imagen es una pantalla tpica del editor de archivos de Matlab.
Ejecutar
Para trabajar con el editor se utilizan los comandos tradicionales de manejo de archivos (Archivo nuevo
Abrir archivo Guardar archivo, etc.)
El nombre del archivo puede formarse por caracteres alfanumricos, sin embargo se debe tener en cuenta que:
Luego de asignar un nombre al archivo, se est en condiciones de escribir el cdigo (las sentencias) que se
desean ejecutar. En el editor se usa la misma sintaxis que en la ventana de comandos.
5
Fundamentos de Informtica UTN FRRo 2011
Ejecutar el programa desde el editor mediante el cono de ejecucin (En versiones anteriores el cono
es una flecha azul hacia abajo).
Ejecutar el programa desde el editor utilizando los atajos de teclado: presionar F5
Ejecutar el programa desde la ventana de comandos. Deber ingresar el nombre del archivo
(inmediatamente despus del prompt y sin la extensin) + intro.
Al seleccionar la primera opcin se indica que el directorio actual de Matlab (Current directory) sea el
directorio en el que se ha guardado el archivo. De esta manera, si no hay errores de sintaxis, se ejecutarn
secuencialmente todas las sentencias del script y los resultados (parciales y/o totales) se mostrarn en la
ventana de comandos. Adems ser posible ver todas las variables definidas y sus caractersticas en el espacio
de trabajo (workspace).
Manejo bsico
1. Declaracin de variables.
Como se mencion anteriormente, Matlab tiene como estructura bsica de almacenamiento de datos y/o
resultados a una estructura de tipo matricial (arrays) y cada uno de sus elementos se identificar mediante
ndices que indiquen el nmero de fila y el nmero de columna en el que se encuentre un elemento
determinado del arreglo matricial. Esos elementos pueden ser nmeros (Reales o complejos) cadenas de
texto (strings).
6
Fundamentos de Informtica UTN FRRo 2011
Para asignarle un valor a una variable es necesario escribir el nombre de la variable seguido del signo igual y
el/los valores que le corresponden. Por ejemplo:
>>A=0.5
Toda variable se identifica con un NOMBRE. Cuando el NOMBRE es asignado por el usuario debe comenzar
con una letra, que puede estar seguida de nmeros. No puede contener espacios ni caracteres especiales.
Cuando no se asigna ningn nombre a la variable, Matlab utiliza el nombre por defecto ans.
>> A+0.3
ans =
0.8000
>>
En todos los casos, Matlab distingue entre maysculas y minsculas. Es decir que, por ejemplo, la variable
Factor ser diferente a la variable factor y a la variable FACTOR.
Existe un conjunto de nombres que estn restringidos para el usuario, ya que estn predefinidos por el
programa, por ejemplo el nmero pi.
>> B=pi
B=
3.1416
>>
7
Fundamentos de Informtica UTN FRRo 2011
Cuando se ejecutan varias lneas de comando y se presentan resultados, la ventana de comandos posee mucha
informacin. En muchos casos se hace necesario limpiar la ventana de comandos de manera tal que la
informacin que se presente posteriormente pueda leerse en forma clara. En estos casos, el uso del comando
clc permite limpiar la informacin en la pantalla, sin embargo las variables definidas permanecen en la
memoria.
Adems, es posible recuperar comandos escritos anteriormente utilizando las teclas de direccin.
9 Con las flechas y se pueden recuperar las rdenes anteriores sin tener que volver a teclearlas.
9 Con las flechas y puede moverse sobre la lnea de comandos.
Para una mayor claridad en la generacin de scripts, es comn utilizar el operador %. Todo lo que se escriba
inmediatamente despus ser considerado un comentario. Realizar aclaraciones (comentarios) en diferentes
secciones del script favorece el entendimiento del mismo a largo plazo o en el caso que sea ledo por otra
persona, por este motivo es importante su implementacin.
A(fila,columna) A(posicin)
La posicin absoluta del elemento en la matriz se determina desde el elemento a11 (posicin 1) hacia abajo y
luego hacia la derecha siguiendo el siguiente esquema:
Tambin es posible utilizar el operador : para referirse a un conjunto de elementos de una matriz o vector.
Por ejemplo, cuando se escribe:
A(:,1) la expresin se refiere a los elementos que se encuentran en todas las filas, columna 1 de la matriz A.
8
Fundamentos de Informtica UTN FRRo 2011
A(3,:) la expresin se refiere a los elementos que se encuentran en la fila 3, todas las columnas de la matriz
A.
inicio:incremento:fin
Cuando el incremento no es asignado, Matlab toma 1 como valor por defecto. Dicho incremento es un
nmero entero, aunque puede ser un nmero positivo o negativo dependiendo de la direccin de la fila o la
columna en la que desee moverse. Por ejemplo, si se escribe:
A(5:-1:2,3) la expresin se refiere a los elementos de las filas 5, 4, 3, y 2 (EN ESE ORDEN), columna 3.
A(7:2:11,9:-2:4) la expresin se refiere a los elementos de las filas 7,9 y 11, columnas 9, 7 y 5.
Como se ver ms adelante, este operador puede usarse de diferentes formas y es importante ser cuidadoso en
la sintaxis de acuerdo a sus usos especficos.
Cuando se manejan vectores, es posible aplicar lo mencionado, sin embargo solo tendremos un ndice y en
este caso la utilizacin del ndice o de la posicin absoluta son equivalentes. La sintaxis ser:
v(posicin)
Por otro lado, hay una amplia variedad de formas para definir variables como vectores o matrices. En lneas
generales, se puede ingresar directamente sus valores, crearlos a partir de otras estructuras (matrices, vectores,
escalares, funciones, etc.), crearlos utilizando comandos u operadores especficos, etc.
9 Vector fila: introduciendo sus valores, separados por espacios o por comas, entre corchetes.
9 Vector columna: introduciendo sus valores, separados por Intro o por puntos y comas (;), entre
corchetes.
9
Fundamentos de Informtica UTN FRRo 2011
9 Matrices: Las matrices se definen por filas. Los elementos de una misma fila estn separados por
comas o espacios y las filas estn separadas por intro o por punto y coma (;).
El comando linspace se utiliza para crear un vector con n elementos igualmente espaciados desde un valor
inicial a un valor final. La sintaxis general es:
9 Utilizando el operador :
A diferencia del comando linspace en el que hay que indicar la cantidad de elementos del vector, con el
operador : es necesario especificar el incremento. En este caso, en el que se genera una secuencia de
valores, el incremento puede ser cualquier nmero real. Otra diferencia importante entre estos comandos es
que con linspace los intervalos son siempre cerrados, es decir que el vector generado siempre incluye el valor
10
Fundamentos de Informtica UTN FRRo 2011
final mientras que con el operador : es posible que el valor final no est incluido como ltimo elemento del
vector.
11
Fundamentos de Informtica UTN FRRo 2011
A= eye (n) Matriz cuadrada de tamao nxn Todos los elementos de la diagonal
son iguales a uno (1), el resto es
A= eye (n,m) Matriz reactangular de tamao nxm igual a cero (0).
12
Fundamentos de Informtica UTN FRRo 2011
Haciendo uso de los conceptos introducidos hasta el momento, es posible generar cualquier estructura a partir
de otra. La cantidad de posibilidades es enorme, aqu se presentan solo algunos ejemplos.
Ejemplo 1.
r=linspace(-1.7,8.3,10)
v1=r(3)
13
Fundamentos de Informtica UTN FRRo 2011
Crear un vector v2 con los elementos de la posicin 2 a la 5 del vector r.
v2=r(2:5)
v3=r(2:2:7)
v4=r(5:-1:1)
Crear un vector v5 con los elementos de las posiciones 10, 8, 6, 4 del vector r.
v5=r(10:-2:4)
14
Fundamentos de Informtica UTN FRRo 2011
v6=[r(8),r(9),r(1),r(3),r(7)]
Crear un vector v7 elementos con todos los elementos del vector v6, ceros en las posiciones 6 a 8 y 0.5 en
la posicin 9.
v7=v6
v7(6:8)=0
v7(9)=0.5
v2
v3
v8=[v2,v3]
15
Fundamentos de Informtica UTN FRRo 2011
Ejemplo 2.
clear all
clc
M1=[0.1,0.3,0.8;0.2,0.7,0.6];
M2 =[4 5 6;3,1,3;2,7,9;1,9,5];
M3=[M1;M2]
M4=[M1(:,3),M2(4:-1:3,2:3)]
M5=[M1(2,:)';M2(:,1)]
% La comilla simple (apstrofe) se utiliza para transponer un vector o
% matriz;
M6=M1;
M6(:,1)=M2(3:4,3)
M7=M2;
M7(1,:)=0
16
Fundamentos de Informtica UTN FRRo 2011
Los comandos size y length se utilizan para determinar el tamao de matrices y vectores. La diferencia reside
en que el comando size devuelve el nmero de filas y columnas de una matriz y/o vector, mientras que el
comando length devuelve la dimensin mayor. Es prctica comn utilizar el comando length para
dimensionar vectores y el comando size para dimensionar matrices.
Operaciones matriciales que siguen las reglas del lgebra lineal. Tales como adicin, sustraccin,
multiplicacin, potenciacin, cociente, etc.
17
Fundamentos de Informtica UTN FRRo 2011
+ Adicin o suma
- Sustraccin o resta
* Multiplicacin
^ Potenciacin
En la siguiente tabla se lista una serie de comandos que permiten calcular el determinante, la transpuesta y la
inversa de una matriz A.
Las operaciones elemento a elemento que estn al alcance de este curso y utilizan una sintaxis especfica son
las siguientes:
Hay una serie de funciones que solo se pueden aplicar elemento a elemento (no se aplican en lgebra
matricial). Algunas de ellas son:
Ejemplo 3.
18
Fundamentos de Informtica UTN FRRo 2011
Calcular: M3=M1+M2, M4=M1*M2, M5=det(M1), M6=M2, M7=inv(M1), M8=M2^2 (Operaciones
matriciales).
Calcular M9=M1.*M2, M10=M1./M2, M11=M1.^2, M12=sin(M1), M13=exp(M1) (Operaciones
elemento a elemento).
M1=[0.1,0.3,0.85;0.2,0.7,0.6;0.9,0.25,0.68];
M2=[1,2,9;8,7,2;3,0,5];
M3=M1+M2
M4=M1*M2
M5=det(M1)
M6=M2'
M7=inv(M1)
M8=M1^2
M9=M1.*M2
M10=M1./M2
M11=M1.^2
M12=sin(M1)
M13=exp(M1)
19
Fundamentos de Informtica UTN FRRo 2011
Un sistema de ecuaciones lineal que no tenga soluciones nicas se lo denomina sistema singular.
Tanto con el mtodo de la matriz inversa como con el mtodo de la divisin izquierda, es necesario definir
una matriz de coeficientes y un vector columna de trminos independientes. Utilizando el comando solve las
ecuaciones se definen como cadenas de texto (strings).
Ejemplo 4.
20
Fundamentos de Informtica UTN FRRo 2011
Resolver los siguientes sistemas de ecuaciones utilizando los tres mtodos propuestos.
2 x + 4 y + 6 z = 18 2 x + 4 y + 6 z = 18 2 x + 4 y + 6 z = 18
1) 4 x + 5 y + 6 z = 24 2) 4 x + 5 y + 6 z = 24 3) 4 x + 5 y + 6 z = 24
3x + y 2 z = 4 2 x + 7 y + 12 z = 30 2 x + 7 y + 12 z = 40
Las soluciones del sistema de ecuaciones utilizando el comando solve se presentan en las siguientes imgenes
de la ventana de comandos. Se observa que este comando nos permite saber si el sistema es compatible
determinado, compatible indeterminado o incompatible.
21
Fundamentos de Informtica UTN FRRo 2011
22
Fundamentos de Informtica UTN FRRo 2011
Mediante el mtodo de la matriz inversa, cuando el valor del determinante vale 0, no es posible calcular la
inversa de la matriz de los coeficientes, generndose un error durante la ejecucin. En el caso 2 y 3 no es
posible identificar entre un sistema compatible indeterminado o un sistema incompatible (Inf=infinito).
23
Fundamentos de Informtica UTN FRRo 2011
Utilizando el mtodo de la divisin izquierda, tampoco es posible resolver los sistemas 2 y 3 (NaN= not a
number).
De acuerdo a los resultados presentados, se concluye que el mtodo de la matriz inversa y el mtodo de la
divisin izquierda son tiles para resolver sistemas de ecuaciones lineales siempre y cuando el sistema sea
compatible. De esta manera, si el determinante de la matriz de los coeficientes es cero, no se debe continuar
con el mtodo. Por otro lado, utilizar el comando solve permite identificar entre sistemas de ecuaciones
determinados o indeterminados, adems es posible utilizarlo para resolver sistemas de ecuaciones lineales y
no lineales.
Los comandos que se utilizan para realizar grficos de funciones en el plano y el espacio se detallan en la
siguiente tabla.
24
Fundamentos de Informtica UTN FRRo 2011
Se pueden modificar tres aspectos del formato de cada funcin representada: tipo de lnea, tipo de marcador y
color. Si no se asigna ningn formato a las lneas, Matlab utiliza valores por defecto. Combinando el tipo de
lnea, el color y el marcador de acuerdo a la nomenclatura presentada en las tablas siguientes, es posible
conseguir una gran variedad de representaciones visuales.
A fin de aadir ttulos a las grficas, nombres a los ejes y a las series se utilizan los siguientes comandos:
Adems, cuando se desea presentar u ocultar las lneas de divisin se activa/ desactiva la grilla con los
comando grid on/ grid off.
Grficas en el plano.
Ejemplo 5.
x=-3:0.1:3;
y=x.*exp(-(x.^2));
plot(x,y,'r*-')
title('Grfica de funciones en el plano') % Ttulo del grfico
xlabel('x') % Ttulo de la abscisa
ylabel('f(x)') % Ttulo de la ordenada
grid on % Muestro la grilla
25
Fundamentos de Informtica UTN FRRo 2011
Cuando se ejecutan los comandos de representacin grfica, aparecer una nueva ventana (entorno grfico)
como la siguiente:
Hay dos maneras de representar dos o ms curvas (puntos de datos) en una misma grfica:
Ejemplo 6.
y = x e ( x ) con 3 x 3
2
x = 0.05
Las lneas de comando que definen las variables son las mismas en ambos casos.
x=-3:0.05:3;
y=x.*exp(-(x.^2));
x2=-1.5:0.1:1.5;
y2=sin(x2);
x3=-1.5:0.25:1.5;
26
Fundamentos de Informtica UTN FRRo 2011
y3=1.5*cos(x3);
hold on
plot(x,y,'k-')
plot(x2,y2,'m-.') plot(x,y,'rd-',x2,y2,'bo:',x3,y3,'g-')
plot(x3,y3,'cs--')
hold off
Y finalmente se definen las lneas de cdigo que le dan formato al grfico (ttulos, nombres de las series, etc.)
que son las mismas para ambos casos.
El resultado es el mismo en ambos casos, excepto porque se han utilizado diferentes colores, marcadores y
tipos de lnea.
Como se puede observar en el cdigo, mediante hold on se le indica a Matlab que se van a graficar varias
curvas, a continuacin se escriben tantas sentencias de graficacin (en este caso plot) como curvas se desee
representar, y finalmente se escribe el comando hold off.
27
Fundamentos de Informtica UTN FRRo 2011
Por el contrario, si con una sola sentencia de graficacin se escriben secuencialmente las funciones se
obtendr el mismo resultado. La sintaxis de este mtodo es la siguiente:
En ocasiones es til representar una o ms curvas en distintas ventanas. Esto se realiza mediante el comando
figure().
Ejemplo 7.
figure(1) % Ventana 1
plot(x,y,rd-)
title(y1=f(x1))
xlabel(x)
ylabel(f(x))
figure(2) % Ventana 2
plot(x2,y2,bo:)
title(y2=f(x2))
xlabel(x)
ylabel(f(x))
figure(3) % Ventana 3
plot(x3,y3,g-)
title(y3=f(x3))
xlabel(x)
ylabel(f(x))
28
Fundamentos de Informtica UTN FRRo 2011
Una ventana del entorno grfico puede subdividirse en pequeas regiones, como si fuera una matriz, de
manera tal que se puede representar una grfica en cada espacio independientemente.
El primer nmero indica el nmero de filas en la que se divide la ventana, el segundo nmero indica el
nmero de columnas y el tercer nmero indica la posicin que se le asignar a la/s curva/s que se grafiquen
inmediatamente despus del comando subplot.
Ejemplo 8.
29
Fundamentos de Informtica UTN FRRo 2011
3
x
f ( x) = e 3
2
g ( x) = x 3
h( x) = 2 cos x 2 3( ) con 0 x 3
1 cuadrante f(x)
2 cuadrante g(x)
3 cuadrante h(x)
4 cuadrante f(x), g(x), h(x).
x1=linspace(0,3,30);
y1=exp(x1.^(1/3))-3;
y2=x1.^2-3;
y3=2*cos(x1.^2)-3;
30
Fundamentos de Informtica UTN FRRo 2011
plot(x1,y1,x1,y2,x1,y3)
title(Figura 4)
xlabel(x)
ylabel(y)
legend(f(x),g(x),h(x))
El comando subplot permite tratar a cada seccin individualmente, de manera tal que es posible asignarle
distintos ttulos, nombres de ejes, leyendas, etc. a cada seccin en particular.
Grficas en el espacio.
Todos los comandos presentados son aplicables en la representacin de puntos en el espacio. La nica
diferencia radica en que se utiliza el comando plot3.
Ejemplo 9.
0 s 10
x = sen( s)
Representar grficamente la curva r = f ( x, y, z ) definida segn:
y = cos(s)
z=s
s=0:pi/50:10*pi;
x=sin(s);
y=cos(s);
31
Fundamentos de Informtica UTN FRRo 2011
z=s;
plot3(x,y,z,'r*--');
xlabel('x')
ylabel('y')
zlabel('z')
title('Grfica de una espiral')
P=[1,-12,0,25,116];
Las operaciones de suma, resta, multiplicacin y divisin se realizan mediante los siguientes comandos:
32
Fundamentos de Informtica UTN FRRo 2011
Las races de un polinomio se determinan utilizando el comando roots a partir de un polinomio definido en
forma completa, mientras que con el comando poly es posible hallar el polinomio elemental dadas sus races.
Dos comandos tiles en el ajuste de datos experimentales a un polinomio son polyval y polyfit.
polyval(p1,x) Evala el polinomio p1 en el/ los valor/es de x, donde x puede ser un escalar, un
vector o una matriz.
Ejemplo 10.
p1 = 2 x 2 + 5 x 3
p2 = 7 x 2 + 3 x
Calcular:
a. p1+p2
b. p1-p2
c. p1*p2
d. p1/p2
e. races
f. p1 y p2 en -5 x 5
p1=[2,5,-3];
p2=[7,1,0];
a=p1+p2
b=p1-p2
pause
clc
33
Fundamentos de Informtica UTN FRRo 2011
c=conv(p1,p2)
[q,r]=deconv(p1,p2)
pause
clc
r1=roots(p1)
r2=roots(p2)
pause
clc
x=-5:5;
s1=polyval(p1,x)
s2=polyval(p2,x)
a) y b) c) y d) e)
f)
34
Fundamentos de Informtica UTN FRRo 2011
Ejemplo 11.
Dados los pares de valores (x,y), determinar cules son los valores de los coeficientes de un polinomio de
grado 2 a los que se ajustan esos datos.
x 10 11 12 13 14 15 16 17 18 19 20
y 247 294 345 400 459 522 589 660 735 814 897
x=[10 11 12 13 14 15 16 17 18 19 20];
y=[247 294 345 400 459 522 589 660 735 814 897];
p=polyfit(x,y,2)
p=2x2+5x-3
En ingeniera qumica se realiza el ajuste de datos experimentales a funciones con el fin de corroborar una ley
existente o determinar (predecir) una ley a partir de datos medidos. En el primer caso, se tendr una funcin
matemtica que representa dicha ley mientras que en el segundo caso se desea determinar una funcin
matemtica que represente el comportamiento de las variables medidas.
El valor de residuo (R2) da una idea del error que se comete al considerar una funcin determinada. Cuanto
ms cercano a 1 (uno) sea dicho estimador, mejor ser el ajuste que se ha realizado.
n = tamao de la muestra
SSE ( Y ) 2
(Y y )
2
SST = Y Y = datos medidos
2
R = 1 ; 2
; SSE = ; Donde:
SST n y = valores de la funcin ajustada
Ejemplo 12.
A fin de estudiar la velocidad de desaparicin de una sustancia (A) al reaccionar con una sustancia (B), se ha
realizado la medicin de la variacin de concentracin del compuesto A con el tiempo y los resultados
obtenidos son:
Tiempo 0.3 2.1 4.3 6.5 8.3 10.6 12.3 14.2 16.5 18.2 20
Conc. 55.5 44.7 38 34.7 30.6 27.2 22 15.9 8.1 2.9 1.5
35
Fundamentos de Informtica UTN FRRo 2011
Se espera una variacin lineal de la concentracin con el tiempo. Ajuste los datos experimentales a una recta a
fin de verificar dicha hiptesis.
y=polyval(p1,x);
La variacin de la concentracin de A con el tiempo sigue una tendencia lineal segn la siguiente expresin:
y= -2.6169 x + 52.5084, con un valor de residuo R2=0.9845.
36
Fundamentos de Informtica UTN FRRo 2011
y= - 2.6169 x + 52.5084
R2=0.9845
37
Fundamentos de Informtica UTN FRRo 2011
Ejercitacin resuelta.
Manejo de vectores y matrices.
1. Dado el vector A, probar los siguientes comandos e identificar cual es su utilidad.
A = [5,8,5,7,1,2,9,3,5,3]
A=[5,8,5,7,1,2,9,3,-5,-3]
B=A(2)
% Genera un vector A (escalar) a partir del 2 elemento del vector A
C=A(1:4)
% Genera un vector C a partir de todos los elementos de la col. 1 a la 4
D=A(3:-1:1)
% Genera un vector D a partir de todos los elementos de la col. 3 a la 1
E=A([2 7 1])
% Genera un vector E, a partir del 2, 7 y 1 elementos del vector A.
3 2 1
B = 6 5 4
9 8 7
B=[3,2,1;6,5,4;9,8,7]
B1=B(2,3)
% Extrae de la matriz B el elemento ubicado en la fila 2 columna 3 y lo
% almacena en la variable B1 (escalar).
B2=B(1,2)
% Extrae de la matriz B el elemento ubicado en la fila 1 columna 2 y lo
% almacena en la variable B2 (escalar).
B3=B(:,1)
% Extrae de la matriz B todos los elementos de la columna 1 y los almacena
% en la variable B3 (vector columna)
B4=B(2,:)
38
Fundamentos de Informtica UTN FRRo 2011
C=A+B
D=A*B
E=A^3
F=det(A)
G=inv(B)
J=zeros(3,4)
K=ones(3)
L=eye(6)
[M,N]=size(B)
O=A
A=magic(4) ;
% Genera una matriz de nmeros enteros mayores a 1 y menores o iguales a
% N^2, la suma de los elementos de la diagonal, cada fila y cada columna
% son iguales excepto cuando N=2
B=ones(4) ;
% Genera una matriz de unos (4x4)
C=A+B;
% Suma matricial entre A y B
D=A*B;
% Producto matricial entre A y B
E=A^3;
% Potencia de una matriz cuadrada A
F=det(A);
39
Fundamentos de Informtica UTN FRRo 2011
4. Identificar en que se diferencian los siguientes comandos a partir de las matrices generadas en el paso
anterior.
A^2 con A.^2 ; A/B con A./B ; A\B con A.\B
A=magic(4)
B=ones(4)
a1=A.^2
a2=A./B
a3=A.\B
% Se realizan operaciones elemento a elemento y no operaciones
% de lgebra matricial.
5. Generar un vector cuyos elementos estn comprendidos entre 5 y 50, con intervalos de 5 unidades.
Determinar el tamao del vector anterior.
v=5:5:50
f=length(v)
2 3 2 5 3
A1 = A2 =
3 7 7 2 8
a. A3 = A1 + A1
b. A4 = A1 A2
c. A5 = 2 A2
d. A6 = A2 '
40
Fundamentos de Informtica UTN FRRo 2011
2
e. A7 = A6
2
f. A8 = A1
A1=[2,3;3,7]
A2=[2,5,3;7,2,8]
A7=A6^2
% En este caso, Matlab genera un error ya que no se puede
% aplicar la potenciacin a una matriz rectangular (3x2)
A8=A1^2
% En este caso si es posible aplicar el lgebra matricial ya que
% la matriz es cuadrada (de tamao 2x2)
7. Generar un vector M de 20 elementos, cuyos valores estn comprendidos entre 100 y 200. Calcular
N=sin(M).
M=linspace(100,200,20);
N=sin(M);
A=magic(5);
a=A(1,1);
b=A(3,:);
c=A(:,4:5);
d=A(4:-1:1,1:3);
41
Fundamentos de Informtica UTN FRRo 2011
c. vec3= vector de 21 elementos cuyo primer elemento es 20 y el elemento 20 es 1.
d. vec4= vector columna de 30 elementos igualmente espaciados. Primer elemento igual a 100,
elemento 28 igual a 50.
vec1=-2:4:10
vec2=20:-1:1
vec3=vec2;
vec3(21)=vec2(20)+(vec2(20)-vec2(19))
vec4=linspace(100,50,28)';
vec4(29)=vec4(28)+(vec4(28)-vec4(27));
vec4(30)=vec4(29)+(vec4(28)-vec4(27))
10. Dado el siguiente sistema de ecuaciones, resulvalo utilizando el mtodo de la matriz inversa.
4x + 5 y = 3
2 x + 9 y = 6
A=[-4,5;2,9];
b=[3,-6]';
X=inv(A)*b
11. Siendo A y B las matrices mostradas a continuacin, calcule las matrices solicitadas.
1 2 3 4 2 1
A= B=
4 5 6 1 2 1
A=[1,2,3;4,5,6]
B=[4,2,1;1,2,1]
C=A.*B
D=A./B
E=B./A
F=A.^2
42
Fundamentos de Informtica UTN FRRo 2011
d. Defina un vector impar que contenga los elementos 1 al 25 de la matriz J.
e. Utilice un comando adecuado que muestre las variables definidas en este ejercicio y su
tamao respectivo.
J=rand(5)
d1=diag(J)'
% nd1=length(d1);
d2=[J(1,5),J(2,4),J(3,3),J(4,2),J(5,1)]
% nd2=length(d2);
ult1=d1(3)
ult2=d2(3)
par=J(2:2:24)'
% npar=length(par);
impar=J(1:25)'
% nimpar=length(impar);
whos
y = xe
( )
x2
x=0:(pi/50):2*pi;
y=x.*exp(-(x.^2));
z=0.025*x.^2-0.1*x-0.05;
plot(x,y,'r',x,z,'b')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('y','z')
43
Fundamentos de Informtica UTN FRRo 2011
14. Dados :
x = 0 : / 50 : 2
y = 0.3sin(2 x)
z = cos( x)
h = sin( x 2 ) + cos( x 2 )
Graficar:
a. Una funcin en cada grfica
b. Las tres funciones en una misma grfica
c. En una misma ventana:
1 cuadrante: y=f(x)
2 cuadrante: z=f(x)
3 cuadrante: h=f(x)
4 cuadrante: las tres funciones en la misma imagen.
Graficar las curvas con diferentes colores y marcadores
Indicar leyendas
Mostrar grilla
Etiquetar los ejes
Titular las grficas
44
Fundamentos de Informtica UTN FRRo 2011
x=0:(pi/50):2*pi;
y=0.3*sin(2*x);
z=cos(x);
h=sin(x.^2)+cos(x.^2)
% a
figure(1)
plot(x,y,'b*')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('y')
grid on
figure(2)
plot(x,z,'ro')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('z')
grid on
figure(3)
plot(x,h,'g-')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('h')
grid on
%b
figure(4)
plot(x,y,'b*',x,z,'ro',x,h,'g-')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('y','z','h')
45
Fundamentos de Informtica UTN FRRo 2011
grid on
%c
figure(5)
subplot(2,2,1)
plot(x,y,'b*')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('y')
grid on
subplot(2,2,2)
plot(x,z,'ro')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('z')
grid on
subplot(2,2,3)
plot(x,h,'g-')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('h')
grid on
subplot(2,2,4)
hold on
plot(x,y,'b*')
plot(x,z,'ro')
plot(x,h,'g-')
title('Grfica de funciones')
xlabel('x')
ylabel('y')
legend('y','z','h')
46
Fundamentos de Informtica UTN FRRo 2011
grid on
hold off
a)
b)
c)
47
Fundamentos de Informtica UTN FRRo 2011
x=linspace(0,5*pi,250);
y=cos(x);
z=y.*cos(x);
plot3(y,z,x,'*r')
xlabel('x')
ylabel('y')
zlabel('z')
48
Fundamentos de Informtica UTN FRRo 2011
( )
a. 25 x 25 , con 10 elementos
b. 25 x 25 , con 50 elementos.
c. 25 x 25 , con 250 elementos.
Represente la funcin definida para cada dominio en una misma ventana.
x1=linspace(-25,25*pi,10);
x2=linspace(-25,25*pi,50);
x3=linspace(-25,25*pi,250);
i1=20*sin(x1);
i2=20*sin(x2);
i3=20*sin(x3);
j1=1.5*cos(x1);
j2=1.5*cos(x2);
j3=1.5*cos(x3);
k1=2*(x1).^6;
49
Fundamentos de Informtica UTN FRRo 2011
k2=2*(x2).^6;
k3=2*(x3).^6;
subplot(1,3,1)
plot3(i1,j1,k1,'*-r')
xlabel('x')
ylabel('y')
zlabel('z')
legend('r1')
subplot(1,3,2)
plot3(i2,j2,k2,'--b')
xlabel('x')
ylabel('y')
zlabel('z')
legend('r2')
subplot(1,3,3)
plot3(i3,j3,k3,'g')
xlabel('x')
ylabel('y')
zlabel('z')
legend('r3')
50
Fundamentos de Informtica UTN FRRo 2011
x1=linspace(-4,3,150);
x2=linspace(-10,4.8,150);
y1=2*(cos(x1)).^3;
y2=exp(0.25)*sin(2*x2);
z1=2*y1.*(sin(x1)).^3;
z2=y2+cos(2*x2);
plot3(y1,z1,x1,'r-*',y2,z2,x2,'b-o')
title('Grfica de curvas en el espacio')
xlabel('x')
ylabel('y')
zlabel('z')
legend('r1','r2')
51
Fundamentos de Informtica UTN FRRo 2011
P1 = 2 x 4 +3x 3 + 7 x 2 + 8 x + 1
18. Dado los siguientes polinomios calcular:
P2 = x 4 +3x 3 + x 2 + 3 x + 1
a. Races
b. P1/P2
c. P1*P2
d. P1+P2
P1=[2,3,7,8,1];
P2=[1,3,1,3,1];
x=-10:10;
y=polyval(P1,x)' % Evala el polinomio P1 en x
52
Fundamentos de Informtica UTN FRRo 2011
Verifique si dichos datos se ajustan a un polinomio de 2 grado. Determine el valor de R2 y grafique
los datos experimentales y la curva ajustada.
datos=[0,12.3;10,20;20,30;30,40.5;50,63;60,65];
pol=polyfit(datos(:,1),datos(:,2),2);
datos(:,3)=polyval(pol,datos(:,1));
plot(datos(:,1),datos(:,2),'*k',datos(:,1),datos(:,3),'r');
title('Ajuste de datos experimentales a una funcin');
legend('Datos exp.','Funcin ajustada');
xlabel('x');
ylabel('y');
[f,c]=size(datos);
SSE=sum((datos(:,2)-datos(:,3)).^2);
SST=sum(datos(:,2).^2)-sum(datos(:,2))^2/f;
R2=1-SSE/SST
53
Fundamentos de Informtica UTN FRRo 2011
A=[9,-3;11,2]
b=[24;1]
%a
x1=inv(A)*b
%b
x2=A\b
%c
p1='9*x1-3*x2-24=0';
p2='11*x1+2*x2-1=0';
[c1,c2]=solve(p1,p2)
23. En las estaciones de servicio es preciso aadir cido sulfrico diluido a las bateras secas a fin de
activarlas. Se nos pide preparar un lote nuevo de cido al 18.63% utilizando una disolucin ms dbil
que contiene 12.43% de H2SO4 (el resto es agua pura) y que se encuentra en un tanque. Si se agregan
200 kg de H2SO4, al 77.7% al tanque, y la disolucin final tiene que ser H2SO4, al 18.63%, Cuntos
kilogramos de cido de batera se han preparado? Vea la figura.
Plantear el sistema de ecuaciones y resolverlo con Matlab.
p1='200+x=y';
p2='0.777*200+0.1243*x=0.1863*y';
[x,y]=solve(p1,p2)
54
Fundamentos de Informtica UTN FRRo 2011
== Es igual?
~= Es distinto?
< Es menor?
<= Es menor o igual?
> Es mayor?
>= Es mayor o igual?
& Y
O
~ NO
55