Sunteți pe pagina 1din 55

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

ESCUELA PROFESIONAL DE INGENIERIA


QUMICA

MODELAMIENTO Y SIMULACIN
DE PROCESOS

GUIA DE PRCTICAS

MATLAB NIVEL 1

M.S. Miguel Angel Crdenas Mlaga

Arequipa 2014
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 2 de 55

PRACTICA NRO. 1

INTRODUCCION A MATLAB

FUNDAMENTOS

MATLAB. Significa MAThematics LABoratory es decir Laboratorio de


Matemticas. Tambin se dice que significa MATrix LABoratory.

Es un software orientado a las matemticas de alto nivel basado en el uso


intenso de matrices.

Caractersticas

Programacin mucho ms sencilla

Tiene continuidad entre valores enteros, reales y complejos.

Mayor intervalo y exactitud en el manejo de nmeros

Cuenta con amplias libreras matemticas

Conceptos Bsicos

Constantes: Las cantidades numricas se conocen como constantes:

Ejemplo: 1, -1e5.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 3 de 55

Variables: Son nombres que representan o almacenan nmeros o


caracteres alfanumricos

Las variables numricas almacenan nmeros

Las variables de cadena o alfanumricas almacenan


cadenas de texto (caracteres)

Ejemplo: x=5 x1 = -0.35 v =


'volumen'

Debe evitarse el uso de variables que sean palabras


reservadas de Matlab (nombres de comandos y
funciones propias de Matlab) como For, end, pi (3.1416),
eps (2.22042e-16)

Es buena costumbre usar variables que recuerden el


contenido que almacenan y que de preferencia no sean
muy extensas. (Se recomienda no ms de ocho
caracteres)

Operadores: +, - , *, /, ^ suma, resta, multiplicacin, divisin,


potencia

>, <, >=, <= mayor que, menor que, mayor o igual que,
menor o igual que

== Igual en condicionales

~= desigual en condicionales

& Si lgico, | O lgico. Los operadores lgicos se


pueden usar agrupados.

Funciones sin (x), cos (x), tan (x) seno, coseno, tangente
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 4 de 55

asin (x), acos (x), tan (x) arco seno, arco coseno, arco
tangente

sinh (x), cosh (x), tanh (x), seno, coseno, tangente


hiperblicos

asinh (x), acosh (x), atanh (x) arco seno hiperblico, arco
coseno hiperblico, etc.

abs (x) valor absoluto de x

sqrt (x) raz cuadrada de (x)

sign (x) +1 si x es positivo -1 si x es negativo

round (x) redondea x al entero ms cercano

exp (x) base exponencial e

log (x) logaritmo natural base e

log10 (x) logaritmo decimal base 10

real (x) parte real del nmero complejo x.

imag (x) parte imaginaria de x

Asignacin de Valores: r = 10; la variable r toma el valor de 10

x = r; x toma el valor almacenado en la variable r

x = x +1; el valor de x se incrementa en 1

Ventana de Comandos (Command Window)

Es una de las ventanas iniciales que se presentan cuando se abre Matlab.


Sirve para ejecutar comandos directos. En esta ventana se pone en
ejecucin a los programas de Matlab, conocidos como archivos m o
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 5 de 55

scripts. Tambin aqu se presentan los resultados producidos por dichos


programas.

Ventana del Editor (Editor Window)

En esta ventana se escriben los cdigos o scripts de Matlab haciendo uso


de los comandos correspondientes.

ACTIVIDADES

1. INICIO DE MATLAB

Iniciar Matlab Aparecen varias ventanas. Una de ellas es la ventana de


comandos (Command Window)

Establecer Carpeta de Trabajo:

Matlab ejecutar solo los archivos que se encuentren en la carpeta de


trabajos. Se supone que la carpeta trabajo fue creada anteriormente.

Se recomienda que cada programa sea guardado en su propia


carpeta.

2. CREAR, ABRIR Y GRABAR UN ARCHIVO M


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 6 de 55

Se tienen dos formas de realizar estas acciones: utilizando el cono o


utilizando el desplegable:

Click en el
icono para crear
un script Click en el
desplegable y
elegir
COMANDOS BASICOS

Input Para ingresar valores a travs del teclado.

r = input (ingrese el valor del radio = )

n = input ( ingrese su nombre, s) El argumento s


indica que la entrada es una cadena

n = input ( ingrese su nombre (entre apstrofes): )

clc borra la pantalla de comandos

clear x, y, z borra de la memoria los valores almacenados en las


variables x, y, z

Disp (x) Presenta el valor de x en pantalla.

if else end Para implementar condicionales.

Si se cumple la condicin del if se realiza todo lo que est


entre if y end. Caso contrario se realiza lo que est a
continuacin de else o de end.

fprintf Para presentar mensajes literales y valores de variables.


Note en los ejemplos el formato especial que tiene.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 7 de 55

Break termina generados por los comandos for o while

For end Muy til para clculos iterativos o contadores.

For conta = 1: maxite hace que el contador conta se


inicie en 1, se incremente de 1 en 1 y alcance el valor
mximo igual a maxite

Mientras que conta sea menor o igual a maxite, se repite


todo lo que est entre el for y su correspondiente end

Verifique que por cada if o for se tenga su


correspondiente end

% Sirve para incluir comentarios, notas explicativas,


instrucciones. No afecta el funcionamiento del programa

while end Muy til para clculos iterativos condicionales

Mientras se cumpla la condicin definida en while, se


repiten los comandos comprendidos entre while y su
respectivo end.

3. EJEMPLOS

PROGRAMA 1

%------------------------------------------------------
-
% CALCULO DE VOLUMENES. V 1
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de asignacin de variables y disp
%------------------------------------------------------
-
clc
r = 2;
vol = (4/3)*pi*r^3;
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 8 de 55

disp ('volumen es =')


disp (vol)

PROGRAMA 2

%------------------------------------------------------
% CALCULO DE VOLUMENES. V 2
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de input
%------------------------------------------------------
clc
r = input('ingrese el valor del radio = ');
vol = (4/3)*pi*r^3;
disp('volumen de la esfera es =')
disp (vol)

PROGRAMA 3

%------------------------------------------------------
% CALCULO DE VOLUMENES. V 3
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de for
%------------------------------------------------------
clc
for x = 1:5
r = input('ingrese el valor del radio r = ');
vol = (4/3)*pi*r^3;
disp ('para el radio =')
disp(r)
disp ('el volumen de la esfera es = ');
disp (vol)
end

PROGRAMA 4

%------------------------------------------------------
-
% CALCULO DE VOLUMENES. V 4
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de for
%------------------------------------------------------
-
clc
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 9 de 55

for r = 1:5
vol = (4/3)*pi*r^3;
disp ('para el radio =')
disp (r)
disp ('el volumen de la esfera es = ')
disp (vol)
end

PROGRAMA 5

%------------------------------------------------------
-
% CALCULO DE VOLUMENES. V 5
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de if
%------------------------------------------------------
-
clc
for x = 1:5
r = input('ingrese el valor del radio r = ');
if r > 0
vol = (4/3)*pi*r^3;
disp ('volumen de la esfera es = ')
disp (vol)
else
disp(' radio invalido')
end
end

PROGRAMA 6

%------------------------------------------------------
-
% CALCULO DE VOLUMENES. Versin 6
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de while
%------------------------------------------------------
clc
r = 1;
while r < 10
disp (r);
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 10 de 55

disp ('radio muy pequeo. No se calcular el


volumen')
disp(' ')
disp(' ')
r = r +1;
end
while r < 20
vol = (4/3)*pi*r^3;
disp (r);
disp ('volumen de la esfera es = ')
disp (vol)
r = r+1;
end
disp ('radio ya no es menor que 20')

PROGRAMA 7

%------------------------------------------------------
-
% CALCULO DE VOLUMENES. V 7
% Autor: Ing. Miguel A. Crdenas Mlaga
% Uso de fprintf
%------------------------------------------------------
-
clc
r = 1;
while r < 10
fprintf('radio % 5.2f',r);
fprintf (' radio muy pequeo. No se
calcular el volumen\n\n')
r = r +1;
end
while r < 20
vol = (4/3)*pi*r^3;
fprintf('para el radio radio % 3.2f',r);
fprintf(' el volumen de la esfera es =
%12.2f\n', vol);
r = r+1;
end
disp ('radio ya no es menor que 20')

4. PROBLEMAS
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 11 de 55

1. Calcular las reas de los crculos para un rango de dimetros de 10 a


20.

2. Escribir un programa para calcular el rea de un crculo. El usuario


debe ingresar el dimetro. No se debe calcular si el dimetro es
negativo o igual a cero.

3. Ingresar 5 dimetros y para cada dimetro calcular el rea del crculo y


volumen de la esfera correspondientes.

4. Ingresar un nmero. Si es par el programa debe mostrar el mensaje


es par, caso contrario debe mostrar es impar.

5. Ingresar 10 temperaturas en grados C. Si una temperatura es par


convertirla a K, caso contrario convertirla a F.

6. La ecuacin cuadrtica es ax2 + bx +c = 0

Si la discriminante es mayor que cero, se tienen dos races reales x1 y


x2 (las mismas que pueden ser iguales o diferentes entre si). Escribir
un programa para calcular dichas races. Si la discriminante es
negativa mostrar un mensaje races imaginarias

7. Sumar los primeros 10 nmeros naturales.

8. Sumar los primeros n nmeros naturales

9. Ingresar n nmeros y sumarlos

10. Ingresar n nmeros y hallar la suma de los pares y la suma de los


impares.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 12 de 55

PRACTICA NRO. 2

VECTORES Y MATRICES

FUNDAMENTOS

Vector fila Es un arreglo de nmeros en forma de fila

Las tres formas siguientes proporcionan el mismo vector


fila

x = [2, 4, 6, 8, 10];
x = 2: 2:10;
for i = 1:5
x(i) = 2*i;
end

Vector columna Es un arreglo de nmeros en forma de columna

El apstrofe equivale al operador de transposicin.

z = [3, 6, 9, 12];

Los elementos de un vector columna se separan por


puntos y comas

x = [2; 4; 6; 8; 10];
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 13 de 55

Elemento de vector z (3) especifica al elemento 9 del vector


columna z

Agregar elementos z ( 5) = 15 el vector z tendr ahora 5 elementos.

z = [z;15] adiciona el elemento 15 al vector columna z

x = [x, 12] adiciona el elemento 12 al vector fila x

Operaciones Asumiendo que x, y son vectores de igual tamao.

z=x+y suma de elemento a elemento.

z=xy resta de elemento a elemento

z = x .* y multiplicacin de elemento a elemento.


Vea el punto

z = x./ y divisin de elemento a elemento. Vea el punto

z = x.^ 2 potencia de cada elemento. Vea el punto

z = a*b multiplicacin vectorial. Es posible si el


nmero de columnas del vector fila a es
igual al nmero de filas del vector columna
y

Matrices m = [1, 2, 3; 4, 5, 6; 7, 8, 9] matriz 3x3

Operaciones Asumiendo que a y b son dos matrices del mismo tamao

c=a+b suma de elemento a elemento.

c=ab resta de elemento a elemento

c = a.* b multiplicacin de elemento a elemento.


Vea el punto

c = a./b divisin de elemento a elemento. Vea el punto


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 14 de 55

c = a.^3 potencia de cada elemento. Vea el punto

c = x*y multiplicacin matricial. Es posible si el


nmero de columnas de la matriz x es
igual al nmero de filas de la matriz y

Ordenar sort (x) ordena de mayor a menor los elementos de x

Sumatoria sum (x) suma a los elementos de x

Mximo max (x) encuentra el mximo elemento de x

Mnimo min (x) encuentra el mnimo elemento de x

ACTIVIDADES

1. Dados los siguientes vectores

a = [1, 3, 4, 5] b = [7, 8, 9, 10]

-4 1
c= 8 d= 3
9 2
7 1
Hallar : z=a+b z1 = a b z2 = a.*b z3 = b.^az4
= b./a

v=c+d v1 = c d v2 = c.*d v3 = c.^d v4 = c./d

Sumar los elementos de cada vector a, b, c y d

Hallar el mayor elemento y el menor elemento de cada vector a, b, c y


d
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 15 de 55

Hallar la suma de los segundos elementos de todos los vectores

Ordenar a los vectores a, b, c y d

2. Hallar m = a*b m1 = b*c

Es posible hallar m2 = b*a m3 = c *b ?

3. Dadas la matrices

1 2 3 7 1 9
a= 4 5 6 b= 3 8 6
7 8 9 4 3 5
Hallar m=a+b m1 = a b m2 = a.*b m3 = b ./a

m4 = a*b

Explicar el resultado de sum(a) y sum (b)

Explicar el resultado de min (a), min (b), max (a), max (b)

Hallar el mayor elemento de la matriz a y de la matriz b

Hallar el menor elemento de la matriz a y de la matriz b


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 16 de 55

PRACTICA NRO. 3

FUNCIONES

FUNDAMENTOS

Al igual que otros lenguajes de programacin, Matlab ofrece la posibilidad


de que el usuario defina sus propias funciones.

Una funcin es un procedimiento que realiza una tarea especfica y que se


llama desde un programa principal. La ventaja principal de una funcin es
que evita la programacin repetida de los mismos clculos. Una vez
establecida, la funcin puede ser llamada en cualquier posicin del
programa principal.

Debido a que las funciones de Matlab se graban como archivos


independientes, una misma funcin puede ser llamada por ms de un
programa. Esta caracterstica proporciona al usuario un gran ahorro de
tiempo y le permite aprovechar al mximo cada una de las funciones
elaboradas.

En el siguiente ejemplo se define una funcin para calcular el volumen de


una esfera:

Function f = volesfe(x)
f = 4/3*pi*x^3;
Esta funcin se graba en el archivo volesfe.m
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 17 de 55

Function f = volesfe(x): Es el comando que define a una funcin. Note


como la misma variable f aparece en el comando function
y en la ecuacin.

volesfe es el nombre de la funcin. Ntese que volesfe es el mismo


nombre del archivo en el que se guarda a la funcin.

La variable x es el argumento de la funcin. Si la ecuacin que define a


la funcin tiene una sola variable, entonces function
tendr solamente un argumento, pero si en la ecuacin
intervienen dos o ms variables, entonces en function
deben aparecer esas mismas dos o ms variables como
argumentos.

Por ejemplo la siguiente funcin para calcular el rea de un


tringulo requiere dos argumentos la base y la altura:

Function f = area (b,h)


f = b*h/2;
Ntese que los argumentos se separan mediante comas.

El programa principal siguiente llama a la funcin volesfe para el clculo


del volumen de la esfera para cada radio que se ingresa:

%--------Clculo del volumen de una esfera


clc
r = input(ingrese un radio:);
vol = feval (volesfe,r);
fprint f (para el radio %2.1f\n, r);
fprintf (el volumen de la esfera es %2.1f\n, vol)
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 18 de 55

vol = feval (volesfe,r); feval es el comando para llamar a una


funcin especfica.
feval proviene del ingls function evaluation o evaluacin
de funciones; entonces este comando sirva para evaluar o
calcular funciones.
Ntese que entre parntesis se coloca el nombre de la
funcin ( y que es el mismo del archivo de la funcin sin la
extensin m) y la variable que debe utilizarse en el clculo
de la funcin.
Finalmente debe indicarse que el valor calculado de la
funcin se almacenar en la variable vol.

Una funcin tambin puede devolver mltiples variables. Por ejemplo la


funcin siguiente devuelve el volumen de una esfera y el rea de un
tringulo

Function [v, a] = volarea (r,b,h)


v = 3/4*pi*r^3;
a = b*h/2;

Esta funcin se deber grabar en un archivo llamado volarea.m

ACTIVIDADES

1. Ingresar 20 nmeros enteros positivos. Preparar una tabla que


muestre cada nmero y su cuadrado, cubo, raz cuadrada y
logaritmo.

%----Ingreso de nmeros
clc
for i = 1:20;
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 19 de 55

fprintf ('ingrese el nmero %2.0f',i)


x(i) = input(' = ');
end

%-------Impresin de cabecera de la tabla


clc
fprintf('----------------------------------------
----\n');
fprintf(' Tabla \n')
fprintf(' x Cuadrado Cubo Raiz
Logaritmo\n');
fprintf('----------------------------------------
----\n');

%--------Clculo del cuadrado, cubo, raz y


logaritmo
for i = 1:20;
c2 = feval ('cuadra',x(i));
c3 = feval ('cubo',x(i));
cr = feval ('raiz',x(i));
cl = feval ('loga',x(i));
fprintf
('%2.0f%10.0f%10.0f%10.4f%10.4f\n',x(i),c2,c3,
cr,cl)
end
fprintf('----------------------------------------
----\n');

2. Ingresar N temperatura en Centigrados y presentar una tabla con


la temperatura en Centigrados, Faranheit y Kelvin
3. Se tienen 3 gases: oxigeno, helio y xido ntrico. Calcular la
presin segn la Ley de los gases ideales y segn la ecuacin de
Van der Walls para los siguientes datos de volumen molar y
temperatura en Centigrados.

Tabla 1. Parmetros . Problema 3


Volumen Molar Temperatura Gas a b
(lt/mol) ( C)
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 20 de 55

1.6 80 CO2 3.599 0.04267


1.8 80 He 0.03412 0.02370
2.0 80 N2O5 1.34 0.02789
2.4 100
2.8 100
3.0 100

4. Dado un entero K hallar su factorial K! = 1*2*3*4*....K


5. Calcular la suma de los N primeros mltiplos de un entero K. Por
ejemplo si N = 10 y K = 3 se debe hallar la sumatoria 1*3 +
2*3 + 3*3 + ......10*3. El programa debe ser totalmente
general.
6. Dado un entero determinar si es primo o no
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 21 de 55

PRACTICA NRO. 4

GRAFICOS BASICOS EN MATLAB

FUNDAMENTOS

En ingeniera para comprender un proceso y as disearlo, controlarlo u


optimizarlo es importante conocer como se relacionan entre si las variables
que gobiernan dicho proceso. Estas relaciones entre variables con
frecuencia se expresan en forma de ecuaciones matemticas y estas a su
vez pueden presentarse en forma grfica para su mejor entendimiento.
Las ecuaciones matemticas pueden expresar relaciones entre variables
en una, dos o tres dimensiones. Por lo tanto es muy conveniente manejar
un paquete que permita graficar de manera rpida y sencilla estos tipos de
grficos. Matlab ofrece esta posibilidad. Los grficos son una parte natural
del entorno de computacin de Matlab y los resultados de muchos clculos
puede efectuarse con algunos comandos. El estudiante de ingeniera debe
habituarse a graficar las ecuaciones con las que trabaje al igual que los
resultados de sus anlisis, ello le ayudar a entender con mayor
profundidad los conceptos fundamentales de su profesin.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 22 de 55

El siguiente cdigo grafica la funcin y = sen(x)* exp(-0.4*x)


x = 0:0.5:10;
y = sin(x)*exp(-0.4*x);
plot (x,y)
grid
title ( 'ttulo del grfico')
xlabel ('eje x'); ylabel ('eje y')

La primera lnea genera un conjunto de valores desde 0 hasta 10 con


incrementos de 0.5. Estos valores se almacenan en el vector x. En la
segunda lnea para cada valor de x se calcula el correspondiente valor de
la funcin. Estos valores se almacenan en el vector y. Ntese que los
vectores x, y tienen la misma longitud. Si el vector x es un vector fila y
tambin ser un vector fila, igualmente, si x es un vector columna y
tambin ser un vector columna.

COMANDOS DE GRAFICOS
plot (x, y) Sirve para graficar en un plano con dos variables.
Especifica el tipo y color de lneas y marcas a utilizar en la
curva del grfico.
plot ( x, y ,+r) Grafica los datos con la marca x de color rojo. Ver
Tabla 1
plot (x, y, --b) Grafica los datos con una lnea de guiones de color azul).
Ver Tabla 1
grid on Activa la cuadricula
grid off Desactiva la cuadricula.
title ( titulo) Sirve para colocar un ttulo al grfico
xlabel (x) , ylabel (y)Se utilizan para rotular o poner nombres a los ejes
de las abcisas y de las ordenadas respectivamente.
clf Borra la ventana de grficos
cla Borra las curvas graficadas y redibuja los ejes
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 23 de 55

Tabla 2. Smbolos para Grficos

Tipo de Smbolo Tipo de Smbolo Color de Smbolo


Marca Lnea Lnea
Punto Continua - rojo r
Mas + Guiones -- amarillo y
Asterisco * Punteada : magenta m
Circulo o guiones y -. turquesa c
puntos
Marca x x verde g
azul b
blanco w
negro k

axis (square) Presenta un grfico en forma cuadrada

axis (off) Omite los ejes coordenados

axis (on) Activa los ejes coordenados. Cancela a axis (off)

axis ([x_min, x_max, y_min, y_max]) Especifica los valoreS mnimos y


mximo de los ejes ordenados

polar (t,y) Grafica t , y en coordenadas polares

loglog (x,y) Grafica logaritmo de x versus logaritmo de y

semilogy (x,y) Grafica x versus el logaritmo de y

semilogx (x,y) Grafica logaritmo de x versus y

Texto en Grficos

Con frecuencia en los grficos de ingeniera se deben incluir rtulos


aclaratorios de las curvas presentes en un mismo grfico. Matlab cuenta
con el comando text.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 24 de 55

text (x, y, texto) x, y son las coordenadas del punto donde


comienza el texto

Es posible cambiar el color, el tamao y tipo de fuente.

CURVAS MULTIPLES

Si se necesita presentar dos o ms curvas en un mismo grfico se puede


hacer uso del comando plot

x= 0: 0.5: 5;
y = sin (x);
z = cos (x);
plot (x, y, z)
Los colores y tipos de lnea se escogern automticamente; pero tambin
es posible especificar la marca, el color y tipo de lnea segn se necesite

plot (x, y, , x, z, *)

plot (x, y, r, x, z, y)

Adicionar una Curva a un Grfico

En ciertas ocasiones ya se tiene un grafico y se requiere adicionar una o


ms curvas, para ello se cuenta con el comando hold on

hold on Retiene al grafico de modo que nuevas curvas se


adicionen al grafico.

hold off Cancela la accin de hold on. Se recomienda que al inicio


y al final de un programa se coloque hold off ya que el
grafico retenido por hold on permanece en pantalla asi se
ejecute otro programa diferente.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 25 de 55

GRAFICO DE SUPERFICIES

En ingeniera con bastante frecuencia se puede encontrar que una variable


depende solamente de otra variable. Al graficar esta relacin se obtiene
una grafica sencilla en un plano con dos ejes coordenados, se dice
entonces que el grfico es de dos dimensiones. Estas son las clsicas
curvas y = F(x). Por otro lado tambin son comunes los casos en que una
sola variable dependiente es funcin de dos variables independientes, y =
F (x1, x2) y si se quiere representar grficamente la dependencia de y es
necesario un grfico con tres ejes coordenados o de tres dimensiones.
Matlab puede manejar con relativa sencillez este tipo de grficos. Para los
casos de ms de 4 variables independientes, la visualizacin grfica no es
posible.

clear, clc
xa = -2:0.5:2;
ya = -2:0.5:2;
[x, y] = meshgrid ( xa, ya);
z = x.*exp (-x.^2 y.^2);
mesh ( x,y,z)
title ('Este es un grfico 3D')
xlabel ('eje x'); ylabel ('eje y'); zlabel('eje
z');

[x, y] = meshgrid ( xa, ya); Crea los arreglos bidimensionales (


matrices) que servirn para combinar apropiadamente los
ejes coordenados x y y. Note que x es una matriz al igual
que y.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 26 de 55

z es una matriz que resulta de efectuar las operaciones entre todos los
valores de x con todos los valores de y

mesh (x,y,z) Grafica z en funcin de x y y. Se presenta en forma de


malla.

ACTIVIDADES

1. Graficar la funcin y = sin (x).*exp ( -0.2*x) para valores de x de


0 a 10 con incrementos de 0.2 . Colocar un ttulo de grfico y los
respectivos rtulos de los ejes coordenados. Incluir la cuadrcula.

2. Modifique el grfico anterior incluyendo comandos axis.

3. Grafique la funcin anterior en coordenadas polares

4. Dado el vector t = 0.1:0.1:3 prepare un grfico loglog (x, y). Donde


x = exp (t), y = exp(t.*sinh(t))

5. Modifique el grafico anterior de modo que sea semilogx y


semilogy

6. Genere valores para un vector x. Grafique simultneamente seno


(x) y coseno(x). Con text identifique cada curva. Haga que una de
las curvas tenga solo lnea y la otra solo marcas.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 27 de 55

PRACTICA NRO. 5

ALGEBRA MATRICIAL

FUNDAMENTOS

El clculo matricial es de uso comn en ingeniera, son numerosos los


problemas cuya resolucin requiere de la aplicacin de los mtodos
matriciales. Basta mencionar los sistemas de ecuaciones algebraicas
lineales que aparecen en los balances de materia, en el clculo de
evaporadores, columnas de destilacin, reactores en estado estacionario,
etc.

Las ventajas de Matlab como paquete matemtico tienen su origen en el


denso uso de vectores y matrices.

MATRICES ESPECIALES

Matriz Cuadrada: cuando el nmero filas es igal al de las columnas


(m=n)

Matriz nula : Todos los elementos de la matriz son ceros.

A = zeros (m,n) devuelve una matriz nula de m filas por n columnas

A = zeros (n) devuelve una matriz nula de n por n


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 28 de 55

Matriz identidad: Es una matriz cuadrada con los elementos de la


diagonal principal iguales a uno y el resto iguales a ceros

I = eye (n) devuelve una matriz identidad de tamao n

Matriz Transpuesta. Es la matriz que resulta de intercambiar filas por


columnas.

B = A' devuelve la matriz transpuesta de A

C = ones (m,n) devuelve una matriz de tamao m por n con todos sus
elementos iguales a uno.

zeros (size(A)) retorna una matriz nula de tamao igual al de la matriz A

ones(size(A)) retorna una matriz de unos con tamao igual al de la matriz


A

OPERACIONES MATRICIALES

C=A+B suma de matrices

ci,j = ai,j + bi,j

C=AB resta de matrices

ci,j = ai,j - bi,j

C = A*B producto de matrices. Requiere que el nmero de columnas de A


sea igual que el nmero de filas de B

c i , j a i ,k b k , j
k

C tendr igual nmero de columnas que A , e igual nmero


de filas que C
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 29 de 55

En general A*B B*A

B = inv(A) retorna la inversa de la matriz A. El producto de una matriz


por su inversa es igual a la matriz identidad.

I = A*B

No todas las matrices tienen inversa. Una matriz que no


tiene inversa se denomina matriz singular.

ACTIVIDADES

1. Dados las siguientes vectores y matrices :

2 1 4 7 8 4 3
A= 3 1 2 B= 2 3 5 x= 4
4 3 1 8 2 6 3

5
y= 6
8

Calcular: x + y, xy A+b
AB

A*B A*x

2. Escribir un programa para ingresar los elementos de un vector fila de


tamao n

3. Escribir un programa para ingresar un vector columna de tamao n


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 30 de 55

4. Escribir un programa para ingresar los elementos de una matriz de m


filas por n columnas.

5. Hallar la matriz transpuesta de la matriz A del problema 1

6. Hallar la matriz inversa de la matriz b del problema 1. Verificar que el


producto de la matriz B con su inversa es igual a la matriz identidad.

7. Efectuar los siguientes productos


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 31 de 55

PRACTICA NRO. 6

SISTEMA DE ECUACIONES ALGEBRAICAS

LINEALES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 32 de 55

PRACTICA NRO. 7

ECUACIONES ALGEBRAICAS NO LINEALES:

METODO DE NEWTON

FUNDAMENTOS

PROGRAMAS

Archivo newton.m

% RESOLUCION DE ECUACIONES ALGEBRAICAS NO LINEALES


% METODO DE NEWTON
%
% Autor: Ing. Miguel Angel Crdenas Mlaga

%------------------------------------------------------
--------
% INSTRUCCIONES
% Defina la funcin en:
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 33 de 55

% archivo de funcin: ea_nolin.m


% Defina la derivada en:
% archivo de derivada: deriva.m

% NOMENCLATURA
% x: Aproximacin inicial
% tol: Tolerancia
% maxite: Nmero mximo de iteraciones
% conta: Contador de iteraciones
% fx: Valor de la funcin en x
% dfx: Derivada de la funcin en x
% xuno: Siguiente valor de x (xi+1)
%------------------------------------------------------
--------
clc

conta = 1;
maxite = 50;
tol = 0.0001;

x = input('ingrese el valor inicial x= ');

clc

fprintf('----------------------------------------------
---\n');
fprintf(' METODO DE NEWTON\n')
fprintf('itera x fx dfx
xuno\n');
fprintf('----------------------------------------------
---\n');

for conta = 1: maxite


fx = feval('ea_nolin',x);
dfx = feval('deriva',x);
xuno = x -fx/dfx;
fprintf('%3.0f%12.4f%12.4f%12.4f%12.4f\n',conta,x
,fx,dfx,xuno);
if (abs(fx)>tol)
x = xuno;
else
break
end
end
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 34 de 55

fprintf('----------------------------------------------
---\n');
if (conta >= maxite)
fprintf(' EL METODO NO CONVERGE\n');
else
fprintf(' LA RESPUESTA ES:%12.4f\n',x);
end

Archivo ea_nolin.m

% FUNCION ea_nolin.m
% Define la ecuacin a resolver por los mtodos
numricos: Biseccin, Newton, Regula Falsi,
Secante
%------------------------------------------------------
---
function f = ea_nolin(x)

f = x^3+2*x^2+10*x-20;

Archivo deriva.m

% FUNCION deriva.m
% Define a la derivada de la funcin que se resuelve
por el mtodo de Newton
% --------------------------------------

function f = deriva(x)
f = 3*x^2+34*x + 10;

ACTIVIDADES

1.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 35 de 55
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 36 de 55

PRACTICA NRO. 8

ECUACIONES ALGEBRAICAS NO LINEALES:

METODO DE PUNTO FIJO

FUNDAMENTOS

PROGRAMAS

Archivo pfijo.m
%
% RESOLUCION DE ECUACIONES ALGEBRAICAS NO LINEALES
% METODO DE PUNTO FIJO
%
% Autor: Ing. Miguel Angel Crdenas Mlaga
%------------------------------------------------------
--------
% INSTRUCCIONES
% Defina la funcion gx en:
% archivo de funcin: gx.m
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 37 de 55

% Defina la derivada de gx en:


% archivo de derivada: gprima.m
%
% NOMENCLATURA
% x: Aproximacin inicial
% tol: Tolerancia
% maxite: Nmero mximo de iteraciones
% conta: Contador de iteraciones
% xuno: Siguiente valor de x (xi+1)
% ea: Error actual
% conta: Contador de iteraciones
%------------------------------------------------------
--------

maxite = 50;
tol = 0.0001;
ea = 10;
conta = 0;

clc
x = input('ingrese el valor inicial x= ');

fprintf('----------------------------------------------
---\n');
fprintf(' METODO DE PUNTO FIJO\n')
fprintf('itera x xuno gprima
ea\n');
fprintf('----------------------------------------------
---\n');

while ea > tol


conta = conta +1;
if conta < maxite
xuno = feval('gx',x);
gpri = feval('gprima',x);
ea = abs(x -xuno);
fprintf('%3.0f%12.4f%12.4f%12.4f%12.4f\n',
conta,x,xuno,gpri,ea);
x = xuno;
else
break
end
end
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 38 de 55

fprintf('----------------------------------------------
---\n');
if (conta >= maxite)
fprintf(' EL METODO NO CONVERGE\n');
else
fprintf(' LA RESPUESTA ES:%12.4f\n',x);
end

Archivo gx.m

function f = gx(x)
f = (20 -x^3 -2*x^2)/10;

Archivo gprima.m

function f = gprima(x)
f = (-3*x^2 4*x)/10

ACTIVIDADES

1.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 39 de 55
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 40 de 55

PRACTICA NRO. 9

ECUACIONES ALGEBRAICAS NO LINEALES:

METODO DE BISECCION

FUNDAMENTOS

PROGRAMAS

Archivo bis.m
%

% RESOLUCION DE ECUACIONES ALGEBRAICAS NO LINEALES


% METODO DE BISECCION
%
% Autor: Ing. Miguel Angel Crdenas Mlaga
%------------------------------------------------------
--------
% INSTRUCCIONES
% Defina ecuacin a resolver en:
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 41 de 55

% archivo de funcin: ea_nolin.m

% NOMENCLATURA
% xi: Lmite inferior del intervalo
% xs: Lmite superior del intervalo
% xm: Punto medio del intervalo
% tol: Tolerancia
% maxite: Nmero mximo de iteraciones
% conta: Contador de iteraciones
% fxi: Valor de la funcin en xi
% fxs: Valor de la funcin en xs
% fxm: Valor de la funcin en xm
%------------------------------------------------------
-------
clc

maxite = 50;
tol = 0.0001;

xi = input('ingrese el lmite inferior xi= ');


xs = input('ingrese el lmite superior xs= ');

fxi=feval('ea_nolin',xi);
fxs=feval('ea_nolin',xs);
conta = 0;

if ( fxi*fxs>0)
fprintf('--------------------------------------------\n');
fprintf(' METODO DE
BISECCION\n')
fprintf('itera xi xs fxi
fxs\n');
fprintf('-----------------------------------------
---\n');
fprintf('%3.0f%10.4f%10.4f%10.4f%10.4f\n',conta,x
i,xs,fxi,fxs);
fprintf('\n El intervalo inicial no contiene a la
raiz \n')
break
end

clc
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 42 de 55

fprintf('----------------------------------------------
---\n');
fprintf(' METODO DE BISECCION\n')
fprintf('itera xi xs xm fxi fxs
fxm\n');
fprintf('----------------------------------------------
---\n');

for conta = 1: maxite


xm=(xi+xs)/2;
fxm=feval('ea_nolin',xm);
fprintf('%3.0f%10.4f%10.4f%10.4f%10.4f%10.4f%10.4
f\n',conta,xi,xs,xm,fxi,fxs,fxm);
if (abs(fxm)>tol)
if (fxi*fxm>0)
xi=xm;
fxi=fxm;
else
xs=xm;
fxs=fxm;
end
else
break
end
end

fprintf('----------------------------------------------
---\n');
if (conta>=maxite)
fprintf(' EL METODO NO CONVERGE\n');
else
fprintf(' LA RESPUESTA ES:%12.4f\n',xm);
end

Archivo ea_nolin.m

% FUNCION ea_nolin.m
% Define la ecuacin a resolver por los mtodos
numricos: Biseccin, Newton, Regula Falsi, Secante
%------------------------------------------------------
---
function f= ea_nolin(x)

f=x^3+2*x^2+10*x-20;
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 43 de 55

ACTIVIDADES

1.
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 44 de 55

PRACTICA NRO. 10

RESOLUCION DE ECUACIONES

ALGEBRAICAS CON FSOLVE

FUNDAMENTOS

ACTIVIDADES

1.

Archivo eje1fsolve.m

% --------- Ejemplo 1: uso de fsolve


vini = 1;
s = fsolve(@fun1,vini);
s

Archivo de funcin fun1.m


MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 45 de 55

function f = fun1(x)
f = 3*x -sqrt(x) +x^2*exp(0.2*x)-10;
end

2.

Archivo eje2fsolve.m

% --------- Ejemplo 2: uso de fsolve

a = input('ingrese el valor de a = ')


b = 0.2;
vini = 1;
s = fsolve(@(x) fun2(x, a,b),vini);
s

Archivo de funcin fun2.m

function f = fun2(x,a,b)
f = a*x -sqrt(x) +x^2*exp(b*x)-10;
end

3.

Archivo eje3fsolve.m

% --------- Ejemplo 3: uso de fsolve

a = [3,4,5,6];
b = 0.2;
vini = [1,1,1,1];
s = fsolve(@(x) fun3(x, a,b),vini);
s
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 46 de 55

Archivo de funcin fun3.m

function f = fun3(x,a,b)
f = a.*x + sqrt(x)+x.^2.*exp(b.*x)-10;
end

4.

Archivo eje3fsolve.m

% ----------Ejemplo 4 Uso de fsolve


a= 2;
b= 1;
c= 0.3;
d=3;
g=0.5;
vi = [0,0];
x= fsolve(@(z)fun4(z,a,b,c,d,g),vi)

Archivo de funcin fun4.m

function f= fun4(z,a,b,c,d,g)
x= z(1);
y = z(2);
f(1) = a*x -b*y - exp(c*x);
f(2) = -d*x+g*y-exp(c*y);
end
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 47 de 55

PRACTICA NRO. 11

SISTEMAS DE ECUACIONES ALGEBRAICAS

NO LINEALES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 48 de 55

PRACTICA NRO. 11

FUNCIONES DE SPLINES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 49 de 55

PRACTICA NRO. 12

SISTEMA DE ECUACIONES ALGEBRAICAS NO

LINEALES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 50 de 55

PRACTICA NRO. 13

ECUACIONES DIFERENCIALES ORDINARIAS

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 51 de 55

PRACTICA NRO. 14

SISTEMA DE ECUACIONES DIFERENCIALES

ORDINARIAS

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 52 de 55

PRACTICA NRO. 15

ECUACIONES DIFERENCIALES PARCIALES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 53 de 55

PRACTICA NRO. 16

SISTEMA DE ECUACIONES DIFERENCIALES

PARCIALES

FUNDAMENTOS

ACTIVIDADES
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 54 de 55

CONTENIDOS

PRACTICA NRO. 1: INTRODUCCION A MATLAB

PRACTICA NRO. 2: VECTORES Y MATRICES

PRACTICA NRO. 3: FUNCIONES

PRACTICA NRO. 4: GRAFICOS BASICOS EN


MATLAB

PRACTICA NRO. 5: ALGEBRA MATRICIAL

PRACTICA NRO. 6: SISTEMA DE ECUACIONES


ALGEBRAICAS LINEALES

PRACTICA NRO. 7: ECUACIONES ALGEBRAICAS NO


LINEALES
PRACTICA NRO. 8:

PRACTICA NRO. 9:

PRACTICA NRO. 10: AJUSTE DE CURVAS

PRACTICA NRO. 11: FUNCIONES DE SPLINES

PRACTICA NRO. 12: SISTEMA DE ECUACIONES


ALGEBRAICAS NO LINEALES

PRACTICA NRO. 13: ECUACIONES DIFERENCIALES


ORDINARIAS
MSP-Matlab Nivel I M.S. M.A. Crdenas Mlaga Pgina 55 de 55

PRACTICA NRO. 14: SISTEMA DE ECUACIONES


DIFERNCIALES ORDINARIAS

PRACTICA NRO. 15: ECUACIONES DIFERENCIALES


PARCIALES

PRACTICA NRO. 16: SISTEMAS DE ECUACIONES


DIFERENCIALES PARCIALES

S-ar putea să vă placă și