0% encontró este documento útil (0 votos)
10 vistas51 páginas

Introducción a MATLAB para Programación

El documento es una guía introductoria sobre el uso de MATLAB, una herramienta poderosa para cálculos matemáticos, simulaciones y modelado, utilizada en diversas disciplinas como ingeniería y ciencia. Se abordan operaciones matemáticas, gráficas, programación y aplicaciones prácticas en MATLAB, destacando su facilidad de uso y su relevancia en el ámbito académico e industrial. El texto incluye ejemplos y descripciones de funciones matemáticas y comandos básicos para facilitar el aprendizaje del software.

Cargado por

gmertatiana
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas51 páginas

Introducción a MATLAB para Programación

El documento es una guía introductoria sobre el uso de MATLAB, una herramienta poderosa para cálculos matemáticos, simulaciones y modelado, utilizada en diversas disciplinas como ingeniería y ciencia. Se abordan operaciones matemáticas, gráficas, programación y aplicaciones prácticas en MATLAB, destacando su facilidad de uso y su relevancia en el ámbito académico e industrial. El texto incluye ejemplos y descripciones de funciones matemáticas y comandos básicos para facilitar el aprendizaje del software.

Cargado por

gmertatiana
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DEL

CENTRO DEL PERÚ

LENGUAJES DE PROGRAMACION
2

HUANCAYO – PERU
PRESENTACION

En los momentos actuales en que la información es muy importante para la toma de


decisiones, el uso de las herramientas de la informática se hace imperativamente
necesaria, concientes de esa realidad en la Universidad nos mantenemos vigilantes de
las nuevas tendencias de la informática.

El presente texto pretende ser una pequeña guía para iniciarse dentro del fabuloso
mundo de la programación como herramienta para los diferentes trabajos de
investigación y aplicación para la búsqueda de soluciones.

Este texto proporciona información para conocer el programa MATLAB, que es una
poderosa herramienta de cálculo, simulación y modelado matemático, muy utilizada por
estudiantes, ingenieros y científicos, en universidades, institutos de investigación e
industrias, en todo el mundo, y muy fácil de usar.

El objetivo de este texto es introducir al lector en las bondades que ofrece el MATLAB,
para aprovechar la Matemática y a la vez resolver de forma práctica problemas aplicados
a la ingeniería.

MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente


integrado orientado para llevar a cabo proyectos en donde se encuentren implicados
elevados cálculos matemáticos y la visualización gráfica de los mismos.

MATLAB nace como una solución a la necesidad de mejorar las herramientas de cálculo
para resolver problemas de cálculos complejos en los que es necesario aprovechar las
amplias capacidades de proceso de datos de las computadoras.

El lenguaje flexible e interactivo de MATLAB permite a ingenieros y científicos expresar


sus ideas técnicas con simplicidad. Los poderosos y amplios métodos de cómputo
numérico y graficación permiten la prueba y exploración de ideas alternativas con
facilidad, mientras que el ambiente de desarrollo integrado facilita producir resultados
prácticos fácilmente.

Esperamos que este texto sea útil y ayude a los interesados en el uso de MATLAB.

LOS AUTORES.
3

INDICE

Introducción
Pág.
CAPITULO 1: OPERACIONES MATEMÁTICA CON MATLAB

Operaciones Algebraicas 6
Funciones Básicas 7
Formatos de visualización de números 8
Funciones Matemáticas 8
Funciones Trigonométricas 9
Numeros Complejos 10
Matrices y Arreglos 11

CAPITULO 2: GRAFICAS CON MATLAB


Gráficos en el Plano 14
Gráfica de Superficies 18

CAPITULO 3: PROGRAMACION EN MATLAB


Programación 20
Algoritmo 20
Diagrama de Flujo 20
Bifurcaciones IF 22
Bucle For 23
Bucle While 24
Función Input 24
Función Disp 25

CAPITULO 4: APLICACIONES CON EN MATLAB

Ejemplos de Programas con: IF … END 26


Ejemplos de Programas con: FOR … END 27
Ejemplos de Programas con: WHILE … END 28
Aplicaciones a Ajuste de Curvas 29
Aplicación a la Cinemática 30
Programas en la integración de Funciones 33
Programa Aplicados a los Sistemas de Ecuaciones Lineales 36
Aplicación al Tratamiento de aguas Residuales con Carbon Activado 42

Referencias Bibliograficas 50
4

INTRODUCCION
El nombre de MATLAB proviene de la contracción de los términos MATRIX
LABORATORY y fue inicialmente concebido para proporcionar fácil acceso a las librerías
LINPACK y EISPACK, las cuales representan hoy en día dos de las librerías más
importantes en computación y cálculo matricial.
MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente
integrado orientado para llevar a cabo proyectos en donde se encuentren implicados
elevados cálculos matemáticos y la visualización gráfica de los mismos. MATLAB integra
análisis numérico, cálculo matricial, proceso de señal y visualización gráfica en un
entorno completo donde los problemas y sus soluciones son expresados del mismo
modo en que se escribirían tradicionalmente, sin necesidad de hacer uso de la
programación tradicional.
En los medios universitarios MATLAB se ha convertido en una herramienta básica, tanto
para los profesionales e investigadores de centros docentes, como una importante
herramienta para el dictado de cursos universitarios, tales como sistemas e ingeniería de
control, álgebra lineal, proceso digital de imagen, señal, etc. En el mundo industrial
MATLAB está siendo utilizado como herramienta de investigación para la resolución de
complejos problemas planteados en la realización y aplicación de modelos matemáticos
en ingeniería. Los usos más característicos de la herramienta los encontramos en áreas
de computación y cálculo numérico tradicional, prototipaje algorítmico, teoría de control
automático, estadística, análisis de series temporales para el proceso digital de señal.

El MATLAB es una herramienta interactiva y abierta para computación científica,


programación y visualización de datos, desarrollada por The MathWorks, Inc.
Originalmente, este sistema fue escrito por Cleve Moler, en 1980, en la Universidad de
México, en lenguaje Fortran: El objetivo perseguido era mejorar el interfaz de usuario con
la librería de subrutinas LINPACK La versión actual está escrita en lenguaje C por The
MathWorks Inc. Además de la herramienta principal (el MATLAB), este sistema está
complementado por numerosas ‘Toolbox’, que lo especializan en diversos dominios de
trabajo, desde el cálculo simbólico hasta el proceso de señales y de imágenes, pasando
por las finanzas.

MATLAB es la disponibilidad de los toolboxes especializados. Estos son paquetes


especializados, orientados a ingenieros, científicos y otros tipos de profesionales
técnicos. Entre los más destacados están:

 Procesamiento de Señal  Diseño de Sistemas de Control


 The MATLAB C Math Library  Control Robusto
 Matemáticas Simbólicas  Identificación de Sistemas
 Procesamiento de Imagen  Optimización
 The MATLAB Compiler  Simulación
 Redes Neuronales  Diseño de Control no Lineal
 Estadística  Lógica Difusa
 Splines  NAG Fundation Toolbox
5

CAPITULO
1

1. OPERACIONES MATEMATICAS CON MATLAB

1.1 Objetivo: Manejar el Matlab para la obtención de soluciones puntuales de


problemas matemáticos.

Operaciones Algebraicas
Luego de cargado el Matlab, en la ventana de trabajo aparece el siguiente simbolo >> indica
que el programa está listo para recibir sus instrucciones. Escriba cada ejemplo y presione la
tecla de ingreso para finalizar. MATLAB muestra el resultado inmediatamente, o un mensaje
si hubo algún error.

>> 4+6+2 % Como una calculadora el Matlab operaciones matemáticas


Ans= 12

>> 4*5+6*22+2*99
Ans= 430

El punto y coma al final de la línea, le dice a matlab que evalué la línea pero que no nos diga
la respuesta.

>> n1=12 % tambien podemos almacenar información en una variable.


>> n2=14; % El punto y coma al final hace que no nos muestre la respuesta.

>>promedio=(N1+N2)/2
promedio = 13

>>3^2 – 5 - 6/(3*2)

Operadores Aritméticos y Lógicos

OPERADOR FUNCION QUE CUMPLE


+ Suma de escalares, vectores o matrices
- Resta de escalares, vectores o matrices
* Producto de escalares o matrices
.* Producto de escalares o de vectores
/ Cociente escalar o B/A=B*inv(A), donde A y B son matrices
./ A./B=[A(i,j)/B(i,j)], donde A y B son vectores [dim(A)=dim(B)]
^ Potencia de escalares o potencia escalar de matriz (Mp)
.^ Potencia de vectores (A.^B)=[A(i,j)B(i,j)],donde A y B son vectores
-= a -= b Establece la condición de a  b.
> a > b Establece la condicion de a mayor que b
< a < b Establece la condicion de a menor que b
>= a >= b Establece la condicion de a mayor o igual que b
<= a <= b Establece la condicion de a menor o igual que b
6

a b Establece la disyuncion de a o b
== A == b Establece la condicion de a igual a b

Las operaciones matemáticas simples entre escalares y vectores aplican el escalar todos
los elementos del vector según la operación definida y las operaciones simples entre
vectores se realizan elemento a elemento, hay que tener presente que los vectores han
de ser de la misma longitud.

>>X=[4,2,6]; Y=[2,5,3];
>>a=X+Y
>>b=X-Y
>>c=X.*Y
>>d=2.*X
>>e=2./X
>>f=X./Y
>>g=X.^2
>>h=2.^X
>>i=X.^Y

Comandos de Ayuda

Help: Para saber el significado de un comando digite help, seguido del comando del cual
se desea obtener información.

>>help quit
>>help + % nos permite visualizar caracteres y operadores especiales del matlab.
>>what % produce una lista de archivo.
>>who % produce una lista de las variables del espacio de trabajo actual.
>>doc help % permite visualizar el documento de ayuda.

Funciones Básicas
Variables

Las variables no pueden comenzar con un número, aunque si pueden tener números en
su estructura.
Las mayúsculas y minúsculas se diferencian en los nombres de las variables.
Los nombres no pueden utilizar operadores ni punto. No es valido usar / * - + . ; : ^
Una variable puede tener hasta 31 caracteres.

>>r=5;
>>area=2*pi*r
area = 31.4159

>>clear r % borra simplemente la variable r de la memoria de trabajo


>>clear r area % borra ambos r y área.
>>clear % borra todas las variables usadas de la memoria.
>>clc % limpia la información de la pantalla de comandos

Matlab tiene variables especiales que son las siguientes:


7

Variables Valor
Ans Nombre por defecto de las variables usada por los resultados
Pi Razón de una circunferencia a su diámetro
Eps Número mas pequeño tal que, cuando se le suma 1, crea un
numero en coma flotante en el computador mayor que 1
Inf Infinito, p. e.,1/0
NaN Magnitud no numérica (Not-a-Number), p.e.,0/0
iyj Imaginario i = j =  1
realmin El número real positivo más pequeño que es utilizable 2-1022
Relamas El número real positivo más grande que es utilizable (2-e) 2 1023

Formatos de visualización de números

Es posible modificar el formato numérico por defecto especificando un formato numérico


diferente usando la opción numerical format en el menú option o escribiendo la orden
apropiada en matlab.

Orden de matlab Comentarios


Format short Visualización por defecto con 4 cifras decimales
Format short e 4 decimales + la potencia de 10 necesaria
Format long Ofrece el resultado con 16 cifras decimales
Format long e 16 decimales + la potencia de 10 necesaria
Format hex Hexadecimal
Format bank 2 dígitos decimales
Format + Positivo, negativo o cero
Format rat Aproximación racional
vpa´operaciones´ n Ofrece el resultado con n digitos decimales exactos
digits(n) Ofrece los resultados con n digitos exactos

Es importante observar que matlab no cambia la representación interna de un número


cuando se escogen diferentes formatos; solo se modifica la visualización del número.
>>pi
ans =
3.1416
>>format long
>>pi
ans =
3.14159265358979

Funciones Matemáticas

Una lista parcial de las funciones comunes que posee Matlab se muestra en la tabla que
sigue. La mayoría de estas funciones se utilizan de la misma forma en que ustedes las
escribe matemáticamente:
>>a=3;
>>b=4;
>>hipot=sqrt(a^2+b^2)
hipot = 5
8

>>x=sqrt(2)/2
x = 0.7071

>> y=asin (x)


y = 0.7854

>> yengrados=y*180/pi
yengrados= 45.0000

Estas ordenes encuentran el ángulo donde la función seno tiene un valor de 2 /2


Mientras que su calculadora puede trabajar en grados o radianes, MATLAB solo opera
en radianes, donde 2π radianes es igual a 360 grados.

>> y=sqrt(3^2+4^2) % muestra que 3-4-5 son lados de un triángulo rectángulo


>> y=rem(23,4) % nos muestra el resto de 23/4
>>x=2.6, y1=fix(x), y2=floor(x), y3=ceil(x), y4=round(x)
x = 2.6000
y1 = 2
y2 = 2
y3 = 3
y4 = 3

Funciones Trigonometricas
sin(x) Seno de x
asin(x) Arco seno de x
abs(x) Valor absoluto o magnitud de un numero complejo
sinh(x) Seno hiperbolico de x
asính(x) Arcoseno hiperbolico de x
cos(x) Coseno de x
acos(x) Arcocoseno de x
cosh(x) Coseno hiperbólico de x
acosh(x) Arco coseno hiperbólico de x
tan(x) Tangente de x
atan(x) Arcotangente de x
tanh(x) Tangente hiperbolico de x
atanh(x) Arcotangente hiperbolico de x
cot(x) Cotangente de x
sec(x) Secante de x
csc(x) Cosecante de x

Los corchetes se utilizan para definir una variable con múltiples valores

>> x = [0.8, 0.9, 0.1; 0.8, 0.9, 0.1; 0.4, 0.9, 0.6];
>> z=asin(x)
>> y=sech(x)

Otras Funciones Matemáticas


Abs(x) Valor absoluto de x
9

Sqrt(x) Raíz cuadrada de x


Real(x) Parte real de un número complejo x
imag(x) Parte imaginaria de un número complejo x
Sign(x) Función signo: devuelve el signo del argumento,
p.e.,sign(1.2)=1, sing(-23.4)=-1, sing(0)=0
Exp(x) Exponencial ex
log(x) Logaritmo natural de x
log10(x) Logaritmo decimal de x
log2(x) Logaritmo en base 2 de x
Min(x) Devuelve el valor mínimo de un arreglo x
Max(x) Devuelve el valor máximo de un arreglo x
Sort(x) Ordena elementos del arreglo x ascendentemente
Sum(x) Suma de todos los elementos de un arreglo x
Num2str(x) Convierte en cadena el número x
Str2double(x) Convierte en número real la cadena x
Ceil(x) Redondea hacia mas infinito
conj(x) Complejo conjugado
angle(x) Angulo de un número complejo
fix(x) Redondea hacia cero
floor(x) Redondea hacia menos infinito
Rem(x,y) Restos después de la división: rem (x,y) da resto de
x/y
Round(x) Redondea hacia el entero mas próximo

>> x=[-1,5,-3, - 9];


>> abs(x)

>> x=3 + 2i;


>> imag(x) % nos muestra la parte imaginaria del número
>> real(x) % nos muestra la parte real del número

>> x=[2,1,7, 0];


>> sort(x)
>> sort([2,1,7, 0]')

Números complejos

Para ilustrar los números complejos, considere la ecuación cuadrática ax2 +bx+c=0.
Los valores de x donde esta ecuación es cierta, i.e. las raíces de estas ecuaciones vienen
dadas por:

x1,x2 =
b b 2
 4ac 
2a
Si a=1, b=4, c=13 las soluciones son:

x1= -2+3  1
x2= -2-3  1
Las soluciones son complejas. Los términos -2 en x1 y x2 son la parte real de la solución.
Los términos 3 y -3 son las partes imaginarias de las soluciones.
10

>>a=1; b=4; c=13;


>>x1 =(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-2.0000 + 3.0000i
>>x2 =(-b-sqrt(b^2-4*a*c))/(2*a)

x2 =
-2.0000 - 3.0000i

Matrices y Arreglos

Arreglo.- Es un conjunto de números, ordenados en filas y columnas.

>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas

x=
1 4 5 8
5 0 0 2
0 1 -7 3

>> x = [1,2,10,3] % crea un arreglo unidimensional

>> x (3) % nos devuelve el elemento ubicado en la tercera posición.

>> x = [1; 8; 3; 4] % crea un arreglo en una columna.

>> x = 1 : 0.5: 4 % crea un arreglo de una razón constante.

>> x(8) = 6 % adiciona un elemento a la matriz x en la octava posición.

Arreglos Bidimensionales

>> x = [1,4,5,8; 5,0,0,2; 0,1,-7,3] % crea un arreglo de 3 filas por 4 columnas

>> x(2,3) % visualiza el elemento de la segunda fila y tercera columna.

>> x(1,:) % visualiza todos los elementos de la primera fila.

>> x(:,3) % visualiza todos los elementos de la tercera columna.

Operadores Aritméticos de Arreglos

Adición de Arreglos.- Realiza la suma de los elementos de los arreglos de acuerdo a su


posición.

>> a = [1,4; 5,2]


>> b = [2,1; 3,4]
>> c = a + b
11

c= 3 5
8 6

>> b = a +2 % suma 2 unidades a cada elemento del arreglo.

Sustracción de Arreglos

>> a = [1,4; 5,2]


>> b = [2,1; 3,4]
>> d = a - b

Multiplicación de Arreglos

>> a = [1,4; 5,2; 3,7]


>> b = [2,1; 3,4; 2,6]
>> e = a .* b

Multiplicación de un Arreglos por un número

>> a = [1,4; 5,2; 3,7]


>> f = -2 * a

División de Arreglos.- realiza el cociente de cada elemento de los arreglos de acuerdo a


su posición.

>> a = [1,4; 5,2; 3,7]


>> b = [2,1; 3,4; 2,6]
>> g = a . / b

Matriz.- Es un arreglo rectangular de números reales o complejos ordenados en filas y


columnas.

Producto de Matrices
>> F=[3 -2 7; 6 5 4; 0 4 9] % matriz de orden 3x3
F=
3 -2 7
6 5 4
0 4 9

>> G=[1 7; 0 4; 2 9] % matriz de orden 3x2


G=
1 7
0 4
2 9

>> H=F*G
H=
17 76
14 98
18 97
12

3(1)-2(0)+7(2)=17 6(1)+5(0)+4(2)=14 0(1)+4(0)+9(2)=18


3(7)-2(4)+7(9)=76 6(7)+5(4)+4(9)=98 0(7)+4(4)+9(9)= 97

otro ejemplo
>> A=[2 3 1; 1 -1 1; 0 2 2]
>> B=[1 2 1; -1 2 -1; 2 0 2]
>> C=A*B
C=
1 10 1
4 0 4
2 4 2
Transpuesta de una Matriz .- La matriz transpuesta se obtiene intercambiando filas
por columnas.

>> A=[1 -3 0 -2; 3 -12 -2 -6; -2 10 2 5; -1 6 1 3]

A=
1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3

>> Y=A'

Y=
1 3 -2 -1
-3 -12 10 6
0 -2 2 1
-2 -6 5 3

>> I=[1 0 0; 0 1 0; 0 0 1] % matriz identidad de tercer orden

Inversa de Matrices

>> B=[22 -6 -26 17; -17 5 20 -13; -1 0 2 -1; 4 -1 -5 3]

B=
22 -6 -26 17
-17 5 20 -13
-1 0 2 -1
4 -1 -5 3

>> Y=inv(B)
Y=
1.0000 2.0000 3.0000 4.0000
2.0000 3.0000 1.0000 2.0000
1.0000 1.0000 1.0000 -1.0000
1.0000 0 -2.0000 -6.0000
13

CAPITULO
2
2. GRAFICAS CON MATLAB

2.1 Objetivo: Aprender hacer gráficos en el plano y el espacio usando el Matlab

Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones


gráficas. Permite realizar gráficos de curvas planas y superficies, posibilitando la
agrupación y superposición.

Gráficos en el Plano

Comandos Descripción
plot(x,y) Grafica el conjunto de puntos (x,y) en un sistema cartesiano
bar(x,y) Gráfico de barras vertical, donde y representa la frecuencia y x
define los espacios en el eje x.
Barh(x,y) Gráfico de barras horizontal.
Ítem(x,y) Gráfico de bastones verticales.
stairs(x,y) Grafica una curva escalonada.
Polar(x,y) Dibuja una curva en coordenadas polares. y=y(x)
Pie(x) Realiza el gráfico de sectores relativo al vector x.
Rose(x) Dibuja el histograma angular relativo al vector x.

Los gráficos son una poderosa forma visual de interpretar datos. Realizar la gráfica de
una función seno durante un período, por ejemplo:

Graficar y = sin(x) para 0<=x<=2pi.


En primer lugar, creamos 30 puntos entre 0 y 2pi.

>> x = linspace(0,2*pi,40); % crea 40 puntos entre 0 y 2pi.


>> y = sin(x); % calcula el seno de los puntos en x.
>> plot(x,y) % la orden plot genera una grafica :

Se pueden graficar al mismo tiempo muchas curvas suministrando parejas adicionales


de argumentos a plot.

>> x = linspace(0,2*pi,40);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y,x,z)
14

El siguiente ejemplo ilustra la identidad trigonométrica 2sin(a)cos(a) = sin2(a). La gráfica


de 2sin(a)cos(a) se representa utilizando líneas y trazos.

>> plot(x,y,x,2*y.*z,'r*')
>> grid % para colocar una rejilla en los puntos marcados sobre los ejes
>> xlabel(‘Variable Independiente x’) % para colocar una etiqueta sobre el eje x
>> ylabel ( ‘ Variable dependiente’) % para colocar una etiqueta sobre el eje y
>> title (‘ 2sin(x)cos(x) = sin(2x) ‘) % para colocar un titulo sobre la grafica actual

Estilo de líneas, marcadores y colores

Con MATLAB se puede especificar los colores y los estilos de línea que necesita dando
un argumento adicional a plot después de cada pareja de arrays de datos.

Símbolo Color Símbolo Estilo de línea


y amarillo . punto
m magenta o círculo
c turquesa x marca - x
r rojo + más
g verde * estrella
b azul * línea sólida
w blanco : línea punteada
k negro -. línea punto-raya
-- línea de trazos

>> plot(x,y,'bo',x,z,'r--',x,y,'k*',x,z,'c.')
15

Para añadir una etiqueta identificando


la curva del seno en la localización (2.5,0.7):

>> text (2.5,0.7,’sin(x)’)

histograma de una curva en forma de campana de datos gausianos:

>> x=-3 :0.2 :3; 1


grafico de Barras

>> y=exp(-x.^2); 0.9

>> bar(x,y) 0.8

0.7
>> grid on 0.6

>> title('grafico de Barras') 0.5

0.4

0.3

0.2

0.1

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

>> x=0 :0.2 :10;


>> y=sin(x);
>> stairs(x,y);
>> grid on
>> title('grafico tipo stairs')

gráficos en coordenadas polares utilizando la orden polar (t, r), donde t es el vector de
ángulos en radianes, r es el radio vector

>> t=0 : .01 : 2*pi;


>> r=sin(2*t).*cos(2*t);
>> polar(t,r)
>> title('Coordenadas Polares de: sin(2t)cos(2t)’)
16

La orden subplot (m, n, p) subdivide la ventana de la figura actual en una matriz mxn de
las áreas de representación gráfica y escoge como activa el área p-ésima. Las
subgráficas se numeran de izquierda a derecha a lo largo de la lila superior, luego la
segunda fila, etc. por ejemplo:

% ejemplo de Grafico en múltiples ejes


>> x=linspace(0,2*pi,30);
>> y=cos(x);
>> z=sin(x);
>> a=y.*z+58;
>> f=tan(x);
>> g=z+a+f;
>> u=y.*z.*a;
>> subplot(3,2,1), plot(x,y,'r-'), title( 'Grafico No 1' );
>> subplot(3,2,2), plot(x,z,'mo'), title( 'Grafico No 2' );
>> subplot(3,2,3), plot(x,a,'g*'), title( 'Grafico No 3' );
>> subplot(3,2,4), plot(x,f,'b+'), title( 'Grafico No 4' );
>> subplot(3,2,5), plot(x,g,'k--'), title( 'Grafico No 5' );
>> subplot(3,2,6), plot(x,u,'c:'), title( 'Grafico No 6' );

Puede añadir líneas a una gráfica existente usando la orden hold on.

>> x=linspace(0,2*pi,30);
>> y=sin(x);
>> z=cos(x);
>> plot (x, y)

Ahora mantiene la gráfica anterior y añade una curva coseno.


>> hold on
>> plot (x,z,'r*')
>> hold off % para desactivar hold on
17

fplot : Grafica una función f en el intervalo [ a,b]

>> fplot ('cos(x)', [-3,3])

Loglog(x,y) : Realiza una gráfica cartesiana con escala logarítmica.

>> x= 1:0.2:10;
>> y = 11 + exp(-x.^2);
>> loglog(x,y);

t=0.1:0.1:3;
semilogy(t,exp(t.*t))
grid
xlabel('t'); ylabel('exp(t.*t)'); title(' Grafica semilogaritmica...')

t=0.1:0.1:3;
semilogx(t,exp(t.*t))
grid
xlabel('t'); ylabel('exp(t.*t)'); title(' Grafica semilogaritmica...')

Gráfica de Superficies

Plot3(x,y,z): Realiza una gráfica de un conjunto de puntos x,y,z en un sistema de 3


dimensiones.

El ejemplo siguiente genera una gráfica 3-D con una rejilla.

>> x = linspace(0,2*pi,30); % crea 30 puntos entre 0 y 2pi.


>> y = sin(x); % calcula el seno de los puntos en x.
>> z = cos(x);
>> plot3(y,z,x), grid

>> t = -8:0.2:8; % crea puntos entre -8 y 8.


>> x = t;
>> y = 3-t ;
>> z=cos(t);
>> plot3(x,y,z), grid
18

mesh(x,y,z) : Grafica una superficie explicita z=f(x,y) con los arreglos x, y e z.

>> [x,y] = meshgrid(-2:0.2:2);


>> z = x.*exp(-x.^2-y.^2)
>> mesh(x,y,z)
>> title('Z=X.*exp(-x. ^2 – y.^2)');

cylinder('f'): Grafica una superficie de revolución generada por la rotación de la función


f=f(t) en el intervalo definido para t.

explicita z=f(x,y) con los arreglos x, y e z.

>> t = 0:0.2:7;
>> cylinder(2+sin(t));
>> title(' 2 + sin( t )');
>> xlabel('eje x') ; ylabel('eje y') ; zlabel('eje z')
19

CAPITULO
3
3. PROGRAMACION EN MATLAB

3.1 Objetivo: Aprender las bases de la programación en Matlab.

Programa informático (software) es la unión de una secuencia de instrucciones que una


computadora puede interpretar y ejecutar y una (o varias) estructuras de datos que almacena la
información independiente de las instrucciones que dicha secuencia de instrucciones maneja.
Para ello se usan lenguajes de programación que sirven para programar la secuencia de
instrucciones requerida.

Ejemplos de Lenguajes de Programación: Pascal, Basic, Fortran, Lenguaje C, Matlab etc.


Software de Simulación: Simulink, Chemcad, Labview etc.

Programación.- Se llama programación a la creación de un programa de computadora, un


conjunto concreto de instrucciones que una computadora puede ejecutar. El programa se escribe
en un lenguaje de programación, Un programa se puede dividir en diversas partes, que pueden
estar escritas en lenguajes distintos.

Algoritmo.- Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar
una tarea y/o resolver un problema. De un modo más formal, un algoritmo es una secuencia finita
de operaciones realizables, no ambiguas, cuya ejecución dá una solución de un problema en un
tiempo finito.
Estructura Básica:

1. inicio
2. datos de entrada (operaciones básicas)
3. procesamiento de los datos
4. datos de salida
5. fin

Diagrama de Flujo.- Un Diagrama de Flujo representa la


esquematización gráfica de un algoritmo , el cual muestra
gráficamente los pasos o procesos a seguir para alcanzar
la solución de un problema . Su correcta construcción es
sumamente importante porque , a partir del mismo se
escribe un programa en algún Lenguaje de Programación.
Si el Diagrama de Flujo está completo y correcto, el paso
del mismo a un Lenguaje de Programación es relativamente
simple y directo.
20

Programación en Matlab

MATLAB es una aplicación que se puede programar muy fácilmente. De todas formas,
como lenguaje de programación pronto verá que no tiene tantas posibilidades como otros
lenguajes (ni tan complicadas...). Se comenzará viendo las bifurcaciones y bucles, y la
lectura y escritura interactiva de variables, que son los elementos básicos de cualquier
programa de una cierta complejidad.

Control del Flujo.- Controlar el flujo es determinar el orden en el que se ejecutarán las
instrucciones en nuestros programas. Si no existiesen las sentencias de control entonces
los programas se ejecutarían de forma secuencial, empezarían por la primera instrucción
e irían una a una hasta llegar a la última.

Bifurcaciones.- Las bifurcaciones permiten realizar una u otra operación según se


cumpla o no una determinada condición. – Bifurcarse significa dividirse en 2 o mas
caminos.

La Figura muestra las posibles formas de bifurcación.

if n==0;
' el numero es CERO '
end

if n==0;
' el numero es CERO '
else
' el numero puede ser POSITIVO o NEGATIVO'
end
21

if n==0;
' el numero es CERO '
else
if n>0
' el numero es POSITIVO '
else
'el numero es NEGATIVO '
end
end

Bucles.- Los bucles permiten repetir las mismas o


análogas operaciones sobre datos distintos, Un bucle no es más que una serie de
instrucciones que se repiten.
Bucle se utiliza para hacer una acción repetida sin tener que repetir varias veces el mismo
código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el
futuro.

Los bucles más utilizados en programación son el mientras y el para.

Bucle For

El bucle for o bucle para repite un conjunto de sentencias un número predeterminado


de veces.
El bucle for es la única de las repetitivas que no depende de una expresion. En su
ejecución no es necesario chequear ninguna condición.

for a = 0 : 1 : t for var = vector for a=0 : 1 : t


sentencia 1
sentencia 2 v=[a, a^2,a^3]
...
v=[a, a^2,a^3]
sentencia n
end end

for i = vectorValores
sentencias
end

Donde vectorValores es un vector con los distintos valores que tomará la variable i.

En el siguiente ejemplo se presenta una estructura correspondiente a dos bucles


anidados. La variable j es la que varía más rápidamente (por cada valor de i, j toma
todos sus posibles valores):

for i = 1 : m
for j = 1 : n
22

sentencias
end
end

Una última forma de interés del bucle for es la siguiente (A es una matriz):

for i = A
sentencias
end

En la que la variable i es un vector que va tomando en cada iteración el valor de una de


las columnas de A.
Bucle While

El bucle while o bucle mientras es una estructura de la mayoría de los lenguajes de


programación estructurados cuyo propósito es repetir un bloque de código mientras una
condición se mantenga verdadera.

Este bucle se utiliza cuando queremos repetir la ejecución de unas sentencias un número
indefinido de veces, siempre que se cumpla una condición, como veremos a
continuación, la condición que se tiene que cumplir para que se realice una iteración.

v1=input('ingrese velocidad del movil 1:');

while v1 <= 0 %restringe velocidades negativas y 0

'ingrese velocidad positiva'


v1=input(' ingrese velocidad del movil 1: ');

end

While Condición

sentencia 1
sentencia 2
...
sentencia n

end

Función Input

La función 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.

>> n = input ('Ingrese el número de ecuaciones:' )


23

Ingrese el número de ecuaciones: 5


n= 5

Otra posible forma de esta función es la siguiente (obsérvese el parámetro 's'):

>> nombre = input('Ingrese su nombre: ','s') %s indica que la entrada que se hará por
teclado es una cadena

Ingrese su nombre: Helmer


nombre = Helmer

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 teclea una fórmula,
se almacena como texto sin evaluarse.

Función Disp

La función disp permite imprimir 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,4);
>> disp(A)

Ejecútense las sentencias anteriores en MATLAB y obsérvese la diferencia entre las dos
formas de imprimir la matriz A.

>> a=[1:10];
>> b=[-10:-1];
>> disp([a;b])

Da como salida:

1 2 3 4 5 6 7 8 9 10
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
24

CAPITULO
4
4. PROGRAMAS DE APLICACION
4.1 Objetivo: Consolidar los conocimientos de programación en matlab.

Ejemplos de Programas con: IF … END

Programa nos permite determinar si el número ingresado por teclado es positivo,


negativo o cero. (aplicación del IF … END).
clc, clear all
n=input(' ingresa un numero :');
if n==0;
' el numero es CERO '
else
if n>0
' el numero es POSITIVO '
else
' el numero es NEGATIVO '
end
end

Programa que determinar si el número ingresado por teclado es par o impar.


clc, clear all
n=input(' ingresa un numero :');
if n==0;
fprintf (' el numero ingresado es CERO ')
else
if rem(n,2)==0; %obtiene el resto de dividir n entre 2
fprintf (' el numero es PAR ')
else
fprintf (' el numero es IMPAR ')
end
end

Programa para ingresar 3 notas y promediarlos, luego imprimir si el alumno esta


aprobado o desaprobado.
clc
25

clear all
n1=input('Ingrese la nota 1: ');
n2=input('Ingrese la nota 2: ');
n3=input('Ingrese la nota 3: ');
suma= n1+n2+n3
promedio = suma/3
if promedio>=10.5
' Alumno APROBADO '
else
' Alumno DESAPROBADO '
end
Ejemplos de Programas con: FOR … END

El siguiente ejemplo creará un bucle que después realizará una suma de los 5 primeros
números.

clc 1 1
s=0; 2 3
for n=1:5 3 6
s=n+s; 4 10
disp([n s ]) 5 15
end

Realizar un programa para convertir los grados Celsius a grados Kelvin

clc;clear all
c=input('ingrese un valor en grados celsius:'); %grados celsius
disp([' CELSIUS KELVIN' ])
for x=c-5:c+5;
kelvin=x+273;%grados kelvin
disp([x kelvin])
end

Programa que ejecuta sentencias con valores de x de 1 hasta 9.

clc; clear all


disp([' X Y ' ])
for x=1:2:9
y=x.^2 - 1;
disp([x , y ]);
end

Realizar un programa que nos permita ingresar un número y obtener el número de


divisores.

clc; clear all


26

n=input(' ingrese un número: ');


c=0; %contador para el numero de divisores
for x=1:n
if mod(n,x)==0 %bucle solo para resto 0
disp([x])
c=c+1;
end
end
'el numero de divisores es'
disp([c])

Ejemplos de Programas con: WHILE … END

Programa para hallar el promedio de un número determinado de datos.

clc, clear all


n=0;
while n<=1;
n=input('Ingrese el número de datos a promediar :');
end
sum=0;
c=0;
nota=0;
while nota>-1 & nota<=20
while c<n
nota=input('ingrese el dato a promediar :');
if nota>=0 & nota<=20
sum=sum+nota;
c=c+1;
end
end
nota=21;
end
p=sum/c;
disp(' ')
disp('El promedio de los datos ingresados es :')
disp(p)

Realizar un programa para hallar el factorial de un número ingresado por teclado

clc, clear all


n=input(' ingrese el NUMERO POSITIVO : ');
fa=1;
while n<0; %restricción para los negativos'
n=input(' se te dijo que ingresaras un NUMERO POSITIVO: ');
end

if n==0; %restricción para el 0


disp('El FACTORIAL del número ingesado es :')
27

disp(fa)
else
for i=1:n; %bucle de multiplicación hasta n
fa=fa*i;
if i==n;
disp('El FACTORIAL del número ingesado es :')
disp(fa)
end
end
end

Ajuste de Curvas con Matlab

Se realiza una prueba de funcionamiento de un equipo en la cual se toman datos de la


temperatura en grados Fahrenheit durante los 9 primeros segundo y se obtienen los siguientes
datos
Tiempos 0 1 2 3 4 5 6 7 8 9
Temperaturas 0 10 15 38 52 68 70 84 104 109

Realizar un programa para el ajuste de datos a un modelo lineal, polinomial cuadrático,


REGRESION LINEAL
polinomial cúbico y cuarto grado. 160

140

x = 0:9; 120
y = [0, 5, 23, 38, 42, 48, 65, 88, 105, 145];
TEMPERATURA EN oF

100
coef = polyfit(x, y, 1)
80
m=coef(1);
b=coef(2); 60

y1 = m.*x+b; 40

plot(x, y1, x, y, 'o'), title('REGRESION LINEAL') 20

xlabel ('TIEMPO EN SEGUNDOS') 0


Ylabel ('TEMPERATURA EN ºF') -20
0 1 2 3 4 5 6 7 8 9
TIEMPO EN SEGUNDOS
coef = 14.6485 -10.0182 % con este dato se obtiene la ecuación:

Se observa que el modelo lineal ajustado tiene la ecuación:

y = 14.6485 x + -10.0182

Para realizar un mejor ajuste de datos usaremos un modelo polinomial cuadrático:


x = 0:9;
y = [0, 5, 23, 38, 42, 48, 65, 70, 90, 120 ];
coef = polyfit(x, y, 2)
a=coef(1);
b=coef(2);
c=coef(3);
y2 = a*x.^2 + b * x + c;
plot(x, y2, x, y, 'o'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN ºF')

Para realizar un mejor ajuste de datos usaremos un modelo polinomial cúbico:


x = 0:9;
y = [0, 5, 23, 38, 42, 48, 65, 88, 105, 145 ];
28

coef = polyfit(x, y, 3)
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
y3 = a*x.^3 + b*x.^2 + c * x + d;
plot(x, y3, x, y, 'o'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
Ylabel ('TEMPERATURA EN oF')

REGRESION LINEAL
160

140

120

TEMPERATURA EN oF
100

coef = 80

60
0.2925 -2.7751 17.5664 -3.2993
40

y= 0.2925x3 + -2.7751x2 +17.5664x -3.2993 20

-20
0 1 2 3 4 5 6 7 8 9
TIEMPO EN SEGUNDOS

Para realizar el mejor ajuste de datos usaremos un modelo polinomial de cuarto


grado:

x = 0:9;
y = [0, 5, 23, 38, 42, 48, 65, 88, 105, 145];
coef = polyfit(x, y, 4)
a=coef(1);
b=coef(2);
c=coef(3);
d=coef(4);
e=coef(5);
y4 = a*x.^4 + b*x.^3 + c*x.^2 + d*x + e;
plot(x, y4, x, y, 'o'), title('REGRESION LINEAL')
xlabel ('TIEMPO EN SEGUNDOS')
ylabel ('TEMPERATURA EN oF')

coef = 0.0338 -0.3159 0.6387 11.4825 -1.8392

Se observa que el polinomio de cuarto grado ajustado tiene la ecuación:

y = 0.0338x4 -0.3159x3 + 0.6387x2 +11.4825x -1.8392

REGRESION LINEAL
160

140

120
TEMPERATURA EN oF

100

80

60

40
29

Programa Aplicado a la Cinemática

%este programa nos permite hallar la velocidad y la aceleración si la ecuación del


desplazamiento es x = t^3 - 6t^3 - 15t + 40 y las graficas:
%a).- tiempo-distancia
%b).- tiempo-velocidad
%c).- tiempo-aceleración
%para el tiempo = 0 hasta el valor del tiempo ingresado por teclado
clc, clear all
disp('=======================================================')
disp('PROGRAMA PARA HALLAR LAS GRAFICAS DEL DESPLAZAMIENTO ')
disp('----- VELOCIDAD Y ACELERACION EN FUNCION AL TIEMPO ------------')
disp('=======================================================')
disp('ecuacion del desplazamiento x = t.^3-6*t.^2-15*t+40')
disp('ecuacion de la velocidad (d(x)/d(t)) v = 3*t.^2-12*t-15 ')
disp('ecuacion de la aceleracion (d(v)/d(t)) a = 6*t-12 ')
t=0;
while t<=0
t=input('ingrese un valor positivo para el tiempo tiempo: ');
end

disp ([' T E V A'])


for t=0:t;%el tiempo va desde 0 hasta t segundos
x=t.^3-6*t.^2-15*t+40;%la distancia esta dada por la funcion
v=3*t.^2-12*t-15;%la distancia se halla con la primera derivada
a=6*t-12;%la aceleracion se halla con la segunda derivada
disp ([t x v a])
end

%hallando graficas:
t=1:0.1:t;
x=t.^3-6*t.^2-15*t+40;
v=3*t.^2-12*t-15;
a=6*t-12;
subplot(2,2,1),plot(t,x,'-r'),title('Grafica Tiempo/Espacio'),
xlabel('tiempo(seg)'),ylabel('distancia(m)'),grid
subplot(2,2,2),plot(t,v,'-g'),title('Grafica Tiempo/Velocidad'),
xlabel('tiempo(seg)'),ylabel('velocidad(m/s)'),grid
subplot(2,2,3),plot(t,a,'-b'),title('Grafica Tiempo/Aceleración'),
xlabel('tiempo(seg)'),ylabel('aceleracion (m/s^2)'),grid
30

EJECUTANDO EL PROGRAMA:
=======================================================
PROGRAMA PARA HALLAR LAS GRAFICAS DEL DESPLAZAMIENTO
----- VELOCIDAD Y ACELERACION EN FUNCION AL TIEMPO ------------
=======================================================
ecuación del desplazamiento x = t.^3-6*t.^2-15*t+40
ecuación de la velocidad (d(x)/d(t)) v = 3*t.^2-12*t-15
e cuación de la aceleracion (d(v)/d(t)) a = 6*t-12
ingrese un valor positivo para el tiempo : 10
T E V A
0 40 -15 -12
1 20 -24 -6
2 -6 -27 0
3 -32 -24 6
4 -52 -15 12
5 -60 0 18
6 -50 21 24
7 -16 48 30
8 48 81 36
9 148 120 42
10 290 165 48
31

Programas Aplicados a la integración de Funciones

%este programa sirve para integrar por integrales numéricas %por el método de
%SIMPSON una función dada
%y para graficar dicha función.
clc
disp(' INTEGRACION NUMERICA CON EL METODO DE SIMPSON')
f=input('ingrese la función a integrar f(x)= ','s');%FUNCION
a=input('ingrese limite inferior: ');
b=input('ingrese limite superior: ');
n=input('ingrese numero de trapecios: ');
n=2*n;xmin=a-1;xmax=b+1;
h=(b-a)/n;
x=a:h:b;
fx=eval(f);y=abs(fx);
suma1=y(1)+y(n+1);
suma2=4*sum(y(2:2:n));
suma3=2*sum(y(3:2:n-1));
suma=suma1+suma2+suma3;
integral=(h/3)*suma;
fprintf('el área es :%10.9f\n',integral);
%grafica
xp=xmin:0.2:xmax;
x=xp;
yp=eval(f);
plot(xp,yp,'g');
hold on
x=a:0.05:b;
y=eval(f);
bar(x,y,'r');

INTEGRACION NUMERICA CON EL METODO DE SIMPSON

ingrese la función a integrar f(x)= sqrt(x.^2+x.*3+2)


ingrese limite inferior: 2
ingrese limite superior: 9
ingrese número de trapecios: 10
el área es :48.862387973
32

Programa Aplicado al Cálculo de Concentraciones en Equilibrio

%calcular las concentraciones en equilibrio y hallar cúal es el pH en una disolución de amoniaco


.a 0.400M si la constante de velocidad es 1.8x10^-5.

NH3(ac) +H2O(l) NH4(ac) +OH(ac)


% A+B--C+D
Kb=input('ingrese la constante de velocidad :');
[A]=input('ingrese concentración inicial :');
while [A]<=0
'la concentracion debe ser positiva'
[A]=input('ingrese concentración inicial :');
end
% Kb=([C]*[D])/[A]
x=((Kb)^0.5)*[A]
% hallando las concentraciones en equilibrio
Ea=([A]-x);
Ec=x;
Ed=x;
disp('las concentraciones en equilibrio son :')
disp([Ea Ed Ec])
%hallando el pH
pOH=-log10(Ed);
pH=14-pOH;
disp('el pH de la reacción es :')
disp(pH)
if pH< 7
'el pH es básico'
else
if pH==0
' el pH es neutro'
else
if pH>7
'el pH es básico'
end
end
end

SALIDA:
ingrese la constante de velocidad :1.8*10^-5
33

ingrese concentración inicial :0.400


x=
0.0017
las concentraciones en equilibrio son :
0.3983 0.0017 0.0017
el pH de la reacción es :
11.2297
ans =
el pH es básico

Programas Aplicados a Los Sistemas de Ecuaciones Lineales

%método de la bisección para los sistemas de ecuaciones


fprintf(‘\n’);
nombre_f=input(‘ ingrese función asociada f(x)= ‘,’s’);
a=input(‘ ingrese limite inferior: ‘);
b=input(‘ ingrese limite superior: ‘);
fprintf(‘\n’);
fprintf(‘ it a b aprox error\n’);
i=1;e=1; r=0;
while e>=3E-6 & i<=10
va=r;
r=(a+b)/2;
x=a;fa=eval(nombre_f);
x=b;fb=eval(nombre_f);
x=r;fr=eval(nombre_f);
fprintf(‘ %3.0f %10.6f %10.6f %10.6f’,I,a,b,r);
if fa*fr<=0
b=r; e=abs((r-va)/r);
fprintf(‘ %10.6f\n’,e);
else
a=r; e=abs((r-va)/r);
fprintf(‘ %10.6f\n’,e);
end
i=i+1;
end
fprintf(‘\n’); fprintf(‘la raíz es: %10.9f\n’, r);

SALIDA:

ingrese función asociada f(x)= x^3+3*x


ingrese límite inferior: 4
ingrese límite superior: 8

it a b aprox error
1 4.000000 8.000000 6.000000 1.000000
2 6.000000 8.000000 7.000000 0.142857
3 7.000000 8.000000 7.500000 0.066667
4 7.500000 8.000000 7.750000 0.032258
5 7.750000 8.000000 7.875000 0.015873
34

6 7.875000 8.000000 7.937500 0.007874


7 7.937500 8.000000 7.968750 0.003922
8 7.968750 8.000000 7.984375 0.001957
9 7.984375 8.000000 7.992188 0.000978
10 7.992188 8.000000 7.996094 0.000489

la raiz es: 7.996093750

%método de la regla falsa


fprintf('\n');
nombre_f=input(' ingrese función asociada f(x)= ','s');
a=input(' ingrese límite inferior: ');
b=input(' ingrese límite superior: ');
fprintf('\n');
fprintf(' it a b aprox error\n');
i=1;e=1; r=0;
while e>=3E-6 & i<=10
va=r;
r=(a+b)/2;
x=a;fa=eval(nombre_f);
x=b;fb=eval(nombre_f);
x=r;fr=eval(nombre_f);
fprintf(' %3.0f %10.6f %10.6f %10.6f',i,a,b,r);
if fa*fr<=0
b=r; e=abs((r-va)/r);
fprintf(' %10.6f\n',e);
else
a=r; e=abs((r-va)/r);
fprintf(' %10.6f\n',e);
end
i=i+1;
end
fprintf('\n'); fprintf('la raíz es: %10.9f\n', r);

SALIDA:

ingrese función asociada f(x)= sqrt(x)+2*x


ingrese límite inferior: 2
ingrese límite superior: 6

it a b aprox error
1 2.000000 6.000000 4.000000 1.000000
2 4.000000 6.000000 5.000000 0.200000
3 5.000000 6.000000 5.500000 0.090909
4 5.500000 6.000000 5.750000 0.043478
5 5.750000 6.000000 5.875000 0.021277
6 5.875000 6.000000 5.937500 0.010526
35

7 5.937500 6.000000 5.968750 0.005236


8 5.968750 6.000000 5.984375 0.002611
9 5.984375 6.000000 5.992188 0.001304
10 5.992188 6.000000 5.996094 0.000651

la raíz es: 5.996093750

%método de newton raphson


clc;
nombre_f=input(' ingrese función asociada f(x) = ','s');
x0=input(' ingrese valor inicial : ');
fprintf('\n');
fprintf(' it aprox g(x) error\n');
i=1;e=1;delta=0.001;
while e>=3E-12 & i<=18
x=x0;
fx0=eval(nombre_f);
x=x0-delta;
df1=eval(nombre_f);
x=x0+delta;
df2=eval(nombre_f);
dfx0=(df2-df1)/(2*delta);
r=x0-(fx0/dfx0);
e=abs((r-x0)/r);
fprintf(' %3.0f %10.6f %10.6f %10.6f\n',i,x0,r,e);
x0=r;
i=i+1;
end
fprintf('la raíz es: %10.9f\n', x0);

SALIDA:

ingrese función asociada f(x) = sqrt(x)+2*x^3


ingrese valor inicial : 12

it aprox g(x) error


1 12.000000 7.996659 0.500627
2 7.996659 5.324967 0.501729
3 5.324967 3.538690 0.504785
4 3.538690 2.338336 0.513337
5 2.338336 1.520431 0.537942
6 1.520431 0.941642 0.614659
7 0.941642 0.489185 0.924921
8 0.489185 0.055119 7.875092
9 0.055119 -0.054335 2.014432
10 -0.054335 0.054324 2.000056
11 0.054324 -0.053579 2.013915
36

12 -0.053579 0.053535 2.000502


13 0.053535 -0.052828 2.013405
14 -0.052828 0.052757 2.000890
15 0.052757 -0.052087 2.012908
16 -0.052087 0.051994 2.001225
17 0.051994 -0.051359 2.012426
18 -0.051359 0.051247 2.001513
la raíz es: 0.051246950

Programas Aplicados a la Quìmica


%este programa nos permite saber la molaridad(M) de un compuesto cuando el volúmen
varia de 1 a 10 litros, ingresando por teclado el peso molecular (pm) del compuesto y la
masa(w) de la muestra y también esboza la gráfica Molaridad vs Volúmen.
clc
disp('=======================================================')
disp('--PROGRAMA PARA HALLAR LA MOLARIDAD DE UN COMPUESTO--')
disp('=======================================================')
w=input('ingrese la masa de la muestra : ');
while w <=0
'el número ingresado debe ser mayor que cero'
w=input('ingrese la masa' );
end
pm= input('ingrese el peso molecular del compuesto: ');
while pm<=0
'el número ingresado debe ser mayor que cero'
w=input('ingrese el peso molecular del compuesto: ' );
end
disp('volúmen molaridad: ')
for v=1:10%volúmen en litros
M=(w/(pm*v));%fórmula de la molaridad
disp([v M])
end
v=[1:10];
M=(w./(pm*v));
plot(M,v, '-r'),title('MOLARIDAD V/S
VOLUMEN'),xlabel('MOLARIDAD'),ylabel('VOLUMEN')

EJECUTANDO EL PROGRAMA:

=======================================================
--PROGRAMA PARA HALLAR LA MOLARIDAD DE UN COMPUESTO--
=======================================================
ingrese la masa de la muestra : 20
ingrese el peso molecular del compuesto: 78
volúmen molaridad:
1.0000 0.2564
2.0000 0.1282
3.0000 0.0855
4.0000 0.0641
5.0000 0.0513
6.0000 0.0427
7.0000 0.0366
8.0000 0.0321
37

% este programa sirve para calcular el cambio de entropía  s y entalpia  H a 25°C y


1 atmósfera de presión para una reacción de la forma:
%
% aA + bB  cC + dD
%
% ingresando por teclado el valor de las entropías estandart, entalpias estandart y el
coefiente de los reactivos y productos de la reacción y para %determinar si la reacción
es espontánea o no es espontánea.
clc
T= -800 + 273.15;
disp('=======================================================')
disp('----PROGRAMA PARA CALCULAR EL CAMBIO DE ENTROPIA Y -------')
disp('---------------ENTALPIA ESTANDAR DE UNA REACCION-------------------')
disp('=======================================================')
disp('para la reacción aA + Bb → cC + dD')
a=input('ingrese el coeficiente de A: ');
b=input('ingrese el coeficiente de B: ');
c=input('ingrese el coeficiente de C: ');
d=input('ingrese el coeficiente de B: ');
A=input('ingrese la entropía estandar de A: ');
B=input('ingrese la entropía estandar de B: ');
C=input('ingrese la entropía estandar de C: ');
D=input('ingrese la entropía estandar de D: ');
A1=input('ingrese la entalpía estandar de A: ');
B1=input('ingrese la entalpía estandar de B: ');
C1=input('ingrese la entalpía estandar de C: ');
D1=input('ingrese la entalpía estandar de D: ');
disp('-------------------------------------------------------------------------------------- ')
disp(' TEMP ENTALPIA ENTROPIA GIBBS Espontaneidad de la
reacción ')
disp('-------------------------------------------------------------------------------------- ')
for TT = T:50:773.18;
H=(c*C1+d*D1)-(a*A1+b*B1);%entalpía de reacción
S=(c*C+d*D)-(a*A+b*B);%entropía de reacción
G = H - TT*S;
%fprintf('LA ENTALPIA DE LA REACCION ES '),H
%fprintf('LA ENTROPIA DE LA REACCION ES '),S
38

%fprintf('LA ENERGIA DE GIBBS DE LA REACCION ES'),G


if G==0
z= 'la reacción esta en equilibrio';
else
if G<0
z='la reacción es espontánea';
else
z='la reacción no es espontánea';
end
end
fprintf('%10.2f %10.2f %10.2f %10.2f %35s\n',TT, H, S, G, z)
end
disp('-------------------------------------------------------------------------------------- ')

EJECUTANDO EL PROGRAMA:

=======================================================
----PROGRAMA PARA CALCULAR EL CAMBIO DE ENTROPIA Y -------
---------------ENTALPIA ESTANDAR DE UNA REACCION-------------------

para la reacción aA + Bb → cC + dD
ingrese el coeficiente de A: 2
ingrese el coeficiente de B: 6
ingrese el coeficiente de C: 1
ingrese el coeficiente de B: 4
ingrese la entropía estandar de A: 155
ingrese la entropía estandar de B: 45
ingrese la entropía estandar de C: 444
ingrese la entropía estandar de D: 89
ingrese la entalpía estandar de A: -98
ingrese la entalpía estandar de B: 654
ingrese la entalpía estandar de C: 135
ingrese la entalpía estandar de D: 654

---------------------------------------------------------------------------------------------------------------
TEMP ENTALPIA ENTROPIA GIBBS Espontaneidad de la reacción
---------------------------------------------------------------------------------------------------------------
-526.85 -977.00 220.00 114930.00 la reacción no es espontánea
-476.85 -977.00 220.00 103930.00 la reacción no es espontánea
-426.85 -977.00 220.00 92930.00 la reacción no es espontánea
-376.85 -977.00 220.00 81930.00 la reacción no es espontánea
-326.85 -977.00 220.00 70930.00 la reacción no es espontánea
-276.85 -977.00 220.00 59930.00 la reacción no es espontánea
-226.85 -977.00 220.00 48930.00 la reacción no es espontánea
-176.85 -977.00 220.00 37930.00 la reacción no es espontánea
-126.85 -977.00 220.00 26930.00 la reacción no es espontánea
-76.85 -977.00 220.00 15930.00 la reacción no es espontánea
-26.85 -977.00 220.00 4930.00 la reacción no es espontánea
23.15 -977.00 220.00 - 6070.00 la reacción es espontánea
73.15 -977.00 220.00 -17070.00 la reacción es espontánea
123.15 -977.00 220.00 -28070.00 la reacción es espontánea
173.15 -977.00 220.00 -39070.00 la reacción es espontánea
223.15 -977.00 220.00 -50070.00 la reacción es espontánea
273.15 -977.00 220.00 -61070.00 la reacción es espontánea
323.15 -977.00 220.00 -72070.00 la reacción es espontánea
373.15 -977.00 220.00 -83070.00 la reacción es espontánea
423.15 -977.00 220.00 -94070.00 la reacción es espontánea
473.15 -977.00 220.00 -105070.00 la reacción es espontánea
39
40

Programa de Aplicación – Ley de Bolyle

%Ley de Bolye-Mariotte PV = K
%PV = nR.T n=1 y R=0.08205 t=25+273=298 K
clc
hold off
clear all; clear memory; clear command history; clc
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
hold on; grid on; title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión - atm '); xlabel(' Volúmen - Lts ');
plot(V,P,xox);
end
h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',1); axis([0 60 0 10])

% Para el caso del gráfico (P vs 1/V)


figure; hold on; grid on
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión - atm '); xlabel(' Volúmen (1/V) Lts -1 ');
plot((1./V),P,xox)
end
41

h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',4); axis([0 0.45 0 10])

% Para el caso del gráfico (P.V vs 1/V )


figure; hold on; grid on
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ; PV=P.*V ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión*Volúmen - atm*L '); xlabel(' Volúmen (1/V) Lts -1 ');
plot((1./V),PV,xox)
end
h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',1);

RESULTADOS

Perfiles de la Ley de Boyle - Mariotte


10
T=298°K
9 T=398°K
T=498°K
8
T=598°K
T=698°K
7

Perfiles de la Ley de Boyle - Mariotte


6
Presión - atm

10

5
9

4
8
3
7
2
6
Presión - atm

1
5
0
0 10 20 30 40 50 60 4
Volúmen - Lts
3
T=298°K
2 T=398°K
T=498°K
1 T=598°K
T=698°K
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Volúmen (1/V) Lts -1
42
Perfiles de la Ley de Boyle - Mariotte
60
T=298°K
55 T=398°K
T=498°K
T=598°K
50
T=698°K

Presión*Volumen - atm*L
45

40

35

30

25

20
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45
Volúmen (1/V) Lts -1

Aplicación - Capacidad de Adsorciòn de Carbón Granulado

clc;clear memory;clear command history;clear all


dc=[0 0.4 0.8 1.6 3.2 9.75];
dcA=[0 0.08 0.16 0.32 0.64 1.95];
dcB=[0 0.08 0.16 0.32 0.64 3.00];
imreA=[400 248 164 92 34 10];
imreB=[400 280 200 120 60 10];
%subplot(1,2,1)
plot(dcA,imreA,'o-',dcB,imreB,'*-')
title('Isoterma de adsorción');xlabel('Dosage de carbón - gr/200mL'); ylabel('Impurezas
remanentes - mg/L')
text(0.8,110,'O - Carbón A');text(0.8,85,' * - Carbón B');grid on
%subplot(1,2,2)
figure
imreA=[400 248 164 92 34 10];
imreB=[400 280 200 120 60 10];
XMA=[0 380 295 193 114 40];
XMB=[0 300 250 175 106 26];
LnimreA=log(imreA);
LnimreB=log(imreB);
LnXMA=log(XMA);
LnXMB=log(XMB);
%figure
loglog(imreA,XMA,'o-',imreB,XMB,'-*')
title('Isoterma de adsorción'); xlabel('Impurezas remanentes - mg/L'); ylabel('X/M
Impurezas adosrbidas/peso de carbon usado - mgr/gr');
text(100,50,'O - Carbón A');text(100,40,'* - Carbón B'); grid on
%Determinación de carga de carbón desde los perfiles de las isotermas a un
%nivel de impureza final deseada - Método de Interpolación
SeA=20 ; SeB=20;
Carga_carA = interp1(imreA,XMA,SeA);
Carga_carB = interp1(imreB,XMB,SeB);
%Cáculo de la impureza eliminada - Se conoce So=400 mg/L y Se=20 Mg/L
SoA=400; SoB=400; % mg/L
43

Impu_elimA = SoA - SeA;


Impu_elimB = SoB - SeB;
%Promedio de uso de carbon
Prom_uso_carbonA = Impu_elimA / Carga_carA;
Prom_uso_carbonB = Impu_elimB / Carga_carB;
clc;
%Los resultados
disp(' ');
disp('------------------------------------------------------------------')
disp('RESULTADOS ');
disp('------------------------------------------------------------------')
disp('CAPACIDAD DE ADSORCION DE CARBON GRANULADO ')
disp('------------------------------------------------------------------')
disp(' ')
disp('Cálculo de carga de carbón desde las isotermas:')
disp('-----------------------------------------------')
fprintf('Carbón A (X/M) = %g (mg/g)\n' ,Carga_carA) %g es el formato mas corto
fprintf('Carbón B (X/M) = %g (mg/g)\n' ,Carga_carB) %g es el formato mas corto
disp(' ')
disp('Promedio de uso de Carbón :')
disp('---------------------------')
fprintf('Uso de Carbón A = %g (mg/L)\n',Prom_uso_carbonA)
fprintf('Uso de Carbón B = %g (mg/L)\n',Prom_uso_carbonB)
disp(' ')
disp('----------------------------------------------------------------------------')
disp('De los resultados calculados se concluye que se requiere de aproximadamente')
fprintf('%g \n',Prom_uso_carbonB - Prom_uso_carbonA )
disp('mas de carbón B para llevar a cabo el mismo tratamiento. El precio unitario ')
disp('de cada tipo de carbón puede ser usado para determinar el mejor caso de ')
disp('costo-efectividad para una aplicación de purificación ')
disp('----------------------------------------------------------------------------')

------------------------------------------------------------------
RESULTADOS
------------------------------------------------------------------
CAPACIDAD DE ADSORCION DE CARBON GRANULADO
------------------------------------------------------------------

Cálculo de carga de carbón desde las isotermas:


-----------------------------------------------
Carbón A (X/M) = 70.8333 (mg/g)
Carbón B (X/M) = 42 (mg/g)

Promedio de uso de Carbón :


---------------------------
Uso de Carbón A = 5.36471 (mg/L)
Uso de Carbón B = 9.04762 (mg/L)

----------------------------------------------------------------------------
De los resultados calculados se concluye que se requiere de aproximadamente
44

3.68291
mas de carbón B para llevar a cabo el mismo tratamiento. El precio unitario
de cada tipo de carbón puede ser usado para determinar el mejor caso de
costo-efectividad para una aplicación de purificación
----------------------------------------------------------------------------
45

Aplicación al Tratamiento de Aguas Residuales con Carbón Activado

%TRATAMIENTO TERCIARIO DE AGUAS RESIDUALES CON CARBON ACTIVADO


clc;clear memory;clear command history;clear all
format short g
p1=[0.76 1.52 2.28]; t1=[740 1789 2780];
y1=polyfit(p1,t1,1);
m1=y1(1); %pendiente ;
b1=y1(2); %ordenada al origen
p11=[0.0:0.01:2.40]; %plot(p11,p11*m1+b1);
hold on
%----------------
p2=[0.76 1.52 3.04]; t2=[180 560 1330];
y2=polyfit(p2,t2,1);m2=y2(1); b2=y2(2);
p22=[0.0:0.01:3.10]; %plot(p22,p22*m2+b2);
%--------------
p3=[1.52 3.04 4.56]; t3=[170 500 830];
y3=polyfit(p3,t3,1);m3=y3(1); b3=y3(2);
p33=[0.0:0.01:5.00]; %plot(p33,p33*m3+b3);
%------------------
p4=[1.52 4.56 7.60]; t4=[60 390 730];
y4=polyfit(p4,t4,1); m4=y4(1); b4=y4(2);
p44=[0.0:0.01:8.00]; %plot(p44,p44*m4+b4);
grid on
plot(p11,p11*m1+b1,p22,p22*m2+b2,p33,p33*m3+b3,p44,p44*m4+b4);
text(2.2,2560,'Experimento 1','BackgroundColor',[.7 .9 .7]);text(3,1060,'Experimento
2','BackgroundColor',[.7 .9 .7]);
text(4.7,700,'Experimento 3','BackgroundColor',[.7 .9 .7]), text(5.7,400,'Experimento
4','BackgroundColor',[.7 .9 .7]);
xlabel('Profundidad D (m)'); ylabel('Tiempo t (h)'); title('REPRESENTACION DE TIEMPO-t vs
PROFUNDIDAD DE LECHO-D','BackgroundColor',[.7 .9 .7])
hold off
%---------------------
%Caudal en m3/hr y diámetro del lecho de prueba piloto en mts
qa1=0.00248; qa2=0.0049; qa3=0.0099; qa4=0.0198; diamlecho=0.0254;
%Caudal en L/(min*m2) - el factor de conversión de m3/hr a L/(min*m2) es 21.2207
qa11=(4*1000/(60*pi))*qa1/(diamlecho^2);
qa22=(4*1000/(60*pi))*qa2/(diamlecho^2);
qa33=(4*1000/(60*pi))*qa3/(diamlecho^2);
qa44=(4*1000/(60*pi))*qa4/(diamlecho^2);
%Cálculo de la velocidad en mts/hr
v1=0.06*qa11;
v2=0.06*qa22;
v3=0.06*qa33;
v4=0.06*qa44;
%Cálculo de la concentracion inicial de contaminante en mg/L - el factor de
%conversión es 0.001 para que este dado en Kg/m3 - debe ingresar con input Coo y Cee
Coo=20; Cee=1;
Co=0.001*Coo; Ce=0.001*Cee;
%Calculo de No en Kg/m3
No1=Co*v1*m1;
No2=Co*v2*m2;
No3=Co*v3*m3;
No4=Co*v4*m4;
%Cálculo de la constante de velocidad - m3/(Kg de carbon * hr)
46

%Se trabaja con Coo=20 y Cee=1 Ambos deben ingresar con input
k1=-log((Co/Ce)-1)/(b1*Co);
k2=-log((Co/Ce)-1)/(b2*Co);
k3=-log((Co/Ce)-1)/(b3*Co);
k4=-log((Co/Ce)-1)/(b4*Co);
%Cálculo de la profundidad crítica (mts)
Do1=log((Co/Ce)-1)*v1 / (k1*No1);
Do2=log((Co/Ce)-1)*v2 / (k2*No2);
Do3=log((Co/Ce)-1)*v3 / (k3*No3);
Do4=log((Co/Ce)-1)*v4 / (k4*No4);
%Gráfico de los datos encontrados
figure
Q=[qa11 qa22 qa33 qa44]; KK=[k1 k2 k3 k4]; DD=[Do1 Do2 Do3 Do4]; NN=[No1 No2 No3
No4];
subplot(2,2,1);plot(Q,KK,'*-');xlabel('Caudal-L/(min*m2)');ylabel('K - m3/(Kg*hr)');grid on
subplot(2,2,2);plot(Q,DD,'O-');xlabel('Caudal-L/(min*m2)');ylabel('Do - m)');grid on
subplot(2,2,3);plot(Q,NN,'*-');xlabel('Caudal-L/(min*m2)');ylabel('No - Kg/m3)');grid on
%----
%Ajuste de curva para encontrar la ecuación de cada una de ellas
Q1Q=[81.5:50:681.5];
k2 =polyfit(Q,KK,2); % ES IGUAL A [p,S] = polyfit(Q,KK,2)
ko2=k2(1).*Q1Q.*Q1Q + k2(2).*Q1Q + k2(3);
cof11=k2(1); cof22=k2(2); cof33=k2(3);
%k3=polyfit(Q,KK,3) %Existe mucha dispersión, por lo que se desecha
%ko3=k3(1).*Q1Q.*Q1Q.*Q1Q + k3(2).*Q1Q.*Q1Q + k3(3).*Q1Q + k3(4)
n2 =polyfit(Q,NN,2); % Es igual a [p,s]=polyfit(Q,NN,2)
no2=n2(1).*Q1Q.*Q1Q + n2(2).*Q1Q + n2(3);
cof1=n2(1); cof2=n2(2); cof3=n2(3);
%n3 =polyfit(Q,NN,3); %Existe mucha dispersión, por lo que se desecha
%no3=n3(1).*Q1Q.*Q1Q.*Q1Q + n3(2).*Q1Q.*Q1Q + n3(3).*Q1Q + n3(4)
%no33=(no2+no3)/2
%plot(Q,NN,'*-',Q1Q,no2,'o-',Q1Q,no3,'*-')
d2 =polyfit(Q,DD,2);
do2=d2(1).*Q1Q.*Q1Q + d2(2).*Q1Q + d2(3);
cof111=d2(1); cof222=d2(2); cof333=d2(3);
%---------INCREMENTADO
figure
subplot(2,2,1);plot(Q1Q,ko2,'*-');xlabel('Caudal-L/(min*m2)');ylabel('K - m3/(Kg*hr)');grid on
subplot(2,2,2);plot(Q1Q,do2,'O-');xlabel('Caudal-L/(min*m2)');ylabel('Do - m)');grid on
subplot(2,2,3);plot(Q1Q,no2,'*-');xlabel('Caudal-L/(min*m2)');ylabel('No - Kg/m3)');grid on
%-------FIN DE INCREMENTO
%DATOS DE PROBLEMA REAL
%Caudal en m3/hr y diámetro del lecho de prueba piloto en mts - profundidad - prof en mts
qaa1=4; diamlecho1=0.76; prof=1.82;
%Caudal en L/(min*m2) - el factor de conversión de m3/hr a L/(min*m2) es 21.2207
qaa11=(4*1000/(60*pi))*qaa1/(diamlecho1^2);
area=(pi/4)*diamlecho1^2;
%Cálculo de la velocidad en mts/hr
ve1=0.06*qaa11;
%Modulo para halla K ó ko22 en m3/(kg*hr) y No ó no22 en kg/m3
no22=cof1*qaa11*qaa11 + cof2*qaa11 + cof3;
ko22=cof11*qaa11*qaa11 + cof22*qaa11 + cof33;
do22=cof111*qaa11*qaa11 + cof222*qaa11 + cof333;
%Cálculo del tiempo de servicio
t=((no22*prof)/(ve1*Co)) - (log((Co/Ce)-1)/(ko22*Co)); %horas/ciclo
%Parte2:Cálculo del numero de cambios de carbon por año y volumen anual de carbón
47

NumCamCar=365*24 / t ;
VolAnualCarbon = prof*area*NumCamCar ;
%Parte3:Estimación de eliminación del soluto (Kg/año)
%Kg soluto separado por ciclo=kg soluto en afluente-Kg soluto en efluente
VolAR=qaa1*t;
%Kg de soluto en el afluente por ciclo
SolutAfluen=VolAR * Co;
%Calculo del soluto residual - Kg de soluto por ciclo
SolutEfluen=VolAR * Ce;
SolutSeparado = SolutAfluen - SolutEfluen;
SolutSepanual = SolutSeparado*NumCamCar;
%Parte4: Rendimiento de la adsorcion
CapTotAdsor=no22*VolAnualCarbon;
rendimiento = (SolutSepanual/CapTotAdsor)*100;
%Rendimiento basandose en Do para un caudal de 148 L/(min*mt2)
Rendimiento = ((prof - do22)/prof)*100;
%Los resultados
disp(' ');
disp('------------------------------------------------------------------')
disp('RESULTADOS ');
disp('------------------------------------------------------------------')
disp(' APLICACION DE LOS DATOS DE LABORATORIO ')
disp(' AL DISEÑO DE UNA PLANTA A ESCALA REAL ')
disp('------------------------------------------------------------------')
disp('PARTE1: CALCULO DEL TIEMPO DE SERVICIO')
disp('------------------------------------------------------------------')
fprintf('Capacidad de Adsorción (No) = %g (Kg/m3)\n' ,no22)
fprintf('Constante de Velocidad (K) = %g (m3/(kg*hr)\n',ko22)
fprintf('Tiempo de servicio (t) = %g (hr/ciclo)\n' ,t)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE2: CAMBIO DE CARBON POR AÑO Y VOLUMEN ANUAL DE CARBON')
disp('-------------------------------------------------------------------')
fprintf('# de Cambios de Carbón / año (NumCamCar) = %g (Ciclo/año)\n',NumCamCar)
fprintf('Volúmen anual de carbón (VolAnualCarbon) = %g (m3)\n',VolAnualCarbon)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE3: ESTIMACION DE LA ELIMINACION DE SOLUTO (kg/año)')
disp('kg de soluto separado=Kg soluto en afluente - Kg soluto en efluente')
disp('-------------------------------------------------------------------')
fprintf('Volúmen de Agua Residual (VolAR) = %g (m3/ciclo)\n',VolAR)
fprintf('Eliminación de soluto (SolutSeparado) = %g (kg/ciclo)\n',SolutSeparado)
fprintf('Soluto separado anual (SolutSepanual) = %g (kg/ciclo)\n',SolutSepanual)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE4: RENDIMIENTO DE LA ADSORCION')
disp('-------------------------------------------------------------------')
disp('Basado en No: Capacidad de adsorción')
fprintf('Capacidad Total de Adsorción (CapTotAdsor) = %g (m3/ciclo)\n',CapTotAdsor)
fprintf('Rendimiento (rendimiento) = %g (kg/ciclo)\n',rendimiento)
disp('Basado en Do: Profundidad Crítica')
fprintf('Rendimiento (Rendimiento) = %g (m3/ciclo)\n',Rendimiento)
disp(' ')
disp('-------------------------------------------------------------------')
disp(' ')
disp(' ')
48

------------------------------------------------------------------
RESULTADOS
------------------------------------------------------------------
APLICACION DE LOS DATOS DE LABORATORIO
AL DISEÑO DE UNA PLANTA A ESCALA REAL
------------------------------------------------------------------
PARTE1: CALCULO DEL TIEMPO DE SERVICIO
------------------------------------------------------------------
Capacidad de Adsorción (No) = 109.707 (Kg/m3)
Constante de Velocidad (K) = 0.666736 (m3/(kg*hr)
Tiempo de servicio (t) = 911.419 (hr/ciclo)

-------------------------------------------------------------------
PARTE2: CAMBIO DE CARBON POR AÑO Y VOLUMEN ANUAL DE CARBON
-------------------------------------------------------------------
# de Cambios de Carbón / año (NumCamCar) = 9.61139 (Ciclo/año)
Volúmen anual de carbón (VolAnualCarbon) = 7.9355 (m3)

-------------------------------------------------------------------
PARTE3: ESTIMACION DE LA ELIMINACION DE SOLUTO (kg/año)
kg de soluto separado=Kg soluto en afluente - Kg soluto en efluente
-------------------------------------------------------------------
Volúmen de Agua Residual (VolAR) = 3645.68 (m3/ciclo)
Eliminación de soluto (SolutSeparado) = 69.2678 (kg/ciclo)
Soluto separado anual (SolutSepanual) = 665.76 (kg/ciclo)

-------------------------------------------------------------------
PARTE4: RENDIMIENTO DE LA ADSORCION
-------------------------------------------------------------------
Basado en No: Capacidad de adsorción
Capacidad Total de Adsorción (CapTotAdsor) = 870.583 (m3/ciclo)
Rendimiento (rendimiento) = 76.4729 (kg/ciclo)
Basado en Do: Profundidad Crítica
Rendimiento (Rendimiento) = 79.504 (m3/ciclo)

-------------------------------------------------------------------

REPRESENTACION DE TIEMPO-t vs PROFUNDIDAD DE LECHO-D


3000

2500 Experimento 1

2000
Tiempo t (h)

1500

1000 Experimento 2

Experimento 3
500
Experimento 4

-500
0 1 2 3 4 5 6 7 8
Profundidad D (m)
49

1.5 1

K - m3/(Kg*hr)
0.8

Do - m)
1 0.6

0.4

0.5 0.2
0 200 400 600 800 0 200 400 600 800
Caudal-L/(min*m2) Caudal-L/(min*m2)

140
No - Kg/m3)

120

100

80
0 200 400 600 800
Caudal-L/(min*m2)

1.5 1
K - m3/(Kg*hr)

0.8
Do - m)

1 0.6

0.4

0.5 0.2
0 200 400 600 800 0 200 400 600 800
Caudal-L/(min*m2) Caudal-L/(min*m2)

140

120
No - Kg/m3)

100

80

60
0 200 400 600 800
Caudal-L/(min*m2)
50

Trabajo Encomendado

El participante al finalizar el curso presentará un trabajo de aplicación el que consistirá


en realizar un programa aplicado a la solución de un problema de su conocimiento o en
el área en el cual se desempeña y deberá tener las partes:

a. Descripción del programa o algoritmo (1 cara)


b. Programa en un lenguaje de Programación (1 a 3 caras)

Tratar de usar la mayor cantidad de instrucciones del matlab


If … end
For … end
While … end
Case
Impresión de tablas
Impresión de Graficos

c. Impresión de las salidas (resultados de tablas - gráficos) (1 a 3 caras)

e. Conclusiones sobre la aplicación del Matlab en el trabajo realizado.

Presentar el trabajo impreso y en CD.


51

REFERENCIAS BIBLIOGRAFICAS

Libros

1. VASQUEZ PARAGULLA, JULIO “Diseño de Programación “ Edit. San Marcos –


PERU . 2000.
2. PEREZ, CESAR Matlab y sus Aplicaciones en las Ciencias y la Ingeniería Editores
Prentice. España. 2002 .
3. NAKAMURA, SHOICHIRO Análisis Numérico y Visualización con Matlab. Editorial
Prentice may. México. 1997.
4. MORALES MARCHENA, HERÓN. Métodos numéricos y Visualización Gráfica
Editorial Megabit. Peru. 2005.
5. CHAPRA, STEVEN Métodos Numéricos para Ingenieros. Editorial Mc. Graw Hill.
México. 2004.

Páginas Web

1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]
6. [Link]

También podría gustarte