Вы находитесь на странице: 1из 55

UNIVERSIDAD TECNOLGICA NACIONAL FACULTA REGIONAL ROSARIO

FUNDAMENTOS DE INFORMTICA
Profesor: Dra. Sonia Benz. Auxiliares: Ing. Evangelina Delfratte - Ing. Patricia Mores

Matlab. Manejo bsico.

Elaboracin: Ing. Patricia Mores - Ing. Evangelina Delfratte

Fundamentos de Informtica UTN FRRo 2011


QU ES MATLAB (MATRIXLABORATORY)? ENTORNO DE TRABAJO MANEJO BSICO 1. 2. 3. 4. 5. 6. DECLARACIN DE VARIABLES. COMANDOS Y OPERADORES DE USO FRECUENTE. MANEJO DE VECTORES Y MATRICES. RESOLUCIN DE SISTEMAS DE ECUACIONES. REPRESENTACIN GRFICA EN EL PLANO Y EN EL ESPACIO. OPERACIONES CON POLINOMIOS. 3 3 6 6 8 8 20 24 32 38 38 43 52 52 54

EJERCITACIN RESUELTA. MANEJO DE VECTORES Y MATRICES. REPRESENTACIN GRFICA EN EL PLANO Y EN EL ESPACIO. OPERACIONES CON POLINOMIOS. AJUSTE DE DATOS EXPERIMENTALES A POLINOMIOS. RESOLUCIN DE SISTEMAS DE ECUACIONES.

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 La siguiente figura corresponde a la ventana de inicio del programa.

Podemos observar tres ventanas principales: Ventana de comandos (Command Window): es donde se ejecutan los comandos de Matlab, y en donde se muestran los resultados correspondientes, si es el caso.

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.

Historial de comandos (Command History): muestra los ltimos comandos ejecutados en la ventana de comandos.

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. Otra herramienta que presenta Matlab es el Editor de archivos M (scripts). 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.

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.
Directorio en el que se guard el archivo

Nmero de lnea de cdigo

Ejecutar En el editor aparecen en color negro las instrucciones, en color verde los comentarios, en color violeta las cadenas de texto y en azul los comandos predefinidos.

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: El nombre de archivo NO puede empezar con un nmero. El nombre de archivo NO puede tener espacios ni caracteres especiales. El nombre de archivo NO puede coincidir con el nombre de ninguna de las variables definidas en el script. Es conveniente el uso de nombres cortos.

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. Finalmente, para ejecutar un script creado en el editor, se tienen diferentes alternativas: Ejecutar el programa desde el editor. Ir a Debug Save file and run.

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.

En ocasiones aparecer la siguiente ventana al ejecutar por primera vez un script:

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). Por otro lado, dependiendo del tamao de la matriz es posible manejar: Escalares (matriz 1x1) Vectores (matriz de 1xn vector fila, matriz de nx1 vector columna) Matrices propiamente dichas (nxm). 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 >> En la siguiente tabla se presentan los comandos bsicos para el manejo de variables. clear all Borra todas las variables de la memoria Muestra los nombres de las variables definidas en el espacio de trabajo.

who

whos

Muestra una lista de todas las variables definidas en el espacio de trabajo as como informacin acerca del tamao, cantidad de bytes, clase y atributos de cada variable.

Fundamentos de Informtica UTN FRRo 2011

2. Comandos y operadores de uso frecuente.


Para salir/ cerrar Matlab se puede tipear quit o exit en la ventana de comandos, mientras que para interrumpir la ejecucin de un comando (o un programa) se debe presionar las teclas crtl+c simultneamente. 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. Con las flechas y se pueden recuperar las rdenes anteriores sin tener que volver a teclearlas. Con las flechas y puede moverse sobre la lnea de comandos. Utilizado tanto en la ventana de comandos como en el editor, el operador ; omite la presentacin de un resultado en la ventana de comandos. La presentacin de resultados parciales, fundamentalmente cuando se trabaja con una gran cantidad de informacin, consume recursos innecesariamente, por lo que el uso de este operador debe hacerse una prctica habitual. 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.

3. Manejo de vectores y matrices.


En Matlab, los elementos de una matriz y/o vector se direccionan mediante ndices que indican el nmero de fila y columna o bien, indicando su posicin absoluta. Un elemento cualquiera una matriz se identificar segn la siguiente sintaxis: 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: a1,1 a2,1 A= . . . af-1,1 af,1 a1,2 a2,2 . . . af-1,2 af,2 a1,c-1 a2,c-1 . . . af-1,c-1 af,c-1 a1,c a2,c . . . af-1,c af,c

. . .

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. A(:,:) la expresin se refiere a todos los elementos de la matriz. Otra forma de utilizar el operador : es mediante la siguiente sintaxis: 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(3:5,1) la expresin se refiere a los elementos ubicados en las filas 3, 4 y 5, columna 1. A(7,5:2:9) la expresin se refiere a los elementos ubicados en la fila 7, columnas 5,7 y 9. 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. Generacin de matrices y vectores ingresando valores. Vector fila: introduciendo sus valores, separados por espacios o por comas, entre corchetes.

Vector columna: introduciendo sus valores, separados por Intro o por puntos y comas (;), entre corchetes.

Fundamentos de Informtica UTN FRRo 2011

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 (;).

Generacin de matrices y vectores utilizando comandos y operadores especficos. Utilizando el comando linspace 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: X=linspace(valor inicial, valor final, cantidad de elementos del vector)

Utilizando el operador : Aqu, el operador : se utiliza para crear un vector. La sintaxis general es: x=valor incial:incremento:valor final. 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.

Utilizando el comando zeros A=zeros(1,n) A=zeros(n,1) A=zeros(n) A=zeros(n,m) Vector fila de n elementos Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos son iguales a cero (0).

Utilizando el comando ones A=ones(1,n) A=ones(n,1) A=ones(n) A=ones(n,m) Vector fila de n Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos son iguales a uno (1).

11

Fundamentos de Informtica UTN FRRo 2011

Utilizando el comando eye. A= eye (n) A= eye (n,m) Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm Todos los elementos de la diagonal son iguales a uno (1), el resto es igual a cero (0).

Utilizando el comando magic Matriz cuadrada de tamao nxn, 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.

A=magic(n)

Utilizando el comando rand. A= rand (1,n) A= rand (n,1) A= rand (n) Vector fila de n elementos. Vector columna de n elementos. Matriz cuadrada de tamao nxn El comando rand genera una matriz de nmeros aleatorios uniformemente distribuidos entre 0 y 1.

A= rand (n,m) Matriz reactangular de tamao nxm

12

Fundamentos de Informtica UTN FRRo 2011

Utilizando el comando randn. A=randn(1,n) A= randn(n,1) A= randn (n) A= randn (n,m) Vector fila de n elementos Vector columna de n elementos Matriz cuadrada de tamao nxn Matriz reactangular de tamao nxm El comando randn genera una matriz de nmeros aleatorios con una distribucin normal (media=0, desvo estndar=1)

Generacin de matrices y vectores a partir de otras estructuras. 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. Dado un vector r, de 10 elementos igualmente espaciados entre -1.7 y 3.5, se desea: Crear un escalar v1 con el 3 elemento del vector r.
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)

Crear un vector v3 con los elementos de la posicin 2, 3, 5 y 7 del vector r.


v3=r(2:2:7)

Crear un vector v4 con los elementos de las posiciones 5 a 1 del vector r.


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)

Crear un vector v6 con los elementos de las posiciones 8, 9, 1, 3 y 7 del vector r.

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

Crear un vector fila v8 con los elementos de los vectores v2 y v3.


v2 v3 v8=[v2,v3]

15

Fundamentos de Informtica UTN FRRo 2011


Ejemplo 2. Dadas las siguientes matrices:

M1=

0.1 0.3 0.8 0.2 0.7 0.6

M2=

4 3 2 1

5 1 7 9

6 3 9 5

Generar una matriz M3 a partir de M1 y M2. Generar una matriz M4 a partir de los elementos de la columna 3 de M1 y los elementos de las filas 4 a 3 columnas 2 a 3 de la matriz M2. Generar un vector columna M5 a partir de los elementos de la fila 2 de M1 y los elementos de la columna 1 de M2. Generar una matriz M6 en la que se reemplacen todos los valores de la columna 1 de la matriz M1 por los elementos de la filas 3 y 4, columna 3 de la matriz M2. Generar una matriz M7 en la que se reemplacen todos los elementos de la fila 1 de la matriz M2 por cero (0).
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

Determinacin del tamao de matrices y vectores. 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 con estructuras vectoriales y matriciales. En Matlab es posible realizar dos tipos de operaciones: 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. det(A) A' inv(A) Determinante de la matriz cuadrada A Transpuesta de la matriz o vector A Inversa de la matriz cuadrada A

Operaciones elemento a elemento. Las operaciones elemento a elemento que estn al alcance de este curso y utilizan una sintaxis especfica son las siguientes: .* .^ ./ Producto elemento a elemento Potenciacin elemento a elemento Divisin elemento a elemento

Hay una serie de funciones que solo se pueden aplicar elemento a elemento (no se aplican en lgebra matricial). Algunas de ellas son: sqrt() exp() log() log10() sin() cos() tan() abs() Ejemplo 3. Dadas las siguientes matrices: 0.1 0.3 0.85 M1= 0.2 0.7 0.6 0.9 0.25 0.68 1 2 9 M2= 8 7 2 3 0 5 Raz cuadrada Exponencial de base e Logaritmo neperiano Logaritmo decimal Seno Coseno Tangente Valor absoluto

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

4. Resolucin de sistemas de ecuaciones.


Los sistemas de ecuaciones se pueden clasificar segn el nmero de soluciones que pueden presentar en: Sistemas incompatibles si no tienen ninguna solucin. Sistemas compatibles si tienen alguna solucin, en este caso adems puede distinguirse entre: Sistemas compatibles determinados cuando tienen un nmero finito de soluciones. En el caso particular de sistemas de ecuaciones lineales el determinante de la matriz de los coeficientes es distinto de cero. Sistemas compatibles indeterminados cuando admiten un conjunto infinito de soluciones. (Sistema lineal compatible indeterminado Determinante=0)

Un sistema de ecuaciones lineal que no tenga soluciones nicas se lo denomina sistema singular. Se presentan tres maneras de resolver sistemas de ecuaciones con Matlab: Mtodo de la matriz inversa (sistemas de ecuaciones lineales). Mtodo de la divisin izquierda (sistemas de ecuaciones lineales). Utilizando el comando solve (sistemas de ecuaciones lineales y no lineales).

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). Los mtodos de resolucin se presentan mediante ejemplos.

Ejemplo 4. 20

Fundamentos de Informtica UTN FRRo 2011


Resolver los siguientes sistemas de ecuaciones utilizando los tres mtodos propuestos.

1)

2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 3x + y 2 z = 4

2)

2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 2 x + 7 y + 12 z = 30

3)

2 x + 4 y + 6 z = 18 4 x + 5 y + 6 z = 24 2 x + 7 y + 12 z = 40

% a) Mediante el comando solve a1='2*a+4*b+6*c=18'; a2='4*a+5*b+6*c=24'; a31='3*a+b-2*c=4'; a32='2*a+7*b+12*c=30'; a33='2*a+7*b+12*c=40'; disp('Sistema de ecuaciones 1)') [x1,y1,z1]=solve(a1,a2,a31) pause clc disp('Sistema de ecuaciones 2)') [x2,y2,z2]=solve(a1,a2,a32) pause clc disp('Sistema de ecuaciones 3)') [x3,y3,z3]=solve(a1,a2,a33)

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.

Soluciones nicas.

Infinitas soluciones.

Sin solucin

21

Fundamentos de Informtica UTN FRRo 2011


% b) Mediante el mtodo de la matriz inversa disp('Sistema de ecuaciones 1)') A1=[2,4,6;4,5,6;3,1,-2]; b1=[18;24;4]; D1=det(A1) x1=inv(A1)*b1 pause clc disp('Sistema de ecuaciones 2)') A2=[2,4,6;4,5,6;2,7,12]; b2=[18;24;30]; D2=det(A2) x2=inv(A2)*b2 pause clc disp('Sistema de ecuaciones 3)') A3=[2,4,6;4,5,6;2,7,12]; b3=[18;24;40]; D3=det(A3) x3=inv(A3)*b3

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).
% c) Mediante el mtodo de la divisin izquierda disp('Sistema de ecuaciones 1)') A1=[2,4,6;4,5,6;3,1,-2]; b1=[18;24;4]; x1=A1\b1 pause clc disp('Sistema de ecuaciones 2)') A2=[2,4,6;4,5,6;2,7,12]; b2=[18;24;30]; x2=A2\b2 pause clc disp('Sistema de ecuaciones 3)') A3=[2,4,6;4,5,6;2,7,12]; b3=[18;24;40]; x3=A3\b3

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.

5. Representacin grfica en el plano y en el espacio.


En este punto, se explica brevemente la manera de representar grficamente un conjunto de puntos, ya sea en el plano o en el espacio. Se puede presentar el caso en el que los puntos de datos x,y,z sean totalmente independientes o que se trate de funciones. En cualquiera de los casos, es prctica comn definir a x, y, z como vectores fila o columna. Es indispensable que tengan la misma dimensin a fin de evitar el error: Matrix dimentios must agree. Los comandos que se utilizan para realizar grficos de funciones en el plano y el espacio se detallan en la siguiente tabla. plot(x,y,formato) loglog(x,y,formato) semilogx(x,y,formato) Representa un conjunto de puntos (x,y) en el plano en coordenadas cartesianas. Representa un conjunto de puntos (x,y) en el plano en coordenadas logartmicas. Representa un conjunto de puntos (x,y) en el plano en coordenadas logartmicas en el eje x y coordenadas cartesianas en el eje y.

24

Fundamentos de Informtica UTN FRRo 2011


semilogy(x,y,formato) polar(x,y,formato) plot3(x,y,z,formato) Representa un conjunto de puntos (x,y) en el plano en coordenadas cartesianas en el eje x y coordenadas logartmicas en el eje y. Representa un conjunto de puntos (x,y) en el plano en coordenadas polares. Representa un conjunto de puntos (x,y,z) en el espacio (coordenadas cartesianas).

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. Colores y m c r g b w k Amarillo Magenta Cyan Rojo Verde Azul Blanco Negro Maracadores (puntos de datos) . Puntos o Crculos x Cruces + Signos suma * Asteriscos s Cuadrados d Rombos p Estrellas

Tipos de lnea Lnea continua : Lnea punteada -. Lneas y puntos -Lnea discontinua

A fin de aadir ttulos a las grficas, nombres a los ejes y a las series se utilizan los siguientes comandos: title(texto) xlabel(texto) ylabel(texto) zlabel(texto) legend(texto1, texto2,.., texton) Ttulo del grfico Nombre de eje x. Nombre de eje y. Nombre de eje z. Nombres de las series (diferentes curvas en una misma grfica).

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. Utilizando los conceptos presentados se ejemplifica la metodologa de graficacin. Ejemplo 5.
2 Graficar la siguiente funcin: y = x e ( x ) para el siguiente dominio 3 x 3

x = 0.05

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') ylabel('f(x)') grid on % Ttulo de la abscisa % Ttulo de la ordenada % 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:

Representacin de dos o ms funciones en una misma grfica.


Hay dos maneras de representar dos o ms curvas (puntos de datos) en una misma grfica: Mediante los comandos (hold on hold off). Mediante sintaxis especfica.

Ejemplo 6. Graficar las siguientes funciones en una misma grfica:


2 y = x e ( x ) con 3 x 3

x = 0.05

y 2 = sen ( x 2 ) con 1.5 x2 1.5 y 3 = 1.5 cos( x 3 ) con 1.5 x3 1.5

x2 = 0.01 x3 = 0.025

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);

Luego se definen las lneas de cdigo para graficar: Hold on- hold off
hold on plot(x,y,'k-') plot(x2,y2,'m-.') plot(x3,y3,'cs--') hold off plot(x,y,'rd-',x2,y2,'bo:',x3,y3,'g-')

Sintxis especfica

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.
title(' Grfica de funciones en el plano') xlabel('x') ylabel('f(x)') legend('y1','y2','y3') % Nombre a las series

El resultado es el mismo en ambos casos, excepto porque se han utilizado diferentes colores, marcadores y tipos de lnea. Hold on- hold off Sintxis especfica

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:

plot(x1,y1,formato 1,x2,y2,formato 2,,xn,yn,formato n) Representacin de funciones en diferentes ventanas.


En ocasiones es til representar una o ms curvas en distintas ventanas. Esto se realiza mediante el comando figure(). Ejemplo 7. Representar las funciones del ejemplo 6 individualmente en tres ventanas diferentes.
figure(1) plot(x,y,rd-) title(y1=f(x1)) xlabel(x) ylabel(f(x)) % Ventana 1

figure(2) plot(x2,y2,bo:) title(y2=f(x2)) xlabel(x) ylabel(f(x))

% Ventana 2

figure(3) plot(x3,y3,g-) title(y3=f(x3)) xlabel(x) ylabel(f(x))

% Ventana 3

28

Fundamentos de Informtica UTN FRRo 2011

Representacin de funciones en diferentes en subgrficas.


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 comando subplot(m,n,i) subdivide la ventana en m x n espacios, indicando en i la posicin de cada grfica. 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. Dadas las siguientes funciones:

29

Fundamentos de Informtica UTN FRRo 2011


f ( x) = e
3

g ( x) = x 3

h( x) = 2 cos x 2 3

( )

con 0 x 3

Divida la ventana grfica en 4 secciones y represente: 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;

subplot(2,2,1) plot(x1,y1,bo) title(Figura 1) xlabel(x) ylabel(y) legend(f(x))

% Grfica en la subventana 1

subplot(2,2,2) plot(x1,y2,gd) title(Figura 2) xlabel(x) ylabel(y) legend(g(x))

% Grfica en la subventana 2

subplot(2,2,3) plot(x1,y3,rs) title(Figura 3) xlabel(x) ylabel(y) legend(h(x))

% Grfica en la subventana 3

subplot(2,2,4)

% Grfica en la subventana 4

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
Representar grficamente la curva r = f ( x, y, z ) definida segn:

x = sen( s) 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')

6. Operaciones con polinomios.


En Matlab, los polinomios son representados como vectores fila, conteniendo los coeficientes en orden decreciente. El polinomio x4-12x3+25x+116 se define de la siguiente manera:
P=[1,-12,0,25,116];

Las operaciones de suma, resta, multiplicacin y divisin se realizan mediante los siguientes comandos: p3=p1+p2 p4=p1-p2 [p]=conv(p1,p2) Suma los polinomios p1 y p2 y guarda el resultado en la variable p3 Resta los polinomios p1 y p2 y guarda el resultado en la variable p4 Realiza la multiplicacin de los polinomios p1 y p2 y almacena el resultado en la variable p.

32

Fundamentos de Informtica UTN FRRo 2011


[q,r]= deconv(p1,p2) Realiza la divisin entre los polinomios p1 y p2. En la variable q se almacena el cociente y en la variable r se almacena el resto.

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. A es un vector cuyos elementos son las races de un polinomio, entonces la funcin poly devuelve los coeficientes del polinomio elemental. B es un vector cuyos elementos son los coeficientes de un polinomio, entonces la funcin roots devuelve las races de un polinomio.

poly(A)

roots(B)

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. Obtiene los coeficientes de un polinomio de grado n a partir de pares de valores x,y.

polyfit(x,y,n)

Ejemplo 10. Dados los siguientes polinomios:

p1 = 2 x 2 + 5 x 3 p2 = 7 x 2 + 3 x
Calcular: a. b. c. d. e. f. p1+p2 p1-p2 p1*p2 p1/p2 races 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
Ajuste de datos experimentales a polinomios. 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. El valor de residuo se calcula segn las siguientes ecuaciones:

SSE R = 1 ; SST
2

( Y ) SST = Y n
2

SSE =

(Y y )

n = tamao de la muestra

; Donde:

Y = datos medidos 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.
% Ingresar los valores experimentales x=[0.3,2.1,4.3,6.5,8.3,10.6,12.3,14.2,16.5,18.2,20]; Y=[55.5,44.7,38,34.7,30.6,27.2,22,15.9,8.1,2.9,1.5];

% Graficar los valores para observar la tendencia general de los % puntos plot(x,Y,'or')

% Ajustar los valores a polinomios p1=polyfit(x,Y,1)

% Evaluar los polinomios ajustados en el dominio (x)

y=polyval(p1,x);

% Graficar los polinomios ajustados como lineas continuas junto a los % valores experimentales (puntos) hold on plot(x,y,'b') hold off

title('Ajuste de datos experimentales a polinomios'); xlabel('Concentracin') ylabel('Tiempo') legend('dat. exp.','pol. orden 1')

% Calcular el coeficiente R^2 para determinar el grado de ajuste. n=length(x); SST=sum(Y.^2)- ((sum(Y)).^2/n); SSE=sum((Y-y).^2); R=1-(SSE/SST)

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]

B=A(2) ; C=A(1:4) ; A=[5,8,5,7,1,2,9,3,-5,-3] B=A(2)

D=A(3:-1:1) ; E A([2 7 1])

% 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. 2. Dada la matriz B, probar los siguientes comandos e identificar cual es su utilidad.

3 2 1 B = 6 5 4 9 8 7
B(2,3) ; B(1,2) ; B(:,1) ; B(2,:) ; B(2:3,1:2) ; B(2,2)=200 ; B(:,:)=1 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


% Extrae de la matriz B todos los elementos de la fila 2 y los almacena en % la variable B3 (vector fila) B5=B(2:3,1:2) % Extrae de la matriz B todos los elementos de las fila 2 a 3 y las % columnas 1 a 2 y los almacena en la variable B5 (matriz) B(2,2)=200 % Reemplaza en la matriz B, el elemento de la fila 2 columna 2 por 200 B(:,:)=1 % Reemplaza en la matriz B todos sus elementos por 1 (uno) 3. Definir las siguientes matrices: A=magic(4) ; B=ones(3) ; Ejecutar los siguientes comandos e identificar cual es su utilidad. 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


% Calcula el determinante de la matriz A G=zeros(3,4); % Genera una matriz de ceros (3x4) H=eye(6); % Genera la matriz identidad (6x6) I=A'; % Transpone la matriz A. [M,N]=size(B); % Determina el tamao de la matriz B, en la variable M almacena la % cantidad de filas y en la variable N almacena la cantidad de columnas.

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)

6. Defina las siguientes matrices y calcule:

A1 =
a. b. c. d.

2 3 3 7

A2 =

2 5 3 7 2 8

A3 = A1 + A1
A4 = A1 A2

A5 = 2 A2 A6 = A2 '
40

Fundamentos de Informtica UTN FRRo 2011


e. f.

A7 = A6 A8 = A1
2

Qu puede comentar acerca del punto e y f?


A1=[2,3;3,7] A2=[2,5,3;7,2,8]

% Se realizan operaciones matriciales A3=A1+A1 A4=A1*A2 A5=2*A2 A6=A2'

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);

8. Generar una matriz de 5 x 5 con el comando magic. A partir de la misma: a. b. c. d. Seleccionar el primer elemento Seleccionar todos los elementos de la fila 3 Seleccionar todos los elementos de las columnas 4 y 5 Seleccionar los elementos de las columnas 1 a 3 y de las filas 4 a 1.

A=magic(5);

a=A(1,1); b=A(3,:); c=A(:,4:5); d=A(4:-1:1,1:3);

9.

Defina los siguientes vectores utilizando el comando linspace o :. a. vec1=[-2 2 6 10] b. vec2 = vector de 20 elementos cuyo primer elemento es 20 y el elemento 20 es 1. 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.

A=

1 2 3 4 5 6

B=

4 2 1 1 2 1

a. C = producto elemento a elemento de A y B. b. D = divisin derecha, elemento a elemento de A sobre B. c. E = divisin derecha, elemento a elemento de B sobre A. d. F = potencia cuadrada elemento a elemento de la matriz A.
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

12. Genere una matriz J de 3x3, con nmeros aleatorios entre 0 y 1. a. Defina dos vectores fila denominados d1 y d2. Cada uno de ellos debe estar compuesto por los elementos de cada una de las diagonales de la matriz J. b. Defina como ult1 y ult2 a los elementos 5 de cada uno de los vectores d1 y d2. c. Defina un vector par que contenga los elementos 2, 4, 6, y 24 de la matriz J.

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

Representacin grfica en el plano y en el espacio.


13. Graficar las siguientes funciones en una misma figura.
x2

y = xe

( )

z = 0.025x2 - 0.1x - 0.05


Definir el siguiente dominio: 0 x 2 ; x = / 50 .
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

15. Graficar la siguiente curva: r = ( y, z, x ) para

0 x 5 (250 elementos)

y = cos(x)
z = y cos(x)
x=linspace(0,5*pi,250); y=cos(x); z=y.*cos(x);

plot3(y,z,x,'*r') title('Grfica de curvas en el espacio') xlabel('x') ylabel('y') zlabel('z')

48

Fundamentos de Informtica UTN FRRo 2011

6 16. Graficar la curva r = 20sin(x),1.5cos(x),2x definiendo los siguientes dominios:

a. b. c.

25 x 25 , con 10 elementos 25 x 25 , con 50 elementos. 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')

17. Graficar las curvar r1 y r2 en la misma grfica:

u r r1 = ( y1 , z1 , x1 ) 4 x1 3 ur r2 = ( y2 , z2 , x2 ) 10 x2 4.8

y1 = 2 cos3 ( x1 )

z1 = 2 y1 sin 3 ( x1 )

y2 = e0.25 sin(2 x2 ) z2 = y2 + cos(2 x2 )


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

Operaciones con polinomios.


P = 2 x 4 +3x 3 + 7 x 2 + 8 x + 1 1 P2 = x 4 +3x 3 + x 2 + 3 x + 1

18. Dado los siguientes polinomios a. Races b. P1/P2 c. P1*P2 d. P1+P2


P1=[2,3,7,8,1]; P2=[1,3,1,3,1];

calcular:

a1=roots(P1) a2=roots(P2) [Q,R]=deconv(P1,P2) c=conv(P1,P2) d=P1+P2

% Races de un polinomio % Races de un polinomio % Divisin de polinomios % Producto de polinomios % Suma de polinomios

19. Evaluar el polinomio P1 para x=-10:1:10


x=-10:10; y=polyval(P1,x)' % Evala el polinomio P1 en x

20. A partir de las races de un polinomio (-3,2,7,5) determinar el polinomio caracterstico.


r=[3,2,7,5] p=poly(r) % r son las races de un polinomio % Determina el polinomio caracterstico

Ajuste de datos experimentales a polinomios.


21. La solubilidad del nitrato de potasio fue determinada experimentalmente. Los resultados obtenidos son: Temperatura (C) Solubilidad (mg/l) 0 12.3 10 20 20 30 30 40.5 50 63 60 65

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.
% Columna 1 temp. C, columna 2 solubilidad (mg/l)

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

El polinomio y = - 0.0019 x 2 + 1.0574 + 10.8752

resultante es con un valor de residuo R2 = 0.9886.

53

Fundamentos de Informtica UTN FRRo 2011

Resolucin de sistemas de ecuaciones.


22. Resuelva el siguiente sistema de ecuaciones con el mtodo de la matriz inversa, con el mtodo de la divisin izquierda y con el comando solve.

9a 3b = 24 11a + 2b = 1
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)

Se utilizan x= 1905.5 Kg de la solucin original para obtener y= 2105.5 Kg de la solucin final al 18.63 %. 54

Fundamentos de Informtica UTN FRRo 2011


Cdigo ASCII Caracteres de uso frecuente : / \ ' ( ) [ ]

Alt + 58 Alt + 47 Alt + 92 Alt + 39 Alt + 40 Alt + 41 Alt + 91 Alt + 93 Alt+179 Alt+126 Alt+37 Alt+38 Alt+59 Alt+94 Alt+60 Alt+61 Alt+62

~ % & ; ^ < = >

Definicin de operadores lgicos en Matlab

== ~= < <= > >= & ~

Es igual? Es distinto? Es menor? Es menor o igual? Es mayor? Es mayor o igual? Y O NO

55

Вам также может понравиться