Está en la página 1de 71

Facultad de Ingeniería Química y Metalurgia

CURSO PARA INGENIEROS:


Introducción a MATLAB y
SIMULINK
Por: Ing° José S. Orbegoso López

CONTENIDOS:

1. Generalidades.
2. Manipulación de matrices.
3. Gráficas en 2D y 3D.
4. Programación.
5. Métodos numéricos.
6. Matemáticas simbólicas.
7. Simulink.

Huacho, Abril de 2013


MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

1. Generalidades

Desarrollado a finales de los setenta en las Universidades de New Mexico y Stanford. En la


actualidad ampliamente difundido en diversas Universidades e Industrias. Núcleo básico del
programa: Cálculo numérico basado en matrices. Matlab= Matrix Laboratory. Módulos
adicionales. Simulink, MatLab Symbolic Toolbox (núcleo del programa Maple), etc. La versión
última es R2013a.

Operadores

2
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Tipos de datos: MATLAB es un programa preparado para trabajar con vectores y matrices.
Como caso particular también trabaja con variables escalares (matrices de dimensión 1). MATLAB
trabaja siempre en doble precisión, es decir guardando cada dato en 8 bytes, con unas 15 cifras
decimales exactas. Ya se verá más adelante que también puede trabajar con cadenas de caracteres
(strings) y, desde la versión 5.0, también con otros tipos de datos: Matrices de más dos
dimensiones, matrices dispersas, vectores y matrices de celdas, estructuras y clases y objetos.

Otras formas de definir matrices: Existen en MATLAB varias funciones orientadas a


definir con gran facilidad matrices de tipos particulares. Algunas de estas funciones son las
siguientes:

eye (4) forma la matriz unidad de tamaño (4x4)

zeros(3,5) forma una matriz de ceros de tamaño (3x5)

zeros(4) ídem de tamaño (4x4)

ones(3)forma una matriz de unos de tamaño (3x3)

ones(2,4) ídem de tamaño (2x4)

linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2-

logspace(d1,d2,n) genera un vector con n valores espaciados logarítmicamente entre10^d1


y 10^d2. Si d2 es pi6, los puntos se generan entre 10^d1y pi

rand(3)forma una matriz de números aleatorios entre 0 y 1,con distribución uniforme, de


tamaño (3x3)

rand(2,5) ídem de tamaño (2x5)

randn(4)forma una matriz de números aleatorios de tamaño(4x4), con distribución normal,


de valor medio 0 y varianza

magic(4)crea una matriz (4x4) con los números 1, 2, ... 4*4, con la propiedad de que todas
las filas y columnas suman lo mismo

hilb(5)crea una matriz de Hilbert de tamaño (5x5). La matriz de Hilbert es una matriz cuyos
elementos (i, j) responden a la expresión (1/(i+j-1)). Esta es una matriz especialmente difícil
de manejar por los grandes errores numéricos a los que conduce.

Formación de una matriz a partir de otras

A continuación se describen algunas de las funciones que crean una nueva matriz a partir de otra o
de otras, comenzando por dos funciones auxiliares:

[m,n]=size(A) devuelve el número de filas y de columnas de la matriz A.


3
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Si la matriz es cuadrada basta recoger el primer valor de retorno

N=length(x)calcula el número de elementos de un vector x

zeros(size(A))forma una matriz de ceros del mismo tamaño que una matriz A previamente
creada.

ones(size(A))ídem con unos.

A=diag(x)forma una matriz diagonal A cuyos elementos diagonales son los elementos de un
vector ya existente x

x=diag(A)forma un vector x a partir de los elementos de la diagonal de una matriz ya


existente A

diag(diag(A))crea una matriz diagonal a partir de la diagonal de la matriz A.

blkdiag(A,B)crea una matriz diagonal de submatrices a partir de las matrices que se le


pasan como argumentos.

triu(A)forma una matriz triangular superior a partir de una matriz A (no tiene por qué ser
cuadrada).

tril(A)ídem con una matriz triangular inferior

OPERADOR DOS PUNTOS (:)

Defínase un vector x con el siguiente comando:

>> x=1:10

x=
1 2 3 4 5 6 7 8 9 10

En cierta forma se podría decir que el operador (:) representa un rango: en este caso, los números
enteros entre el 1 y el 10.
Por defecto el incremento es 1, pero este operador puede también utilizarse con otros valores
enteros y reales, positivos o negativos. En este caso el incremento va entre el valor inferior y el
superior.

>> x=1:2:10
x=
1 3 5 7 9

>> x=10:-1:1
x=
10 9 8 7 6 5 4 3 2 1
4
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

OPERADORES RELACIONALES

OPERADORES LOGICOS

FUNCIONES MATEMÁTICAS ELEMENTALES QUE OPERAN DE MODO


ESCALAR

5
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

6
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

FUNCIONES QUE ACTÚAN SOBRE LOS VECTORES

FUNCIONES QUE ACTUAN SOBRE MATRICES

7
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Tabla de códigos ASCII - Formato de caracteres


estándares
ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo

0 0 NUL 16 10 DLE 32 20 (espacio) 48 30 0


1 1 SOH 17 11 DC1 33 21 ! 49 31 1
2 2 STX 18 12 DC2 34 22 " 50 32 2
3 3 ETX 19 13 DC3 35 23 # 51 33 3
4 4 EOT 20 14 DC4 36 24 $ 52 34 4
5 5 ENQ 21 15 NAK 37 25 % 53 35 5
6 6 ACK 22 16 SYN 38 26 & 54 36 6
7 7 BEL 23 17 ETB 39 27 ' 55 37 7
8 8 BS 24 18 CAN 40 28 ( 56 38 8
9 9 TAB 25 19 EM 41 29 ) 57 39 9
10 A LF 26 1A SUB 42 2A * 58 3A :
11 B VT 27 1B ESC 43 2B + 59 3B ;
12 C FF 28 1C FS 44 2C , 60 3C <
13 D CR 29 1D GS 45 2D - 61 3D =
14 E SO 30 1E RS 46 2E . 62 3E >
15 F SI 31 1F US 47 2F / 63 3F ?

ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo

64 40 @ 80 50 P 96 60 ` 112 70 p
65 41 A 81 51 Q 97 61 a 113 71 q
66 42 B 82 52 R 98 62 b 114 72 r
67 43 C 83 53 S 99 63 c 115 73 s
68 44 D 84 54 T 100 64 d 116 74 t
69 45 E 85 55 U 101 65 e 117 75 u
70 46 F 86 56 V 102 66 f 118 76 v
71 47 G 87 57 W 103 67 g 119 77 w
72 48 H 88 58 X 104 68 h 120 78 x
73 49 I 89 59 Y 105 69 i 121 79 y
74 4A J 90 5A Z 106 6A j 122 7A z
75 4B K 91 5B [ 107 6B k 123 7B {
76 4C L 92 5C \ 108 6C l 124 7C |
77 4D M 93 5D ] 109 6D m 125 7D }
78 4E N 94 5E ^ 110 6E n 126 7E ~
79 4F O 95 5F _ 111 6F o 127 7F •

8
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

En caso de que el teclado se desconfigure se puede recurrir a ésta tabla,


digitando: ALT + NUMERO DE LA COLUMNA ASCII, para obtener el carácter
necesario.
Ejemplo:
ALT + 92 va a dar \
ALT + 91 va a dar [
ALT + 93 va a dar ]
ALT + 94 va a dar ^
ALT + 58 va a dar :
ALT + 59 va a dar ;
Etc.

GUIA DE LA CLASE1

Ambiente de trabajo de MatLab. Workspace, Windows y Help.

9
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Fig 1: Ventana Inicial de Matlab 7.12.0.635(R2011a)


En la ventana inicial se sugieren ya algunos comandos para el usuario inexperto que quiere echar un
vistazo a la aplicación. En dicha ventana aparece también el prompt característico de MATLAB (»).
Esto quiere decir que el programa está preparado para recibir instrucciones. Puede hacerse que
aparezca un saludo inicial personalizado por medio de un fichero de comandos personal que se
ejecuta cada vez que se entra en el programa.
Una vez que el programa comienza, se visualizan tres pequeñas ventanas: Command, Wokspace y
Command History. Estas son 3 de las ocho diferentes ventanas en Matlab. El listado de las
ventanas y sus propósitos se muestran en la tabla 1.

Tabla 1 : Ventanas de Matlab

Ventana Propósitos
Command Window Ventana principal, variables enteras, corre programas.
Figure Window Contiene información para controles gráficos.
Editor Window Crea y elimina escritos y archivos de funciones.
Help Window Proporciona información de ayuda
Launch Pad Window Provee acceso a herramientas, demostraciones y documentación.

10
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Command History Window Introduce los controles principales en la ventana de control .


Workspace Window Proporciona información de las variables que son usadas.
Current Directory Window Muestra los archivos actuales en el directorio.

Ventana Command: Esta ventana es la ventana principal y se abre cuando comienza Matlab. Es
conveniente tener la ventana command como la única ventana visible y esto puede hacerse cerrando
todas las otras ventanas.
Ventana Figure: La ventana figure se abre automáticamente cuando ejecutamos los comandos
gráficos y contienen gráficos creados por estos comandos. Un ejemplo de la ventana Figure es
mostrada en la figura 2.

{ Puede usted ingresar lo siguiente, utilizando una hoja de editor:


>> x = [0:0.1:16];
>> y = x.^ (1.4).*cos(x)
>> plot(x,y)

>> title('Gráfica de la función y = x.^1^.^4.*cos(x)') }

FIGURA 2 : GRÁFICO DE LA FUNCIÓN COSENO(X)

11
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Ventana Editor: La ventana editor es usada para escribir y editar, crear y modificar programas,
tanto como ejecutarlos paso a paso para ver si contienen errores (proceso de depuración). El editor
muestra con diferentes colores los diferentes tipos o elementos de los comandos (en verde, para los
comentarios; en rojo, las cadenas de caracteres, etc.). El editor se preocupa de que las comillas o
paréntesis que se abren, no se queden sin cerrar. Figura 3

Figura 3: Ventana Editor


Ventana Help
MATLAB 7.12.0.635 (R2011a) dispone de un excelente Help con el que se puede encontrar la
información que se desee. La Figura 4 muestra las distintas opciones que aparecen en el menú Help.
1. Help Window, Se abre la ventana de la Figura 4, en la que se puede buscar ayuda sobre la
función o el concepto que se desee.
2. Help Tips. Ofrece ideas prácticas para utilizar la ayuda.
3. Help Desk. Se abre un browser de Internet (Netscape Communicator, en el caso de la Figura 5)
que permite acceder a toda la información sobre MATLAB en formato HTML. Esta información es
equivalente a los manuales impresos del programa. Desde la parte inferior de esta página, mediante
el enlace Online Manuals (in PDF) se puede acceder a la versión *.pdf (PortableDocument
Format) de los manuales de MATLAB.

12
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

FIGURA 4: VENTANA HELP

13
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Este formato es menos adecuado para consultar que el HTML, pero mucho más adecuado
para imprimir y revisar luego sobre papel. El formato *.pdf requiere del programa gratuito
Adobe Acrobat Reader 5.0 o una versión superior.
4. Examples and Demos. Se abre una ventana que da acceso a un buen número de ejemplos
resueltos con MATLAB, cuyos resultados se presentan gráficamente de diversas formas. Es
bastante interesante recorrer estos ejemplos para hacerse idea de las posibilidades del
programa.

FIG 5: VENTANA DEMOS DE HELP WINDOW. FIG 6 : VENTANA TOOLBOX DE HELP


DESK

14
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Además, se puede también recurrir al Help desde la línea de comandos. Se aconseja hacer
prácticas al respecto. Por ejemplo, obsérvese la respuesta a los siguientes usos del comando
help:
» help
» help lang
El comando helpwin seguido de un nombre de comando muestra la información
correspondiente a ese comando en la ventana Help Window (ver Figura 5), incluyendo
también comandos similares sobre los que se ofrece ayuda.
El comando doc seguido de un nombre de comando muestra la información correspondiente a
ese comando a través de Netscape Navigator o Internet Explorer, en formato HTML.
El Debugger es un programa enormemente útil para detectar y corregir errores, que hay que
conocer muy bien. Para ello lo mejor es practicar. De hecho, al realizar operaciones con el
Debugger gráfico van a apareciendo las correspondientes instrucciones en la línea de
comandos.
VISITE:

VENTANA WORKSPACE
El espacio de trabajo consiste en el sistema de variables acumuladas durante una sesión de
usar el software de MATLAB y almacenadas en memoria. Usted agrega variables al espacio
de trabajo usando las funciones, M-archivos corrientes, y cargando espacios de trabajo
ahorrados. Por ejemplo, si usted funciona estas declaraciones,

A = magic(4)

R = randn(3,4,5)

El espacio de trabajo incluye dos variables, A y R.

Usted puede realizar workspace y operaciones relacionadas usando el browser del workspace.
Cuando están disponibles, las funciones equivalentes se documentan con cada característica
del browser del espacio de trabajo. Si usted tiene una conexión activa del Internet, usted
puede mirar el Workspace browser video demo para una descripción de la funcionalidad
principal:

15
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Matemáticas escalares. Funciones matemáticas básicas.

2. Operaciones con Vectores y Matrices

>> A=[1 2 3; 4 5 6; 7 8 9]

La respuesta del programa es la siguiente:

A= 123
456
789
Una sencilla operación con A es hallar su matriz traspuesta. En MATLAB el apóstrofe (')
es el símbolo de trasposición matricial.

Para calcular A' (traspuesta de A) basta teclear lo siguiente:

>> A'
ans =
14 7
258
369

La variable ans puede ser utilizada como operando en la siguiente expresión que se
introduzca. También podría haberse asignado el resultado a otra matriz llamada B:
>> B = A'
16
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

B =
147
258
369

Ahora ya están definidas las matrices A y B, y es posible seguir operando con ellas. Por
ejemplo, se puede hacer el producto B*A (deberá resultar una matriz simétrica):

>> B*A
ans =
66 78 90
78 93 108
90 108 126

En MATLAB se accede a los elementos de un vector poniendo el índice entre paréntesis


(por ejemplo x(3) ó x(i)). Los elementos de las matrices se acceden poniendo los dos
índices entre paréntesis, separados por una coma (por ejemplo A(1,2) ó A(i,j)). Las
matrices se almacenan por columnas (aunque se introduzcan por filas, como se ha dicho
antes), y teniendo en cuenta esto puede accederse a cualquier elemento de una matriz con
un sólo subíndice. Por ejemplo, si A es una matriz (3x3) se obtiene el mismo valor
escribiendo A(1,2) que escribiendo A(4).

Invertir una matriz es tan fácil como transponerla.

A continuación se va a definir una nueva matriz A – no singular-en la forma:

>> A = [1 4 -3; 2 1 5; -2 5 3]

A=
1 4 -3
2 1 5
-2 5 3

Ahora se va a calcular la inversa de A y el resultado se asignará a B. Para ello basta hacer


uso de la función inv ( )

>> B = inv(A)

B=
0.1803 0.2213 -0.1885
0.1311 0.0246 0.0902
-0.0984 0.1066 0.0574

Para comprobar que este resultado es correcto basta con multiplicar A por B

>> B*A
ans =

17
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

1.0000 0.0000 0.0000


0.0000 1.0000 0.0000
0.0000 0.0000 1.0000

De forma análoga a las matrices, es posible definir un vector fila x en la forma siguiente
(silos tres números están separados por blancos o comas, el resultado será un vector fila):

>> x=[10 20 30] % vector fila


x=
10 20 30

MATLAB considera comentarios todo lo que va desde el carácter tanto por ciento (%)
hasta el final de la línea.

Si los números están separados por intros o puntos y coma (;) se obtendrá un vector
columna:

>> y=[11; 12; 13] % vector columna


y=
11
12
13

MATLAB tiene en cuenta la diferencia entre vectores fila y vectores columna. Por ejemplo,
si se intenta sumar los vectores x e y se obtendrá el siguiente mensaje de error:

>> x+y

??? Error using ==> +


Matrix dimensions must agree. (Deben estar de acuerdo las dimensiones de la matriz).

Estas dificultades desaparecen si se suma x con el vector transpuesto de y:

>> x + y'
ans =
21 32 43

EJERCICIOS UTILIZANDO MATLAB


1. Transferencia de Calor:
Un objeto con una temperatura inicial de T 0 es colocado al tiempo t = 0 dentro de una
cámara que tiene una temperatura constante de Ts experimentará un cambio de
temperatura de acuerdo a la ecuación:
T = Ts + (T0 – Ts) e-kt
Donde:T = Temperatura del objeto al tiempo.
18
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

k = constante.
Una soda a una temperatura de 120ºF es ubicada dentro de un refrigerador donde la
temperatura es 38ºF. Determine la temperatura alcanzada después de 3 horas. Asumir
k=0.45. Primero define todas las variables y entonces calcula la temperatura usando un
comando Matlab.
Solución
>> Ts= 38; T0 = 120; k = 0.45; t = 3;
>>T = round (Ts +(T0 – Ts) *exp(-k*t))
T = 59
2. Identidad Trigonométrica:
Una identidad trigonométrica está dado por:
 x  tan x  sin x
cos2   
2 2 tan x

Verificar que la identidad es correcta calculando en cada lado de la ecuación y


sustituyendo x = ∏/5.
Solución
>> x = pi/5;
>>LHS = cos(x/2)^2
LHS =
0.9045
>>RHS = (tan(x) +sin(x))/(2*tan(x))
RHS =
0.9045
3. La presión de vapor de agua
Escribir una función¸ en MATLAB, para el cálculo de la presión de vapor del agua.
Use una función¸ es decir, s para calcular la presión de vapor de agua para las
temperaturas de 30, 60 y 90°C.

Resolución: La presión de vapor de agua, pv [bar] es función de la temperatura T [K]


y puede ser calculado por la expresión:
𝑝𝑣 𝑎𝑇𝑟 + 𝑏 𝑇𝑟1,5 + 𝑐 𝑇𝑟3 + 𝑑 𝑇𝑟6
ln =
𝑃𝑐 1 − 𝑇𝑟
Donde:
19
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

𝑇
𝑇𝑟 = 1 −
𝑇𝐶

Los coeficientes¸ a, b, c, d¸ con valores -7,76451, 1,45838, -2,7758 respectivamente -


1,23303. En estas relaciones Tc¸ es una temperatura crítica y Pc la presión crítica del
agua. Esta tiene los valores de 647,3 y 221,2K¸bar. De esta relación se puede expresar
la presión de vapor:

esta ecuación se utiliza para escribir la función MATLAB¸ necesario. Esta función
llama un argumento que tiene en cuenta el valor de la temperatura y valor de retorno
actual correspondiente presión de vapor.

La función se presenta a continuación:

function pv = pvapH2O(T);
% Función para calcular la presión de vapor del agua
%%
Mod de llamar:
% PV = PVAPH2O(T)
% donde: PV - presión de vapor, [bar]
% T - temperatura, [K]
Tc = 647.3; % temperatura critica, [K]
Pc = 221.2; % presión critica, [bar]
a = -7.76451;
b = 1.45838;
c = -2.7758;
d = -1.23303;
Tr = 1 - T./Tc;
pv = exp((a*Tr+b*Tr.^(1.5)+c*Tr.^3+d*Tr.^6)./(1-Tr)).*Pc;
% end function pvapH2O

Llamado esta función puede obtener un escalar.

>> pv = pvaph2o(303.15)

pv =
0.0425
O a través de un vector matriz.

>> pv = pvaph2o(273.15+[30 60 90])


pv =
0.0425 0.1994 0.7015
OTROS EJERCICIOS:

Polinomios:

20
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Coeficientes del polinomio completo y ordenado decrecientemente:


𝑃 𝑥 = 𝑥3 + 2 𝑥2 + 3 x + 4
>>A=[1 2 3 4]

Comandos:

roots: nos da las raíces

>>raíces = roots(A)

poly: nos da los coeficientes del polinomio que originan esas raíces.

>>poly (raíces)

>>r=[1 1+j 1-j 2];

>>poly(r)

1 -5 10 -10 4 (𝑥 4 − 5 𝑥 3 + 10 𝑥 2 − 10 𝑥 + 4 = 0)

conv: nos da el product de polinomios

>>pp=[1 2 3 4 ];

>>qq=[1 0 0 2 3];

>>producto=conv(pp, qq)

deconv: nos da el cociente y el residuo de una división de polinomios

>>[co, re]=deconv(qq,pp)

co=

1 -2

re=

0 0 1 4 11

polyval: evalá el polinomio P(x) en un valor xo, es decir P(xo)

>>A=[1 2 3 4];

>>p=polyval(A,[1 2 3 ])

pl =

26

polyder: nos da los coeficientes de la derivada del polinomio

>>D=polyder(A)

21
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

FUNCIÓN input

>>n = input(„teclee el numero de ecuaciones‟);

>>nombre=input(„¿Cómo te llamas?‟, „s‟)

(en este caso, la respuesta se lee y se devuelve sin evaluar, con lo que se almacena en la
cadena nombre).

FUNCION disp: Siempre imprime en pantalla un mensaje de texto o el valor de una


matriz, pero sin imprimir su nombre

>>disp(„EL programa ha terminado‟)

>>A=rand(4)

>>disp(A)

FUNCIONES

Definición: function [lista de valores de retorno]=name (lista de argumentos)

Ejm: Se creará una función que evalúe el numerador, denominador y la división de:

𝑥 𝑦 + 𝑠𝑒𝑛 𝑥 ∗𝑦 − 𝑥
P(x,y)= 𝑥 2+ 𝑦 3

function[num, den, c]=division(x,y)

num=x.^y + sin(x.*y) – x;

den=x.^2 + y.^3;

c=num./den;

Guardar el archivo como division. m y lo ejecutamos

GUIA DE CLASE 2:

22
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Recuerde: Los paréntesis cuadrados “[” y “]” son empleados para matrices, mientras que los
paréntesis “(” y “)” se emplean para funciones. El carácter coma “,” para separar elementos
[1,2,3,4] y el punto y como “;” para separar filas en las matrices. [ 1 2; 3 4]. El carácter dos
puntos “:” indica números consecutivos entre dos valores, [2:5] es equivalente a [2 3 4 5].

Gráficas de funciones

MATLAB tiene un gran potencial de herramientas gráficas. Se pueden dibujar los valores de
un vector frente a otro (de la misma longitud):

>>x=pi*(-1:0.1:1);

>>y=x.*sin(x);

>>plot(x,y) % Por defecto une los puntos (x(i),y(i)) mediante una poligonal.

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
-4 -3 -2 -1 0 1 2 3 4

Como se ve, con pocos puntos la gráfica tiene un aspecto demasiado lineal a trozos. Para
"engañar" al ojo, basta tomar más puntos.

>>x=pi*(-1:0.01:1);

>>y=x.*sin(x);

>>plot(x,y)

23
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
-4 -3 -2 -1 0 1 2 3 4

>>hold on % Mantiene en la ventana gráfica los dibujos anteriores

>>plot(x,cos(x)) % Dibuja sobre la gráfica anterior la función cos(x)

1.5

0.5

-0.5

-1
-4 -3 -2 -1 0 1 2 3 4

>>hold off % Con esto olvida los dibujos anteriores % y dibuja en una ventana nueva El
mismo gráfico de la figura superior puede obtenerse con una única orden, dibujándose cada
curva de un color distinto:
24
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

>>plot(x,cos(x),x,y)

1.5

0.5

-0.5

-1
-4 -3 -2 -1 0 1 2 3 4

Además se puede especificar el color de cada curva, el tipo de línea y el marcador, según la
tabla:

Otros comandos muy útiles a la hora de realizar gráficas son:

title: le ponemos un título a la gráfica

xlabel: le ponemos una etiqueta al eje x

ylabel: le ponemos una etiqueta al eje y

legend: incluimos una legenda en la gráfica

25
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Por ejemplo

>> plot(x,cos(x),'ro-',x,y,'bp:')

1.5

0.5

-0.5

-1
-4 -3 -2 -1 0 1 2 3 4

>> xlabel('tiempo')

>> ylabel('valor')

>> legend('coseno','y')

>> title('grafico de ejemplo')

26
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

grafico de ejemplo
2
coseno
y
1.5

1
valor

0.5

-0.5

-1
-4 -3 -2 -1 0 1 2 3 4
tiempo

También se pueden realizar gráficas logarítmicas con las instrucciones: semilogx (eje x
logarítmico), semilogy (eje x logarítmico) y loglog (ejes x e y logarítmicos). Además de
gráficas en 3D con las instrucciones: mesh, surf, plot3...

Ejercicio:

Representar simultáneamente dos funciones sinusoidales de frecuencia 50 Hz desfasadas 90 º (π/2


rad) de amplitud 10 y 20, respectivamente. Siendo la primera de ellas en color verde a puntos y la
segunda en azul continua y con asteriscos. Incorporar además: nombre eje x: “tiempo” nombre eje y:
“señal” título gráfica: “onda seno” legenda: “onda1” y “onda 2”

y  A sin  kx   
Función sinusoidal:

A: amplitud, k: factor multiplicativo del argumento, que se denomina pulsación  en el caso de que la
variable sea independiente del tiempo;  el desfasaje

>>y = 10*sin(x +pi/2);

>> plot(x,y)

>> hold on

>> y = 20*sin(x +pi/2);

>> plot(x,y)

27
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

>>xlabel('tiempo');ylabel('señal'); title('onda seno'); legend('onda1','onda2');

onda seno
20
onda1
15 onda2

10

5
señal

-5

-10

-15

-20
-4 -3 -2 -1 0 1 2 3 4
tiempo

POLINOMIOS Y ECUACIONES

Para resolver un polinomio, se formula el vector de los coeficientes del mismo, en forma
completa y ordenado decrecientemente, siendo el objetivo aquí es la determinación de las
raíces.

Ejemplo:

𝑃 𝑥 = 𝑥 4 + 2𝑥 2 + 3𝑥 + 4

>>A=[1 2 3 4]

A=

1 2 3 4

RAICES: se emplea el comando roots que al digitarlo en la ventana de comando nos da las
raíces del polinomio.

>> raices=roots(A)

raices =

-1.6506

28
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

-0.1747 + 1.5469i

-0.1747 - 1.5469i

poly: da los coeficientes del polinomio que origina esas raíces.

>> poly(raices)

ans =

1.0000 2.0000 3.0000 4.0000

>> r=[1 1+j 1-j 2];

>> poly(r)

ans =

1 -5 10 -10 4

Producto de polinomios: conocidos los polinomios, ´se pueden multiplicar utilizando el


comando conv:

>> pp=[1 2 3 4];

>> qq=[1 0 0 2 3];

>> producto=conv(pp,qq)

producto =

1 2 3 6 7 12 17 12

El Cociente y Residuo de una división de polinomios: se obtiene empleando el comando


deconv:

>> [co,re]=deconv(qq,pp)

co =

1 -2

re =

0 0 1 4 11

Polyval: evalúa un polinomioP(x) en un valor xo, es decir P(xo)

>> A=[1 2 3 4];

>> p=polyval(A,2)

29
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

p=

26

>> p1=polyval(A,[1 2 3])

p1 =

10 26 58

Polyder: nos da los coeficientes de la derivada del polinomio

>> D=polyder(A)

D=

3 4 3

FUNCION INPUT

Permite imprimir un mensaje en la línea de comandos de MatLab y recuperar como valor de


retorno un valor numérico o el resultado de una expresión tecleada por el usuario. Después de
imprimir el mensaje, el programa espera que el usuario teclee el valor numérico o la
expresión. El usuario puede teclear un vector o una matriz. En cualquier caso, la expresión
introducida es evaluada cono los valores actuales de las variables de MATLAB y el resultado
se devuelve como valor de retorno.

>> n=input('Teclee el numero de ecuaciones')

Teclee el numero de ecuaciones 4

n=

Otra forma: obsérvese el parámetro „s‟:

>> nombre=input('¿Cómo te llamas?', 's')

¿Cómo te llamas? José

nombre =

José

En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se
almacena en la cadena nombre. Así, pues, en este caso, si se teclear una fórmula, se almacena
como texto sin evaluarse.

FUNCION DISP
30
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sim imprimir
su nombre. En realidad, disp. Siempre imprime vectores y/o matrices: las cadenas de
caracteres son un caso particular de vectores.

>> disp('El programa ha terminado')

El programa ha terminado

>> A=rand(4)

A=

0.9501 0.8913 0.8214 0.9218


0.2311 0.7621 0.4447 0.7382
0.6068 0.4565 0.6154 0.1763
0.4860 0.0185 0.7919 0.4057

>> disp(A)

0.9501 0.8913 0.8214 0.9218


0.2311 0.7621 0.4447 0.7382
0.6068 0.4565 0.6154 0.1763
0.4860 0.0185 0.7919 0.4057

Programación con MATLAB

Para escribir un programa o fichero de comandos con MATLAB habrá que crear un fichero
que tenga extensión .m y contenga las instrucciones. Esto se puede hacer con cualquier editor
de textos, pero tiene algunas ventajas usar el editor propio de MATLAB llamándolo desde la
barra de herramientas con los menús FILE > NEW > M-FILE. Una vez estamos en el editor
de funciones se puede ejecutar el código escrito con el menú DEBUG>RUN o pulsando la
tecla F5, o bien escribiendo en el Command Windows el nombre de la función.

MATLAB trabaja con memoria dinámica, por lo que no es necesario declarar las variables
que se van a usar. Por esta misma razón, habrá que tener especial cuidado y cerciorarse de que
entre las variables del espacio de trabajo no hay ninguna que se llame igual que las de nuestro
programa (proveniente, por ejemplo, de un programa previamente ejecutado en la misma
sesión), porque esto podría provocar conflictos.

FICHEROS *.m

Los ficheros con extensión (.m) son ficheros de texto sin formato (ficheros ASCII) que
constituye el centro de la programación en MATLAB. Existen dos tipos de ficheros *.m, los
ficheros de comandos (llamados scripts en inglés) y las funciones. Los primeros contienen
simplemente un conjunto de comandos que se ejecutan sucesivamente cuando se teclea el
nombre del fichero en la línea de comandos de MATLAB.
31
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Las funciones permiten definir funciones enteramente análogas a las de MATLAB, con su
nombre, sus argumentos y sus valores de retorno. Los ficheros *.m que definen funciones que
permiten extender las posibilidades de MatLab: de hecho existen bibliotecas de ficheros *.m
que se venden (toolkits) o se distribuyen gratuitamente ( a través de internet). Las funciones
definidas en ficheros *.m se caracterizan por que la primera línea (que no sea comentario)
comienza por la palabra función, seguida por los valores de retorno (entre corchetes [ ] y
separados por comas, si hay más de uno), el signo igual ( = ) y el nombre de la función,
seguido de los argumentos (entre paréntesis y separados por comas).

DEFINICION DE FUNCIONES:

La primera línea de un fichero llamado name.m que define una función tiene la forma:

function [lista de valores de retorno] = name (lista de argumentos)

donde name es el nombre de la función. Entre corchetes y separados por comas van los
valores de retorno (siempre que haya más de uno) y entre paréntesis también separados por
comas los argumentos. Recuerde que los argumentos son los datos de la función y los valores
de retorno sus resultados. Si no hay valores de retorno se omiten los corchetes y el signo igual
( = ); si solo hay un valor de retorno no hace falta poner corchetes. Tampoco hace falta poner
paréntesis si hay argumentos.

Ejemplo: Se creará una función que nos evalúe el numerador, denominador y la división de:

𝑥 𝑦 + 𝑠𝑒𝑛 𝑥 ∗ 𝑦 − 𝑥
𝑃 𝑥, 𝑦 =
𝑥2 + 𝑦3

Observamos que depende de 2 entradas x e y , además tiene tres salidas: num, den y la
división num/den.

>> [a,b,c]=division(2,3)

a=

5.7206

b=

31

c=

0.1845

Ejemplo: Crear una función de Newton („fnewton‟) que resuelva una ecuación no – lineal de
una sola variable, abriendo una ventana de programación y teclear el siguiente contenido:

% Función que resuelve Ecuaciones No - Lineales de una sola variable

32
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

% empleando el método de Newton - Raphson


% _________________________________________________________________
%
% [xn]=fnewton(f,xo,to1)
% xn es el valor que satisface la ec. no - lineal (respuesta)
% f es el nombre de la función donde se guardó la ecuación a resolver
% xo es un valor inicial
% to1 es el error menor a cuanto por ejemplo 0.000001
function [xn]=fnewton(f,xo,to1)
x=xo;
h=0.0001;
error=1000;
while (error>to1)
y=feval(f,x);
f_deriv=(feval(f,x+h)-feval(f,x))/h;
xn=x-(y/f_deriv);
error=abs(xn-x);
x=xn;
end

Para correr la función („fnewton‟) necesitamos abrir uan ventana de programa y creamos una
función donde guardaremos la ecuación a resolver, por ejemplo x=cos(x), y se guarda con el
nombre „calcular‟:

function y=calcular(x)

y=x-cos(x);

Y, desde el command window ejecutamos:

>> x=fnewton('calcular',0,0.00001)

x=

0.7391

Un programa escrito en MATLAB admite la mayoría de las estructuras de programación al


uso y su sintaxis es bastante estándar. En los siguientes apartados se muestra la sintaxis de
algunas de estas estructuras (if, for, while,...).

La condiciones “if” y “switch”

IF

33
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Una de las operaciones más habituales en programación es la ejecución de unos determinados


comandos si se cumple una determinada condición lógica, es lo que se conoce como
bifurcaciones. Para ello se emplea la orden “if...end” de la siguiente forma:

if condición

comandos

end

Si la bifurcación es múltiple entonces podemos combinar con los comandos else y elseif

If condicion
comandos
elseif condicion
comandos
elseif condicion
comandos
else
comandos
end
Por ejemplo, crear el fichero “prueba_condicion.m” y ejecutar el siguiente código:

A = 1; B = 2;
if A + B == 3
disp('el resultado es 3')
elseif A+B > 5
disp('el resultado es mayor que 5 ')
else
disp('el resultado ni es 3 ni mayor que 5 ')
end
(la orden “disp” se utiliza para visualizar texto en la orden de comandos)

Para ejecutar la función realizada se pulsa F5 se estamos en el editor de funciones, o se


escribe su nombre en la Command Window:

>>prueba_condicion

el resultado es 3

También se puede llamar la función recién descrita desde otra función sin más que escribir su
nombre.

SWITCH

La sentencia switch realiza una función análoga a un conjunto de if...elseif concatenados. Su


forma general es la siguiente:
34
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

switch expresion
case case_expr1
comandos
case case_expr2
comandos
...
otherwise % opción por defecto
comandos
end
Por ejemplo si queremos realizar acciones distintas en función del valor de una variable entera
podemos escribir:

A = 1; B = 2;
switch A + B
case 3
disp('el resultado es 3')
case 5
disp('el resultado es 5 ')
otherwise
disp('el resultado ni es tres ni cinco')
end
Los bucles for y while

FOR...END

Cuando queremos ejecutar un conjunto de comandos un número predeterminado de veces


utilizamos la función “for...end”, cuya forma general es:

for contador = [vector de valores]


comandos
end
A modo de ejemplo si queremos sumar los cuadrados de los números enteros impares del 1 al
11 podemos escribir:

suma = 0
for k = 1:2:11
suma = suma + k^2;
end
suma
Aunque produciría el mismo resultado la instrucción:

>> suma = sum([1:2:11].^2)

Ejercicio:

35
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Crear un fichero llamado “primos.m” (FILE>NEW>M-FILE) para calcular la suma de los


100 primeros términos de la sucesión 1, 2x, 3x2, 4x3, ...

WHILE...END

A diferencia del comando for, el comando while se utiliza cuando el número de veces que se
ejecuta un determinado conjunto de sentencias depende de una determinada condición lógica.
Su utilización genérica es la que sigue:

while condicion
comandos
end
Por ejemplo si queremos sumar el cuadrado de números pares mientras no se supere un
determinado valor, por ejemplo, 500, entonces:

suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
end
suma
Una instrucción muy útil es el comando “break” que se utiliza para salir de un bucle. Por
ejemplo, si desea salir del bucle en el caso de que alguna suma parcial sea exactamente igual a
100, entonces:

suma = 0; num = 2;
while suma < 500
suma = suma + num^2;
num = num + 2;
if suma == 100
break
end
end
suma

Ejercicio:

Dada la función y = e-x calcular el valor x que haga que se cumpla la igualdad x = e-x con un
error de 10-6. Tomar como valor inicial 0.5. Poner una condición que limite a 10 el número
de iteraciones para llegar a la solución (utilizar break). Además, probar el programa realizado
suponiendo como condición inicial x=10.
36
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Ejercicio:

Se desea programar una función que calcule, mediante el algoritmo de Euclides, el máximo
común divisor de dos números naturales, basta escribir un fichero euclides.m cuyo contenido
sea:

function m=euclides(a,b)
% Cálculo del máximo común divisor de dos números naturales
% mediante el algoritmo de Euclides
if a<b
c=b;
b=a;
a=c;
end
while b>0
c=rem(a,b);
a=b;
b=c;
end
m=a;
Si, una vez escrito el fichero anterior, en el espacio de trabajo o en un programa se escribe la
instrucción

mcd=euclides(33,121)

en la variable mcd se almacenará el valor 11.

Las variables de una función son siempre locales. Por tanto, aunque en el seno de la función
se modifiquen los argumentos de entrada, el valor de las variables correspondientes queda
inalterado.

Por ejemplo, en la función euclides.m se modifica el valor de los argumentos de entrada, pero,
sin embargo:

>>x=15;

>>mcd=euclides(x,3);

>>x

x=

15

Si se pretende que las modificaciones de un argumento de entrada afecten a la variable


correspondiente, deberá situarse dicho argumento, además, en la lista de argumentos de
salida.
37
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Ejercicio:

Crear una función llamada “miexp” que dado un valor de x devuelva como los dos resultados
de las ecuaciones:

𝑌1 = 𝑥 + 𝑒 −𝑥

𝑌2 = 𝑒 −𝑥

Utilizar dicha función para resolver la ecuación no lineal 𝑥 = 𝑥 + 𝑒 − 𝑥 mediante Newton-


Raphson con un error de 10− 6 limitando el número de iteraciones a 10.

GUIA DE CLASE N° 3:
GRAFICOS BI Y TRIDIMENSIONALES:

Para realizar gráficos 2 – D hay cuatro funciones básicas:

 PLOT( ): permite crear un gráfico a partir de vectores y/o columnas de matrices con
escalas lineales sobre ambos ejes (x e y).
 Loglog( ): igual que el anterior, pero con escala logarítmica.
 Semilogx( ): igual que el primero con escala lineal en el eje de las ordenadas y
logarítmica en el eje de las abscisas.
 Semilogy( ): igual que el primero con escala lineal en el eje de las abscisas y
logarítmica en el eje de las ordenadas.

Se toma como referencia la primera y las demás, como consecuencia.

Para agregar títulos, nombres a cada eje, cuadrículas, textos, etc., existen otras funciones:

 title (‘Gráfica P vs T’)  añade un título al gráfico

 xlabel(‘Temp(°C)’)  añade etiqueta al eje x (con xlabel off desaparece).

 ylabel(Presión(KPa)’)  añade etiqueta al eje y (con ylabel off desaparece).

 text (x,y,’texto’)  introduce „texto‟ en el lugar especificado por las coordenadas


x e y Si x e y son vectores, el texto se repite pro cada par de
elementos. Si el texto es también un vector d cadenas de texto
de la misma dimensión, cada elemento se escribe en las
coordenadas correspondientes.

 gtext(„texto‟)  introduce texto con ayuda del ratón: el cursor cambia de


forma y se espera un clic para introducir el texto en esa
posición.

 legend ( )  define rótulos para las distintas líneas o ejes usados en la


figura.

38
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

 grid on  activa la inclusión de una cuadrícula en el dibujo. Con grid


off desaparece la cuadrícula.

Ejemplo: Realizar una gráfica de un coseno multiplicado por una función exponencial
Recordar dar espaciamiento entre puntos pequeños (0.01 o 0.00 son suficientes) y que los
productos o divisiones se tienen que hacer elemento a elementos (.* ./ ).
>> x= -5: 0.01:5;
>> y= cos(x).*exp(-0.05* x);
>>h=figure(1);
>>plot(x,y,‟r‟); % grafica x vs y de color rojo.
>>xlabel(„Eje X‟); %etiqueta del eje x
>>yalbel(„Eje Y‟); % etiqueta del eje y
>>title(„COSENO EXPONENCIAL‟); % título
>>text(1.5, 0.75,‟cos(x)*exp(-0,05 * x)‟); % texto en la posición x,y,
>>grid on; % rejilla
>>legend(„Coseno Exponencial‟); %rótulo
>>figure (gcf); % para que la figura pase a primer plano.

COSENO EXPONENCIAL
1.5
Coseno Exponencial

cos(x)*exp(-0,05 * x)

0.5
Eje Y

-0.5

-1

-1.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
Eje X

COMANDOS hold on y hold off:

Se usan en las gráficas para ciertas condiciones. El primero de ellos hace que los gráficos
sucesivos respeten los ya dibujados en la figura.

Es posible que haya modificación en la escala de los ejes.

El comando hold off deshace el efecto de hold on

39
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

GUIA DE CLASE N° 4:
SISTEMAS DE ECUACIONES Y FUNCIONES
TRIDIMENSIONALES.
Interpretación Gráfica:
Una ecuación lineal con dos variables, como 2x – y =3, define una recta (y=mx+b). Se puede
escribir como y=2x -3. Si hay dos ecuaciones, estas pueden ser lineales y cruzarse o no. Si
una ecuación tiene tres variables, x, y, z, representan un plano en un espacio tridimensional.
Si hay dos ecuaciones con tres variables, pueden representar dos planos que se cruzan o no,
etc..

Hiperplano: es el conjunto de puntos definido por una ecuación con más de tres variables. Y
en general, un conjunto de M ecuaciones lineales con N incógnitas, donde cada ecuación
define un hiperplano único que no es idéntico a ninguno otro del sistema. Si M<N, el sistema
está subespecificado y no existe una solución única. Si M=N, existirá una solución única si
ningún par de ecuaciones representa hiperplanos paralelos. Si M>N, el sistema está sobre
especificado y no existe solución única. El conjunto de ecuaciones también se denomina
sistema de ecuaciones. Un sistema de ecuaciones con una solución única es no singular, y
uno que no tiene solución única se llama singular.

Ejemplo:

Para el sistema: x+y=2; 2x –y = 1; x + 2y = 3;

M=3>N=2, de modo que la única solución es x =1, y=1. Si M>N el sistema puede no tener
solución, tener solución única o infinidad de soluciones.

Ejercicio: considere el siguiente sistema de tres ecuaciones con tres incógnitas:

3x + 2y – z =10

x + 3y + 2 z = 5

x - y - z = -1

Utilizando matrices, se puede escribir:

3 2 −1 𝑥 10
𝐴= −1 3 2 ; 𝑋= 𝑦 ; 𝐵= 5
1 −1 −1 𝑧 −1
La forma matricial:

40
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

AX = B

Se puede multiplicar y se obtiene el sistema original

Pero, si se tiene más de tres variables, la notación se puede hacer torpe, x1, x2, x3, etc. El
conjunto de ecuaciones se representa como vectores fila B y X:

Ejemplo:

3 𝑥1 + 2 𝑥2 − 𝑥3 = 10

− 𝑥1 + 3 𝑥2 + 2 𝑥3 = 5

𝑥1 − 𝑥2 − 𝑥3 = −1

3 −1 1
X=[ x1 x2 x3] 𝐴= 2 3 −1 B=[ 10 5 -1]t
−1 2 −1

PROGRAMACION BASICA:

Limitaciones computacionales. Opciones de exhibición. Exactitud y


precisión.

Administración de archivos. Ficheros M-Files. Errores y


depuración. Rutas de búsqueda y arranque en Matlab.

• Ejemplos prácticos (visión general)

Reacción de primer orden

Raíz de una función usando un m-file y fzero

Usando fzero desde el Command Window

Solución de sistemas de ecuaciones lineales

Integración numérica y simbólica

Ecuaciones diferenciales de primer y segundo orden

Sistemas de ecuaciones diferenciales ordinarias

41
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Reacciones múltiples

CLASE N° 5:

APLICACIONES DE MATLAB A LA RESOLUCIÓN DE PROBLEMAS


DE INGENIERÍA
TRADUCIR CON GOOGLE. DE RUMANO A ESPAÑOL
Resolver:
"En cálculos de Ingeniería, el calor específico de una solución de NaOH (expresado en [J /(kg * K)]), la
Cp, de la solución se calcula a un valor aproximado:
Cp, sol= 4190 • (1 − xNaOH) + Cp, NaOH • xNaOH
donde Cp, NaOH representa el calor específico del hidróxido de sodio anhidro y xNaOH es la fracción de la
masa del hidróxido en solución. El error respecto al verdadero valor de soluto concentrado local es válido
para una concentración (xNaOH > 0.2). La solución inorgánica diluida en (xNaOH 6-0, 2) se toma
mediante la relación:
Cp, sol = 4190 • (1 − xNaOH)
El Calor específico del hidróxido de sodio anhidro (expresada en [J /(kg * K)]) como trabajo, es decir
temperatura, se calcula con la relación:
CpNAOH = 0,1835 + 3.125 T + 0,347 T2
La función en MATLAB que puede calcular el calor específico del NaOH es:

function cp = cpSuelo(x, T)
% función para calcular el calor específico de una solución de NaOH
%%
Modo de aplicarse:
% CP = CPSOL(X,T)
% donde: CP – calor específico de un soluto, [J/(kg.K)]
% X - fracción masica del NaOH en la solución
% T - temperatura, [K]
if x<=0.2
cpSol = 4190*(1 - x);
else
cpNaOH = 0.1835 + 3.125*T + 0.347/T.^2;
cp = 4190*(1 - x) + cpNaOH*x;
end
% end function cpSol
Para calcular el calor específico de una solución de Na OH a una fracción másica de 0,25, la
temperatura de 50°C =323,15°K,el comando necesario es:
>> cpSol(0.25,323.15)
ans =
3.3950e+003

Densidad de una mezcla de gases:


Ejercicio:
Se desea escribir una función en MatLab para determinar la densidad de una mezcla de gases (CO 2, H2 y
CO). Utilice una función que determine la densidad de la mezcla expresada en porcentajes molares: 25%
de CO2, 60% de H2, y 15% de CO, a la temperatura de 150°C y una presión de 20 bar

Solución:
La densidad de una mezcla de gases reales, mez, se calculas mediante la expresión: mez = Mmez P Zmez RT
Donde:
Mmez representa la masa molecular de la mezcla, Zmez es el coeficiente de compresibilidad de la mezcla, T es la
temperatura en [°K] y R es la constante universal de los gases igual a 8,3143 [J/(mol·K)].
La Masa molecular de la mezcla se calcula por la expresión:
Mmez = 𝑛𝑗=1 𝑀𝑖 𝑋𝑖 y los coeficienes de comprensibilidad mediante la relación:
42
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Zam = 𝑛𝑖=1 𝑍𝑖 𝑋𝑖
Para el caso en que la mezcla se compone de n componentes la relación de representación de una maza
molecular con el coeficiente de compresibilidad Zi, y xi representa una fracción molar de cada componente en la
mezcla tomada.
Los datos necesarios para los calculos son presentados en una tabla:.
Tabla. Datos de los componentes de la mezcla de gases
Componente Masa Coeficiente
Molecular de compresibilidad
CO2 44,010 0,274
H2 2,016 0,303
CO 28,010 0,295
La función en MATLAB está diseñada para medir los tres argumentos siendo el primero un vector de tres
componentes para determinar el contenido de CO2, H2 ¸y CO en fracciones molares, y la temperatura en °K, la
presión, en bar, aplicada a la mezcla de gases.
Tenemos la siguiente función en MATLAB:
function ro = densMez(x,T,P)
%Función para calcular la densidad de una mezcla de CO2 H2 y CO
%%
Modo de aplicarse:
% RO = DENSMEZ(X,T,P)
% donde: RO – densidad de mezcla, [kg/mc]
% X - composición en fracción másica en orden CO2 H2 CO
% T - temperatura, [K]
% P - presión, [bar]
R = 8.3143; % const.univ. de los gases, [J/(mol.K)]
% masa molecular
% CO2 H2 CO
M = [44.01 2.016 28.01];
% coeficiente de compresibilidad
% CO2 H2 CO
z = [0.274 0.303 0.295];
Zmez = sum(x.*z);
Mmez = sum(M./x);
ro = Mmez.*P./(Zmez.*T.*R);
% end function densMez
Llamando a la función con nuestros datos:
>> densMez([0.25 0.6 0.15],423,20)
ans =
7.0688

Calcular el grosor de un cilindro


Un recipiente cilíndrico es utilizado para almacenar un líquido corrosivo de una densidad media de 1.200 kg/m3.
El vaso ha sido construido para trabajar con una presión máxima de 8 bar ¸y una temperatura de 60°C con un
diámetro de 1.100 mm ¸y una altura de 2.100 mm, con fondo y tapa plana. Construir un programa en MATLAB
para calcular el grosor del cilindro
Solución:
El grosor de la pared de un tanque en mm se calcula de la relación:
_p = + cex + cr
donde _0 es el espesor de la resistencia de la pared¸˘el elemento, cex está agregado para Llevar a Condit¸
establecido operativo y cr representan el redondeo aplicado ˘ ˘ para llevar el valor de espesor diseñar un espesor
normalizado ˘ un Espesor resistente ¸ ˘ un _0 en [mm] para un elemento cilíndrico se da un tiempo relativamente
¸ ˘ tomar:
_0 = pc · D
2 ' _ta
− pc
(10.10)
unde: pc este presiunea de calcul a recipientului ˆın [MPa], D este diametrul recipientului
ˆın [mm], _ta
43
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

este rezistent¸a admisibil˘a a materialului de construct¸ie al vasului


la temperatura de calcul exprimat˘a ˆın [MPa] iar ' este coeficientul de rezistent¸˘a al
ˆımbin˘arilor sudate.
Adaosul pentru condit¸iile de exploatare, cex ˆın [mm] este grosimea suplimentar˘a
care se adaug˘a la grosimea de rezistent¸˘a a peretelui vasului ce este susceptibil de a se
subt¸ia datorit˘a coroziunii/eroziunii ˆın a¸sa fel ˆıncˆat s˘a asigure funct¸ionarea sigur˘a pe
durata de funct¸ionare a vasului. Acest adaos este dat de relat¸ia:
cex = (vce + vci + ve) · _ (10.11)
unde: vce este viteza de coroziune pe fat¸a exterioar˘a a vasului ˆın [mm/an], vci este
viteza de coroziune pe fat¸a interioar˘a a vasului, ˆın [mm/an], ve este viteza de eroziune
ˆın [mm/an] iar _ reprezint˘a durata de funct¸ionare a aparatului exprimat˘a ˆın [ani].
Ultima component˘a a calculului grosimii de proiectare este rotunjirea cr, care t¸ine
seama de valoarea grosimii standardizate imediat superioare sumei _0+cex a tablei din
care se confect¸ioneaz˘a vasul ¸si de abaterea negativ˘a la grosime, cab, care se stabile¸ste
din standarde funct¸ie de grosimea standardizat˘a.

Calcul de rezistent¸˘a prezentat este valabil doar pentru vase cu peret¸i subt¸iri,
condit¸ia care se cere a fi ˆındeplinit˘a pentru aceasta fiind:
__
0D
6 0,1 (10.12)
unde __
0 = _p − cex − cab este grosimea de rezistent¸˘a efectiv˘a.
Presiunea de calcul, pc este egal˘a cu presiunea maxim˘a admisibil˘a de lucru a
vasului, pm la care se adaug˘a presiunea hidrostatic˘a a coloanei de lichid din vas:
pc = pm + ph (10.13)
Presiunea hidrostatic˘a, ph reprezint˘a presiunea datorat˘a coloanei de lichid din
recipient ¸si se calculeaz˘a cu relat¸ia:
ph = 9,81 · 10−9 hl · _ (10.14)
unde hl reprezint˘a ˆın˘alt¸imea coloanei de lichid iar _ densitatea lichidului.
Presiunea de ˆıncercare hidraulic˘a a recipientului pph este dat˘a de relat¸ia:
pph = 1,25 · pm · _20
a
_ta
(10.15)
unde _20
a este rezistent¸a admisibil˘a a materialului de construct¸ie al vasului la temperatura
de 20°C.
Presiunea de ˆıncercare hidraulic˘a calculat˘a, pphc este dat˘a de relat¸ia:
pphc = pph + pha (10.16)
unde pha este presiunea hidrostatic˘a a lichidului de ˆıncercare care este apa.
Rezistent¸a admisibil˘a a materialului _20
a ¸si _ta
se calculeaz˘a prin relat¸iile:
_20
a = min
__20
c
1,5 ; _20
r
2,4
_
(10.17)
_ta
= min
_ _tc
1,5; _tr
2,4

44
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

_
(10.18)
unde: _c ¸si _r reprezint˘a limita de curgere respectiv rezistent¸a la rupere la tract¸iune
ˆın [MPa].
Rezistent¸a efectiv˘a a peretelui vasului la ˆıncercarea de presiune hidraulic˘a se calculeaz
˘a cu relat¸ia:
_ef = pphc(D + s_
0)
2 ' __
0
(10.19)
Verificarea vasului la presiune hidraulic˘a implic˘a respectarea condit¸iei:
_ef 6 0,9 _20
c (10.20)
Calculul de rezistent¸˘a al peretelui unui vas cilindric implic˘a parcurgerea urm˘atorului
algoritm:

1. se calculeaz˘a grosimea de rezistent¸˘a _0 cu relat¸ia 10.10;


2. se calculeaz˘a adaosul pentru condit¸iile de exploatare, cex cu relat¸ia 10.11;
3. se identific˘a valoare rotunjirii cr prin alegerea grosimii standardizate imediat
superioare valorii calculate _0 + cex;
4. se verific˘a dac˘a vasul este cu peret¸i subt¸iri conform condit¸iei 10.12. Dac˘a acest
lucru nu se verific˘a, algoritmul este abandonat;
5. se calculeaz˘a rezistent¸˘a efectiv˘a cu relat¸ia 10.19;
6. se verific˘a condit¸ia 10.20. Dac˘a aceast˘a condit¸ie se verific˘a grosimea de proiectare
a peretelui vasului, _p este corect˘a ¸si algoritmul furnizeaz˘a aceast˘a valoare.
Dac˘a condit¸ia nu de respect˘a se incrementeaz˘a cu 1 mm grosimea de rezistent¸˘a
efectiv˘a a vasului, __
0 ¸si se revine la pasul 2 al algoritmului.
Caracteristicile materialului de construct¸ie al vasului sunt ar˘atate ˆın tabelul 10.2.
Tabelul 10.2. Caracteristici OL42 (conform SR EN 10207/95).
Caracteristici Valoare
_20
c , [MPa] 260
_tc
, [MPa]
la 100°C 225
la 150°C 216
la 200°C 206
la 250°C 186
_20
r , [MPa] 410
_tr
, [MPa]
la 100°C 395
la 150°C 380
la 200°C 360
la 250°C 300
grosime tabl˘a, [mm] 4, 5 (abatere la grosime: − 0,5 mm)
6, 7 (abatere la grosime: − 0,6 mm)
8, 9, 10, 12, 14, 15, 16, 18, 20, 22, 25
(abatere la grosime: −0,8 mm)
28, 30 (abatere la grosime: − 0,9 mm)
32, 35, 38, 40 (abatere la grosime: − 1,0 mm)
Utilizˆand toate aceste informat¸ii, se scrie urm˘atorul program MATLAB:
%Program de calcul al grosimii de proiectare
% pentru un vas cilindric vertical

45
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

clear all;clc
false = 0;
true = 1;
p_m = 0.8; % presiunea maxima admisibila, [MPa]
D = 1100; % diametrul vasului, [mm]
H = 2100; % inaltimea vasului, [mm]
t = 60; % temperatura maxima de lucru, [grd.C]
ro = 1200; % densitatea lichid stocat, [kg/mc]
an = 10; % durata de exploatare, [ani]
v_ex = 0.1; % viteza procesului de coroziune externa, [mm/an]
v_in = 0; % viteza procesului de coroziune interna, [mm/an]
v_e = 0.01; % viteza procesului de eroziune, [mm/an]
fi = 0.9; % coef. suduri
ro_apa = 1000; % densitate lichid de incercare, [kg/mc]
% caracteristici material
sig_c_20 = 260;
sig_r_20 = 410;
t_date = [100 150 200 250];
sig_c = [225 216 206 186];
sig_r = [395 380 360 300];
% grosime si abatere standard a tablei
ds = [4 5 6 7 8 9 10 12 14 15 16 ...
18 20 22 25 28 30 32 35 38 40];
ab = -[0.5 0.5 0.6 0.6 0.8 0.8 0.8 0.8 0.8 0.8 0.8 ...
0.8 0.8 0.8 0.8 0.9 0.9 1 1 1 1];
% calcul rezistenta material
sig_a_20 = min([sig_c_20/1.5 sig_r_20/2.4]);
sig_c_t = interp1([20 t_date],[sig_c_20 sig_c],t);
sig_r_t = interp1([20 t_date],[sig_r_20 sig_r],t);
sig_a_t = min([sig_c_t/1.5 sig_r_t/2.4]);
% presiunea hidrostatica, [MPa]
p_h = 9.81e-8*H*ro;
% presiunea de calcul, [MPa]
p_c = p_m + p_h;
% grosimea de rezistenta, [mm]
d0 = p_c*D / (2*fi*sig_a_t - p_c);

% adaos de exploatare, [mm]


c_ex = (v_ex + v_in + v_e)*an;
% grosimea de rezistenta calculata, [mm]
d0c = d0 + c_ex;
test = false;
while ~test
% grosimea standardizata, [mm]
i = 1;
while (d0c-ab(i))>ds(i)
i = i + 1;
end
c_r = ds(i) - (d0 + c_ex - ab(i));
d_p = d0 + c_ex + c_r - ab(i);
% presiunea de incercare hidraulica, [MPa]
p_ph = 1.25*p_m*sig_a_20/sig_a_t;
% presiunea hidrostatica apa, [MPa]
p_ha = 9.81e-8*H*ro_apa;
% presiunea de incercare hidraulica calculata, [MPa]
p_phc = p_ph + p_ha;
if (d0c/D)>0.1
error(’Vasul este cu pereti grosi!!!’);
end

46
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

sig_ef = p_phc*(D + d0c)/(2*fi*d0c);


test = sig_ef<=(0.9*sig_c_t);
if ~test d0c = d0c + 1; end
end;
% raport
disp(’ Calculul grosimii de proiectare’);
disp(’ =========================================’);
disp(sprintf(’ diametrul, [mm] %4d’,D));
disp(sprintf(’ inaltimea, [mm] %4d’,H));
disp(sprintf(’ presiunea, [MPa] %5.1f’,p_m));
disp(sprintf(’ temperatura, [grd.C] %3d’,t));
disp(’ -----------------------------------------’);
disp(sprintf(’ rezistenta mat. 20C, [MPa] %5.1f’,sig_a_20));

disp(sprintf(’ rezistenta mat.%3dC, [MPa] %5.1f’,t,sig_a_t));


disp(’ -----------------------------------------’);
disp(sprintf(’ presiunea de calcul, [MPa] %7.3f’,p_c));
disp(sprintf(’ pres.de incercare hidr., [MPa] %7.3f’,p_phc));
disp(’ -----------------------------------------’);
disp(sprintf(’ grosimea de proiectare, [mm] %2d’,d_p));
disp(’ =========================================’);
% end script
Dup˘a rularea programului obt¸inem urm˘atorul raport:
Calculul grosimii de proiectare
=========================================
diametrul, [mm] 1100
inaltimea, [mm] 2100
presiunea, [MPa] 0.8
temperatura, [grd.C] 60
-----------------------------------------
rezistenta mat. 20C, [MPa] 170.8
rezistenta mat. 60C, [MPa] 161.7
-----------------------------------------
presiunea de calcul, [MPa] 1.047
pres.de incercare hidr., [MPa] 1.263
-----------------------------------------
grosimea de proiectare, [mm] 6
=========================================
10.2.2. Calculul puterii necesare la antrenarea unui amestec˘ator
Exercit¸iul 10.5. Se cunosc urm˘atoarele informat¸ii despre un reactor prev˘azut
cu un sistem de amestecare cu elice:
• presiunea maxim˘a de lucru din vas: 0,8 MPa;
• densitatea mediului de lucru: 1.200 kg/m3;
• vˆascozitatea dinamic˘a a mediului de lucru: 5,5 cP;
• diametrul elicei: 0,4 m;
• turat¸ia: 300 min −1;
• diametrul arborelui: 60 mm;
• l˘at¸imea unui inel de etan¸sare: 20 mm.
S˘a se scrie un program MATLAB pentru calculul puterii electromotorului
de act¸ionare al sistemului de amestecare.
Rezolvare: Puterea efectiv˘a de act¸ionare a unui amestec˘ator, N, se stabile¸ste funct¸ie
de mai multe elemente: puterea necesar˘a amestec˘arii, Nam, care exprim˘a puterea efectiv
˘a transmis˘a mediului de lucru, puterea pierdut˘a prin frecare ˆın cutia de etan¸sare,

Nf ¸si puterea pierdut˘a ˆın vas datorit˘a amenaj˘arilor interioare (teac˘a de m˘asurare a
temperaturii, serpentin˘a, sp˘arg˘ator de vˆartej, rugozitatea peret¸ilor, ¸s.a.m.d.). Relat¸ia
de calcul utilizat˘a este [20]:

47
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

N=k
_t
·
h
Nam
_
1+
X
'i
_
+ Nf
i
(10.21)
unde: k reprezint˘a coeficientul de majorare a puterii care t¸ine seama de suprasarcinile
care apar la pornire, umplere sau alimentare, _t este randamentul total al sistemului
de act¸ionare iar 'i reprezint˘a factori de majorare datorate prezent¸ei unor amenaj˘ari
interioare. ˆIn cazul P'i = 0,4. nostru, valorile acestor coeficien¸ti sunt: k = 1,25, _t = 0,95 ¸si
Puterea necesar˘a amestec˘arii, ˆın [kW], pentru alte amestec˘atoare decˆat cele de
tipul impeller, se calculeaz˘a cu relat¸ia:
Nam = np
_n
60
_3
d5 · _ · 10−3 (10.22)
unde: np este num˘arul caracteristic de putere, n reprezint˘a turat¸ia amestec˘atorului
[min−1], d este diametrul amestec˘atorului, [m], iar _ este densitatea lichidului antrenat.
Num˘arul caracteristic de putere, np, se stabile¸ste funct¸ie de criteriul Reynolds
conform datelor prezentate ˆın tabelul 10.3. Valoarea criteriului Re se calculeaz˘a cu
expresia:
Re = 16,25 · n · d2 · _
_ (10.23)
unde _ reprezint˘a vˆascozitatea mediului de lucru, ˆın [cP].
Tabelul 10.3. Num˘arul caracteristic de
putere pentru amestec˘atoare cu elice.
Valoarea Num˘arul caracteristic
criteriului Re de putere, np
102 1
103 0,5
104 0,3
105 0,27
106 0,22
Puterea consumat˘a prin frecare ˆın cutia de etan¸sare a sistemului de amestecare,
Nf ˆın [kW], se calculeaz˘a cu relat¸ia:
Nf = 2,255 · 10−7 · d2
a · m · b · μ · pm · n (10.24)

unde: da este diametrul arborelui amestec˘atorului ˆın dreptul cutiei de etan¸sare, ˆın
[mm], m reprezint˘a num˘arul de inele de etan¸sare, b esteˆın˘alt¸imea unui inel de etan¸sare,
ˆın [mm], μ este coeficientul de frecare ¸si pm reprezint˘a presiunea maxim˘a admisibil˘a
de lucru ˆın vas, [MPa]. Valorile utilizate ˆın acest caz sunt: m = 4, b = 20 [mm] ¸si
μ = 0,075.
Puterea calculat˘a a electromotorului, conform relat¸iei 10.21, este folosit˘a pentru
alegerea puterii electromotorului dintr-o list˘a de puteri disponibile. Puterile electromotoarelor
disponibile pe piat¸˘a formeaz˘a urm˘atorul ¸sir de valori, ˆın [kW]: 0,8; 1,1;
1,5; 2,2; 3; 4; 5,5; 7,5; 10; 13; 17; 22; 30; 40; 55; 70.
Utilizˆand aceste informat¸ii, se construie¸ste urm˘atorul program MATLAB:
%Program de calcul al puterii electromotorului
48
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

% de antrenare al unui amestecator cu elice


clear all;clc
false = 0;
true = 1;
p_m = 0.8; % presiunea maxima admisibila, [MPa]
d = 0.4; % diametrul elicei, [mm]
d_a = 60; % diametrul arbore, [mm]
n = 300; % turatia elicei, [1/min]
ro = 1200; % densitatea mediului de lucru, [kg/mc]
eta = 5.5; % vascozitatea mediului de lucru, [cP]
k = 1.25; % coef. majorare putere
rt = 0.95; % randament totalal sistemului de actionare
sfi = 0.4; % suma amenajari interioare
m = 4; % numar inele de etansare
b = 20; % inaltimea inelului de etansare, [mm]
c_f = 0.075; % coeficient de frecare
Re_t = [1e2 1e3 1e4 1e5 1e6];
np_t = [1 0.5 0.3 0.27 0.22];
P_disp = [0.8 1.1 1.5 2.2 3 4 5.5 7.5 ...
10 13 17 22 30 40 55 70];
% calculul coeficientului de putere
Re = 16.25*n*d^2*ro/eta;
np = interp1(log(Re_t), np_t, log(Re));
% calculul puterii necesare pentru amestecare
N_am = np * (n/60)^3 * d^5 * ro * 1e-3;

% calculul puterii consumate prin frecare


N_f = 2.255e-7 * d_a^2 * m * b * c_f * p_m * n;
% calcul puterii efective de actionare
N = k/rt*(N_am*(1 + sfi) + N_f);
disp(sprintf(’Puterea efectiva %6.2f kW’,N));
% alegerea puterii electromotorului
i = 1;
while N>P_disp(i)
i = i + 1;
end;
P = P_disp(i);
disp(sprintf(’Putere electromotor %6.2f kW’,P));
% end script
Apelˆand acest program, obt¸inem urm˘atorul rezultat:
Puterea efectiva 2.27 kW
Putere electromotor 3.00 Kw

FUNCION plot3( )
La función plot3 es análoga a su homóloga bidimensional plot. Su forma más sencilla es la
siguiente:

>> plot3(x,y,z)

que dibuja una línea que une los puntos (x(1), y(1), z(1)), (x(2), y(2), z(2)), etc. y la proyecta
sobre un plano para poderla representar en la pantalla.

Ejemplo:
49
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

x=cost(t);

y=cost(t);

z=t;

DIBUJO DE MALLADOS:

FUNCIONES meshgrid(), mesh(), surf()

Meshgrid

50
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

51
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

52
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

DIBUJO DE CURVAS DE NIVEL:

FUNCIONES contour, contour3, surf.

Siguiendo con el ejemplo anterior:

53
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

54
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Otros tipos de ploteos tridimensionales de Funciones:


La table de abajo mestra todas la variedad de graficaciones de funciones y volúmenes 3D. Inclusive funciones
que generan data 3-D (cilindro, elipsoide, esfera), ademas otros arreglos de data o funciones. Para
informaciónacerca de los ejemplos del uso de funciones gráficas 3-D, ver “Creación de Grafics 3 – D en la
documentación Visualización 3 – D.
GRAFICOS DE:
Líneas mallas áreas superficies direcciones volumétricos

55
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Sistemas de ecuaciones no lineales.


Comando fsolve()

mifuncion.m

56
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

En la ventana de comandos:

Integración

quad(@f, a, b)Integra por cuadraturas la función f, desde ahasta b.

Diferenciación numérica:

diff(x)
Si x = [x(1) x(2) …x(n)] entonces
diff(x) = [x(2)-x(1) x(3)-x(2) …x(n)-x(n-1)]

EDOs de primer orden

57
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Límites

58
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Derivación e integración

59
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

60
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

61
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

62
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Series de Taylor

63
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Ecuaciones diferenciales ordinarias

64
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

Simulación de un reactor no isotérmico

65
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

66
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

67
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

68
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

69
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

70
MANUAL DE MATLAB BASICO I
MATLAB VER 7.12.0.635 (R2011a) ING. JOSE SAUL ORBEGOSO LOPEZ

71

También podría gustarte