dia1 matlab

100
Norma Verónica Ramírez Pérez Martín Laguna Estrada

Upload: neo-avila

Post on 07-Jul-2016

263 views

Category:

Documents


0 download

DESCRIPTION

curso de matlab dia 1

TRANSCRIPT

Page 1: DIA1 MATLAB

Norma Verónica Ramírez Pérez

Martín Laguna Estrada

Page 2: DIA1 MATLAB

DIRIGIDO A:

Los profesionales que estén involucrados en

las áreas de investigación e ingeniería, con

conocimientos básicos de programación.

Page 3: DIA1 MATLAB

OBJETIVO

Adquirir conceptos básicos de MATLAB,

interfaces GUI, manejo de toolbox de análisis

estadístico, redes neuronales, lógica borrosa

y adquisición de imágenes.

Page 4: DIA1 MATLAB

Temario

1. Introducción

2. Entorno MATLAB

Operaciones con matrices y vectores

Funciones de librería

Otros tipos de datos de Matlab: cadenas, hipermatrices,

estructuras, celdas.

3. Programación en Matlab

Gráficos bidimensionales

Gráficos tridimensionales

Interfaces de usuario en MATLAB

4. Librerías de interés práctico: análisis estadístico, redes neuronales,

lógica difusa, adquisición de imágenes etc.

5. Ejercicios de aplicación

Page 5: DIA1 MATLAB

Cronograma del Curso

Día 1. Entorno MATLAB, operaciones con matrices y vectores ,

funciones de librería. Ejercicios.

Día 2: Cadenas, hipermatrices, estructuras, celdas,

programación

en MATLAB. ejercicios

Día 3: Gráficos bidimensionales y tridimensional, interfaz gráfico

en MATLAB. Ejercicios

Día4: Librerías de interés práctico, analisis estadístico, redes

neuronales, lógica borrosa, adquisición de imágenes.

Día5: Ejercicios de aplicación.

Page 6: DIA1 MATLAB

Día 1

- Entorno MATLAB

- Operaciones con matrices y

vectores

- Funciones de librería

- Ejercicios

Page 7: DIA1 MATLAB

Un poco de historia de MATLAB y su uso en

aplicaciones de interés

MATLAB es un software matemático que se

inventó en los años 70’s.

Su autor fue Cleve Moler de la universidad de

Nuevo México.

En 1983 , Jack Little de la universidad de

Stanford, se unió al proyecto y lo empezó a

comercializar.

Page 8: DIA1 MATLAB

Fue creado por Cleve Moler en 1984,surgiendo la primera

versión con la idea de emplear paquetes de subrutinas escritas

en Fortran en los cursos de álgebra lineal y análisis numérico,

sin necesidad de escribir programas en dicho lenguaje. El

lenguaje de programación M fue creado en 1970 para

proporcionar un sencillo acceso al software de matrices

LINPACK y EISPACK sin tener que usar Fortran.

En 2004, se estimaba que MATLAB era empleado por más de un

millón de personas en ámbitos académicos y empresariales.

Page 9: DIA1 MATLAB

MATLAB proviene de MATrix LABoratory,

dado que el tipo básico que gestiona es una

matriz (array).

Es una herramienta de software

matemático que ofrece un entorno de

desarrollo integrado (IDE) con un lenguaje

de programación propio (lenguaje M) y

servicio de especie. Está disponible para las

plataformas Unix, Windows, Mac OS X y

GNU/Linux .

Page 10: DIA1 MATLAB

MATLAB incorpora librerías específicas

llamadas toolboxes, que son colecciones de

funciones especializadas y diseñadas para

resolver problemas muy específicos, por

ejemplo, procesamiento de señales, cálculo

simbólico, diseño de sistemas de control.

Page 11: DIA1 MATLAB

El dato básico que opera MATLAB es el array.

MATLAB es básicamente un software para

trabajar con cálculo numérico. Sin embargo,

se pueden realizar operaciones matemáticas

simbólicas (librería Symbolic Math).

Page 12: DIA1 MATLAB

Entre sus aplicaciones básicas están:

la manipulación de matrices,

la representación de datos y funciones,

la implementación de algoritmos,

la creación de interfaces de usuario (GUI)

y la comunicación con programas en otros

lenguajes y con otros dispositivos

hardware.

Page 13: DIA1 MATLAB

El paquete MATLAB dispone de dos

herramientas adicionales que expanden sus

prestaciones, a saber, Simulink (plataforma

de simulación multidominio) y GUIDE

(editor de interfaces de usuario - GUI).

Además, se pueden ampliar las capacidades

de MATLAB con las cajas de herramientas

(toolboxes); y las de Simulink con los

paquetes de bloques (blocksets).

Page 14: DIA1 MATLAB

Es un software muy usado en universidades y

centros de investigación y desarrollo. En los últimos

años ha aumentado el número de prestaciones,

como la de programar directamente procesadores

digitales de señal o crear código VHDL.

Page 15: DIA1 MATLAB

Usos del MATLAB

Computación matemática

Modelado y simulación

Análisis y procesamiento de datos

Visualización y representación de gráficos

Desarrollo de algoritmos

Usos en la industria

Investigación

Desarrollo y diseño de prototipos

Page 16: DIA1 MATLAB

Matemáticas

Las matemáticas es una área importante para Matlab, donde prácticamente

todas sus funciónes de MatLab están basadas en ellas, tomando en cuenta

que todas la demás ciencias basan sus desarrollos en conceptos puramente

matemáticos como: de tipo algebraicos, de cálculo, de ecuaciones

diferenciales, etc. Los programadores de Matlab han desarrollado alguna

función para que el usuario simplemente la conozca y utilice sin mayor

dificultad.

• Trabaja con literales con la función syms, que es importante en él área de

matemáticas para analizar analíticamente.

• Resuelve ecuaciones lineales, y ecuaciones diferenciales relacionadas a

variables literales con la función solve. Y muchas más.

Page 17: DIA1 MATLAB

La relación entre la física y la matemática es muy directa, la mayor

parte de los fenómenos físicos de la naturaleza pueden ser descritos

mediante su comportamiento matemático, por lo mismo Matlab es la

herramienta perfecta para representar tales comportamientos y

desarrollar estudios sobre muchos que se conservan como teoría. En

Matlab, el especialista encontrará una herramienta muy útil para

desarrollar sus investigaciones.

Un ejemplo sería:

• Tiro parabólico

Física

Page 18: DIA1 MATLAB

Estadística

La estadística es sin duda un área de conocimiento muy extenso, pero de

mucha utilidad para casi todas las demás ciencias que buscan predecir

ciertas situaciones en base registros anteriores,. Los datos estadísticos que

revelan tanto la posibilidad como la incidencia no son de obra de la

casualidad, vienen respaldados de complejos desarrollos matemáticos que

han sido definidos a través de los años. Conceptos como desviación

estándar, varianza, media, mediana, etc., esto no debe sonar extraños ante

los oídos de los investigadores de la ciencias exactas.

Page 19: DIA1 MATLAB

Finanzas

Muchas veces lo que se inician en el área de finanzas,

pensarían que Matlab no les ayudaría o bien no lo tomarían

como su primer opción de software de apoyo para desarrollar

sus conocimientos y tareas de la materia, sin embargo, es

probable que se sorprenderá que muchos especialistas en el

área han encontrado en Matlab una herramienta sorprendente

por que tiene un Toolbox financiero ya integrado que contiene

funciones muy específicas del área.

Page 20: DIA1 MATLAB

Ingeniería electrónica

En esta área Matlab abarca un

gran número de funciones que a

su vez han sido diseñadas para

satisfacer las necesidades de la

gran mayoría de ciencias

exactas conocidas.

Page 21: DIA1 MATLAB

Comunicaciones

Continuando con electrónica, la

comunicación se deriva de ella, a

la transmisión de información de

cualquier tipo entre un emisor y

un receptor, como algunos

dispositivos electrónicos, existen

varias formas de lograr esta

comunicación y el desarrollo de

nuevos métodos que es el campo

de acción de esta especialidad.

Page 22: DIA1 MATLAB

ControlEl control es posible que sea una de las área con mas

desarrollo dentro de la industria manufacturera moderna.

Especialistas del área han encontrado en Matlab una

herramienta muy poderosa para simular sistemas de control

de muy diversos tipos .

Page 23: DIA1 MATLAB

Procesamiento de señales

Dentro de las especialidades de la ingeniería electrónica, el

procesamiento de señales es otra de las grandes ramas de desarrollo,

donde el diseño de filtros, que compete a esta área en particular,

posee una gran cantidad de funciones propias.

Page 24: DIA1 MATLAB

Procesamiento de imágenes

El procesamiento digital de imágenes es el conjunto de

técnicas que se aplican a las imágenes digitales con el

objetivo de mejorar la calidad o facilitar la búsqueda de

información.

Page 25: DIA1 MATLAB

Ventajas de MATLAB

Amplio soporte matemático

Alta precisión

Amplio soporte de funciones ya

desarrolladas

Integración con dispositivos hardware

Una comunidad muy extendida

Magnífica ayuda

Comercial

Page 26: DIA1 MATLAB

Gestión obscura de la memoria

Problemas eventuales de velocidad

Desventajas de MATLAB

Page 27: DIA1 MATLAB

Entorno de MATLAB

Command window

(área de trabajo)

Workspace

(instalación de

variables)

Current folder

(directorio de

archivos)

Command history

Page 28: DIA1 MATLAB

Entorno de MATLAB

Command window

Workspace

Command History

Page 29: DIA1 MATLAB

Entorno de MATLAB

Page 30: DIA1 MATLAB

Command help

Ayuda sobre

típicos generales

Page 31: DIA1 MATLAB

Nuevo script

Editor del script

Ejecutar

Guardar

programa

Page 32: DIA1 MATLAB

Borrar variables

Ejecutar desde

command window

Instalación de

Directorio

Page 33: DIA1 MATLAB

Set Path(esto sirve para

añadir librerías)

Page 34: DIA1 MATLAB

Preferencias de

configuración

Page 35: DIA1 MATLAB

Help prod

Page 36: DIA1 MATLAB

Salvando mis variables y mi entorno de trabajo

La función whos permite ver los

atributos de nuestra variable “a”

Salvando mi entorno

de trabajo

Salvando mi variable mi

matriz “ a”

Cargar mi

entorno de

trabajo

Salvar mi

variable en un

archivo txt

Page 37: DIA1 MATLAB

Definiendo un vector

Si multiplicamos la

matriz de a por el

vector a1, podremos

obtener resultado

Pero que pasa cuando queremos

multiplicar el vector por la matriz a,

nos marcará un error, pues una de las

propiedades para multiplicar una

matriz es

Page 38: DIA1 MATLAB

Creamos nuevamente la

variable a y b con los siguientes

datos, observemos que no se

despliegan en el entorno de

trabajo porque le pusimos ;

Page 39: DIA1 MATLAB

Definición de matrices y vectores

Definición de una matriz “a” en un

solo renglón, para intercambio de

renglón se utiliza ;

Se define “b”, como la

transpuesta de “a” con el

apostrofe ‘

Si no definimos una

variable para la

respuesta, nos

devolverá ans

Page 40: DIA1 MATLAB

Puntualizaciones sobre la variables en

MATLAB

Todas las variables en MATLAB son arrays.

Un escalar es simplemente un array de solo un

elemento.

Un vector es un array de una sola fila o columna

de elementos.

Una matriz es un array con elementos distribuidos

en filas y columnas.

Page 41: DIA1 MATLAB

Puntualizaciones sobre la variables en

MATLAB

Las variables(escalares, vectores o matrices) se

definen a partir de la entrada, cuando a la

variable se le asigna un valor. No hay necesidad

de definir explícitamente el tamaño del array

antes de que se produzca la asignación.

Una vez que la variable existe como escalar,

vector o matriz, su contenido y tamaño puede

cambiarse. Por ejemplo, un escalar puede

transformarse en una matriz o un vector, así como

una matriz puede convertirse en un escalar.

Page 42: DIA1 MATLAB

Operador de transposición

El operador de transposición, cuando se aplica a

un vector, transforma la fila en columna y

viceversa.

Cuando se aplica a una matriz, éste transforma

las filas en columnas y viceversa.

sea una matriz A

La transpuesta de A se define por una matriz B=A’

Page 43: DIA1 MATLAB

Utilización de los dos puntos (:) en la

manipulación de arrays para vectores

Los dos puntos se utilizan para acceder a un rango de

elementos dentro de un vector o una matriz.

A(:) se refiere a todos los elementos de vector A (ya sea

un vector fila o columna).

A(m:n) Se refiere a todos los elementos comprendidos

entre las posiciones m y n del vector A

Ejemplo: >> va=[3 5 6 4 2 1 9 6 5]

va =

3 5 6 4 2 1 9 6 5

>> u=va(3:7)

u =

6 4 2 1 9

Page 44: DIA1 MATLAB

A(:,n) se refiere a los elementos de la columna n de la

matriz A

A(n,:) se refiere a los elementos de la fila n de la matriz A

A(:,m:n) se refiere a los elementos entre las columnas m y

n de la matriz A

A(m:n,:) Se refiere a los elementos entre las filas m y n de

la matriz A

A(m:n,p:q) Se refiere a los elementos de la fila m a la n, y

a los de la columna p a la q de la matriz A

Utilización de los dos puntos (:) en la

manipulación de arrays para matrices.

Page 45: DIA1 MATLAB

ejemplos

>>A =

1 3 5 7 9 11

0 5 10 15 20 25

10 20 30 40 50 60

67 2 43 68 4 13

>> B=A(:,3)

B =

5

10

30

43

Utilización de los dos

puntos (:) en la

manipulación de arrays

para matrices.

A=[1:2:11;0:5:25;10:10:60;67 2 43 68 4 13]

Page 46: DIA1 MATLAB

>> F=A(1:3,2:4)

F =

3 5 7

5 10 15

20 30 40

>> E=A(2:4,:)

E =

0 5 10 15 20 25

10 20 30 40 50 60

67 2 43 68 4 13

>> C=A(2,:)

C =

0 5 10 15 20 25

>> A

A =

1 3 5 7 9 11

0 5 10 15 20 25

10 20 30 40 50 60

67 2 43 68 4 13

Page 47: DIA1 MATLAB

Crear una matriz de 6x6 en la cual las dos filas centrales,

junto con las dos columnas centrales, sean unos, siendo el

resto de los elementos ceros.

>>AR=zeros(6,6)

AR=

>>AR(3:4,:)=ones(2,6)

AR=

>>AR(:,3:4)=ones(6,2)

AR =

0 0 1 1 0 0

0 0 1 1 0 0

1 1 1 1 1 1

1 1 1 1 1 1

0 0 1 1 0 0

0 0 1 1 0 0

Page 48: DIA1 MATLAB

Algunas operaciones con vectores y matrices

+ adición o suma

– sustracción o resta

* multiplicación

' traspuesta

^ potenciación

\ división-izquierda

/ división-derecha

.* producto elemento a elemento

.\ y ./ división elemento a elemento

.^ elevar a una potencia elemento a elemento

Page 49: DIA1 MATLAB

Operaciones matemáticas con arrays

Para sumar o restar dos matrices se requiere que

ambas sean del mismo tamaño mxn

Para multiplicar dos matrices se requiere que el

número de columnas de la primer matriz sea igual al

número de filas de la segunda, esto es que la primer

matriz de mxn se multiplique con la segunda matriz

nxp para obtener una matriz de mxp

Page 50: DIA1 MATLAB

Ejemplos de suma resta y multiplicación

entre matrices.

Page 51: DIA1 MATLAB

División de arrays

MATLAB posee dos tipos de divisiones de arrays: la división derecha y la

división izquierda.

División izquierda \

La división izquierda se utiliza para resolver ecuaciones matriciales

AX=B

En esta ecuación X y B son vectores columna. La ecuación en sí puede ser

resuelta multiplicando en la parte izquierda de ambos miembros de la

igualdad por el inverso de A:

A-1AX=A-1B

X=A-1B

En Matlab, se puede escribir utilizando el carácter de la división izquierda:

X= A\B

Page 52: DIA1 MATLAB

División derecha

La división derecha se utiliza para resolver ecuaciones matriciales

XC=D

En esta ecuación X y D son vectores fila.

La ecuación anterior se puede resolver multiplicando la parte derecha de

ambos miembros de la igualdad por la inversa de C:

XCC-1 = DC-1

X=DC-1

En MATLAB, esta última ecuación se puede escribir utilizando el carácter de

división derecha:

X = D/C

Page 53: DIA1 MATLAB

Algebra en Matlab

Empecemos por realizar el siguiente sistema

de ecuaciones, para lo cual, abran un script

para que lo guardemos como ejemplo, o bien

pueden hacerlo en el command window.

Page 54: DIA1 MATLAB

Ejemplo. Solución de sistemas lineales

Utilizar los operadores array para resolver el

siguiente sistema de ecuaciones

4x – 2y + 6z = 8

2x+ 8y + 2z = 4

6x+ 10y +3z = 0

Page 55: DIA1 MATLAB

solución

A =

4 -2 6

2 8 2

6 10 3

>> B=[8; 4; 0]

B =

8

4

0

>> X=A\B

X =

-1.8049

0.2927

2.6341

Aplicamos el carácter

división izquierda

>> Xa=inv(A)*B

Xa =

-1.8049

0.2927

2.6341

Aplicamos

la inversa de A

O bien,

Page 56: DIA1 MATLAB

>> C=[4 2 6;-2 8 10;6 2

3]

C =

4 2 6

-2 8 10

6 2 3

>> D=[8 4 0]

D =

8 4 0

>> Xc=D/C

Xc =

-1.8049 0.2927 2.6341

4x – 2y + 6z = 8

2x+ 8y + 2z = 4

6x+ 10y +3z = 0

Solución de la forma XC=D Sacamos la

transpuesta de la

matriz A

Solución de X=D/C,

mediante la división derecha

Page 57: DIA1 MATLAB

Solución de la forma X=DC-1 mediante la

inversa de C

>> Xd=D*inv(C)

Xd =

-1.8049 0.2927

2.6341

C =

4 2 6

-2 8 10

6 2 3

>> D=[8 4 0]

D =

8 4 0

4x – 2y + 6z = 8

2x+ 8y + 2z = 4

6x+ 10y +3z = 0

solución

Page 58: DIA1 MATLAB

Podemos guardar nuestro archivo con el

nombre sistema_ecuaciones

Page 59: DIA1 MATLAB

Para realizar una matriz identidad tenemos la

siguiente función

Matriz cuadrada de 1s

Matriz cuadrada de 0s

Page 60: DIA1 MATLAB

Definición de vectoresVector de 1 al 10

Vector de 1 al 10 con

espaciamiento de 2

Vector de 0 a 1 con

espaciamiento de

0.1

Vector de 1´s. realizado a

través de otras-

Page 61: DIA1 MATLAB

Cuando utilizamos la función

rand es para realizar una

distribución uniforme

Y la función randn es para una

distribución normal

Matriz identidad

cuadrada de 3

Page 62: DIA1 MATLAB

Convertir matriz en vector

Extracción de un

elemento

Page 63: DIA1 MATLAB

Extracción de una columna

Extracción de una

columna

Page 64: DIA1 MATLAB

Asignación de 1s en columna

Asignación de 1s en renglón

Page 65: DIA1 MATLAB

Examinando una coordenada

que no existe en una matriz, sin

embargo insertará el número en

la posición

Acceder a índices de una

matriz

Page 66: DIA1 MATLAB

Crear los tres arrays en la ventana de comandos y,

seguidamente, escribir un solo comando que

reemplace: 1) las cuatro últimas columnas de las filas 1

y 3 de A por las cuatro primeras columnas de las

primeras dos filas de la matriz B; 2) las cuatro últimas

columnas de la cuarta fila de A por los elementos 5 a 8

de v; y 3) las cuatro últimas columnas de la quinta fila

de A por las columnas 2 a 5 de la tercera filas de B.

>>A=[2:3:17; 3:3:18; 4:3:19; 5:3:20; 6:3:21]

>>B=[5:5:30; 30:5:55; 55:5:80]

>>v=[99:-1:91]

Page 67: DIA1 MATLAB

A =

2 5 8 11 14 17

3 6 9 12 15 18

4 7 10 13 16 19

5 8 11 14 17 20

6 9 12 15 18 21

B=

5 10 15 20 25 30

30 35 40 45 50 55

55 60 65 70 75 80

v =

99 98 97 96 95 94 93 92 91

Page 68: DIA1 MATLAB

solución

1) A([1 3], 3:6)=[B([1 2],1:4);

A =

2 5 5 10 15 20

3 6 9 12 15 18

4 7 30 35 40 45

5 8 11 14 17 20

6 9 12 15 18 21

Page 69: DIA1 MATLAB

2) A(4,3:6)=v(5:8);

A =

2 5 5 10 15 20

3 6 9 12 15 18

4 7 30 35 40 45

5 8 95 94 93 92

6 9 12 15 18 21

Page 70: DIA1 MATLAB

3) >> A(5,3:6)=B(3,2:5)

A =

2 5 5 10 15 20

3 6 9 12 15 18

4 7 30 35 40 45

5 8 95 94 93 92

6 9 60 65 70 75

Page 71: DIA1 MATLAB

Solución en un solo renglón

A =

2 5 5 10 15 20

3 6 9 12 15 18

4 7 30 35 40 45

5 8 95 94 93 92

6 9 60 65 70 75

>> A([1 3 4 5], 3:6)=[B([1 2],1:4); v(5:8);B(3,2:5)]

Page 72: DIA1 MATLAB

Operadores relacionales

< menor que

> mayor que

<= menor o igual que

>= mayor o igual que

== igual que

~= distinto que (~=Alt-Graph126)

Page 73: DIA1 MATLAB

Obtener los valores de la matriz

mayores a 0.5

Mostrar el tamaño de la matriz, nos

arrojara, que es una matriz

cuadrada.

Page 74: DIA1 MATLAB

Extraer un elemento mayor

que 3

La función magic, arroja como

resultado una matriz mágica que tanto

las columnas, renglones y diagonal da

el mismo resultado al sumarlo

Veámoslo sumando la primera fila

Page 75: DIA1 MATLAB

Suma de todas las columnas para

comprobar que cada una ellas no da

lo mismo al sumarlos

Extraer elementos de la fila

del 1 al 5 y las columnas

1,3,5

Eliminar la tercera columna

Page 76: DIA1 MATLAB

La función isempty, nos comprobará si

la matriz esta vacía o no

Con esto le estamos asignando a B que se

vacie

Ahora si, podemos utilizar la función isempty, y

nos arrojará 1, que es verdadero

Page 77: DIA1 MATLAB

Definición de una matriz a partir de

diferentes expresiones matemáticas

MAt =

3.0000 24.0000 0.5000

2.0000 1.6330 14.0000

>> cd=6; e=3; h=4;

>> MAt=[e,cd*h,cos(pi/3); h/2,sqrt(h*h/cd), 14]

Page 78: DIA1 MATLAB

A =

1 3 5 7 9 11

0 5 10 15 20 25

10 20 30 40 50 60

67 2 43 68 4 13

>>

Definición de una matriz a partir de

diferentes expresiones matemáticas

>> A=[1:2:11; 0:5:25; linspace(10,60,6); 67 2 43 68 4 13]

Page 79: DIA1 MATLAB

Algunas funciones matemáticas

sqrt( ) raíz cuadrada.

round( ) redondeo entero más cercano.

sign( ) función signo.

exp( ) exponencial.

log( ) logaritmo neperiano.

log10( ) logaritmo decimal.

sin( ) seno.

cos( ) coseno.

tan( ) tangente.

asin( ) arcoseno.

acos( ) arcocoseno.

atan( ) arcotangente.

Page 80: DIA1 MATLAB

Función aplicada a un

escalar

Función aplicada a un vector

Función aplicada a una matriz

Función aplicada con

salida de dos argumentos

Page 81: DIA1 MATLAB

En Matlab, funciones pueden

considerar las matrices como una

matriz y no como una colección de

elementos

Page 82: DIA1 MATLAB

Operaciones elemento a elemento

Para que las operaciones de multiplicación, exponenciación

y división de arrays se realicen elemento a elemento, en

MATLAB hay que teclear un punto delante del operador

aritmético correspondiente.

simbolo descripción

.* Multiplicación

.^ Exponenciación

./ División derecha

.\ División izquierda

Page 83: DIA1 MATLAB

Ejemplos de operaciones elemento a elemento

>> A

A =

4 -2 6

2 8 2

6 10 3

>> B

B =

4 6 8

1 2 3

7 3 1

>> A.*B

ans =

16 -12 48

2 16 6

42 30 3

>> C=A./B

C =

1.0000 -0.3333 0.7500

2.0000 4.0000 0.6667

0.8571 3.3333 3.0000

>> D=A.\B

D =

1.0000 -3.0000 1.3333

0.5000 0.2500 1.5000

1.1667 0.3000 0.3333

>> E=A.^2

E =

16 4 36

4 64 4

36 100 9

Page 84: DIA1 MATLAB

Ejemplo: Cálculo del valor de una función

pasándole distintos valores de sus argumentos

>> x=[1:8]

x =

1 2 3 4 5 6 7 8

>> y=x.^2-4*x

y =

-3 -4 -3 0 5 12 21 32

Vector de ocho elementos

El vector x se utiliza en

operaciones elemento a

elemento para obtener el

vector y (resultado del cálculo

sobre elementos de x)

Page 85: DIA1 MATLAB

Ejemplo 2 Evaluar la función

Z3 + 5z

Y= ---------------

4z2 – 10

>> x=[1:8]

x =

1 2 3 4 5 6 7 8

>> y=(z.^3+5*z)./(4*z.^2-10)

y =

-1.0000 1.6154 1.6667 2.0323 2.4650 2.9241 3.3964 3.8764

Se crea un vector de ocho elementos

El vector z se utiliza en

operaciones elemento a elemento

para obtener el vector y (resultado

del cálculo sobre los elementos de

z)

Page 86: DIA1 MATLAB

Análisis de circuitos resistivos.

Solución de un sistema de ecuaciones lineales

El circuito eléctrico anexo está formado por

distintas resistencias y fuentes de alimentación.

Determine la intensidad de corriente que pasa

por cada resistencia utilizando las leyes de

Kirchhoff para la resolución de circuitos de

resistivos. Los datos del circuito son los

siguientes:

>> V1=20;V2=12;V3=40;

>> R1=18;R2=10;R3=16;R4=6;

>> R5=15;R6=6;R7=12;R8=14;

>> R6=8;

V1

R1

V3

V2

R2 R3

R4

R5R6

R7

R8

i1

i2

i3

i4

+

-

+

-

+

-

V=volt

R=ohm

i=ampere

Page 87: DIA1 MATLAB

V1

R1

V3

V2

R2 R3

R4

R5R6

R7

R8

i1

i2

i3

i4

+

-

+

-

+

-

Representación del sistema

de ecuaciones en forma

matricial

Page 88: DIA1 MATLAB

Análisis de circuitos resistivos

Solución

A =

-44 10 16 0

10 -43 6 12

16 6 -30 8

0 12 8 -34

>> B=[-V1;0;V2;-V3]

B =

-20

0

12

-40

>> I=A\B

I =

0.8411

0.7206

0.6127

1.5750

>> A=[-(R1+R2+R3) R2 R3 0

R2 -(R2+R4+R5+R7) R4 R7

R3 R4 -(R3+R4+R6) R6

0 R7 R6 -(R6+R7+R8)]

Page 89: DIA1 MATLAB

Ejercicio del día 1

Page 90: DIA1 MATLAB
Page 91: DIA1 MATLAB
Page 92: DIA1 MATLAB

Solución a los ejercicios

1. >> w=(3i-1)^5/(5+i)

w =

-61.2308 + 9.8462i

>>abs(w)

ans =

62.0174

>> angle(w)

ans =

2.9822

Page 93: DIA1 MATLAB

2) >> n=[1 10 100 500 1000 2000 4000 8000];

>> y=(1+1./n).^n

y =

Columns 1 through 6

2.0000 2.5937 2.7048 2.7156 2.7169 2.7176

Columns 7 through 8

2.7179 2.7181

>> exp(1)

ans =

2.7183

Page 94: DIA1 MATLAB

3) A=[2 6; 3 9]; B=[1 2; 3 4]; C=[-5 5; 5 3];

Pueden ir varios comandos en la misma línea, separados por, o bien por ;. Si utilizamos comas

MATLAB nos devuelve el resultado en pantalla.

Primero se inicializa una matriz de ceros.

>> G=zeros(6,6);

después se meten las tres matrices como submatrices de G

>> G(1:2,1:2)=A; G(3:4,3:4)=B; G(5:6,5:6)=C

G =

2 6 0 0 0 0

3 9 0 0 0 0

0 0 1 2 0 0

0 0 3 4 0 0

0 0 0 0 -5 5

0 0 0 0 5 3

Page 95: DIA1 MATLAB

Eliminar la última fila y la última columna: Como se quiere conservar la matriz G, primero le asignamos el mismo valor a una nueva variable F

En la que haremos los cambios.

>> F=G; y ahora hacemos la eliminación sobre F

>> F(6,:)=[]

F =

2 6 0 0 0 0

3 9 0 0 0 0

0 0 1 2 0 0

0 0 3 4 0 0

0 0 0 0 -5 5

Page 96: DIA1 MATLAB

>> F(:,6)=[]

F =

2 6 0 0 0

3 9 0 0 0

0 0 1 2 0

0 0 3 4 0

0 0 0 0 -5

Page 97: DIA1 MATLAB

Extraer la submatriz 4 x 4 de la esquina superior izquierda de

G:

>> H=G(1:4,1:4)

H =

2 6 0 0

3 9 0 0

0 0 1 2

0 0 3 4

Extraer la submatriz f1; 3; 6g £ f2; 5g de G:

Page 98: DIA1 MATLAB

Extraer la submatriz {1; 3; 6} x {2; 5} de G:

>> K=G([1 3 6],[2 5])

K =

6 0

0 0

0 5

Page 99: DIA1 MATLAB

Para cambiar el valor de un elemento basta con asignarle el nuevo: Como queremos conservar la matriz G, los cambios se van a realizar sobre la variable J

>> J=G;

J(5,5)=4

J =

2 6 0 0 0 0

3 9 0 0 0 0

0 0 1 2 0 0

0 0 3 4 0 0

0 0 0 0 4 5

0 0 0 0 5 3

Nota: La mayor parte de estos manejos (eliminación de filas, cambio de

valor de elementos, etc.) se pueden hacer desde la ventana del Works-

pace, editando la variable. Pero necesitamos saber hacerlo también con

comandos.

Page 100: DIA1 MATLAB

4) A=[2 -1 3; 1 4 1; 6 10 3]; b=[4;2;0];

inv(A)*b

ans =

-1.8049

0.2927

2.6341

>> A\b

ans =

-1.8049

0.2927

2.6341

La solución es x = -1.8049, y = 0.2927, z = 2.6341