Partes: 1, , 3

MANEJO SIMBÓLICO >> syms x; definición de variable tipo simbólico >> 2*x+3*x suma algebraica >> a=[x 5; 3*x 4]; matriz con elementos símbolos >> t=inv(a) su inversa también contiene símbolos >> t=solve(2*x^2+3*x-2) solución de una ecuación >> f=3*x^2+5*x; definición simbólica de una función >> t=factor(f) factorar la expresión >> s=expand(t) expandirla >> e=taylor(exp(x)) expansión con la serie de Taylor >> limit(sin(x)/x) obtencíon de límites de funciones >> syms y; >> f=2*x^3+3*y^2 una función de dos variables >> g=diff(f,x) derivada parcial >> u=int(f,x) integrar en x Funciones adicionales con expresiones simbólicas >> f='2*t+1'; definición de una función en forma literal >> t=3; >> y=eval(f) evaluación de la función >> [a,b] = solve('a^2 + a*b - b = 3','a^2 - 4*b - 5 = 0') resuelve un sistema de dos ecuaciones no lineales >> a=double(a) para expresarlas en forma real >> b=double(b) >> f='exp(x)-pi*x'; >> x=solve(f) >> x=double(x) cambia la solución simbólica a real x= 0.5538 resultados de MATLAB

1.6385 >> x=fzero(f,2) solución de una ecuación con un valor inicial x= 1.6385 resultado de MATLAB >> x=fzero(f,[1,2]) solución usando un rango para la raiz x= 1.6385 resultado de MATLAB >> u=diff(f) diferenciación >> v=int(f) integración analítica >> r=int(f, 0, 2) integración entre límites >> g='x*exp(-x)'; >> r=int(g, 0, Inf); integral impropia solución analítica y gráfico de una EDO de primer orden con una condición en el inicio >> y=dsolve('Dy=(x-y)/x','y(0)=0','x') >> ezplot(y,0,2); >> grid on EDO de segundo orden con condiciones en el inicio y gráfico de la solución >> y=dsolve('D2y+Dy+2*y-x-3=0','y(0)=0,Dy(0)=1','x') >> ezplot(y,0,2); >> grid on; EDO de segundo orden con condiciones en los bordes >> y=dsolve('D2y-Dy+2*y-5*x-3=0','y(0)=0,y(1)=2','x') >> ezplot(y,0,2); >> grid on >> f=¶2*sin(x)*exp(x)¶; >> [x,y]=fminbnd(f,-2,2) encuentra un mínimo local de f en 1 £ x £ 4 >> ezplot(f,-2,2) Ejercicio: Escriba directamente las instrucciones necesarias para encontrar el valor del radio x de un cilindro de 1000 cc de capacidad, de tal manera que el valor del área sea el mínimo: Primer enfoque:

1. Escriba una función f en términos del radio x 2. Grafique f con ezplot. Localice el intervalo para el mínimo de f(x) 3. Use la función fminbnd para obtener el mínimo x: radio, h: altura >> f='2*pi*x*1000/(pi*x^2)+2*pi*x^2'; >> ezplot(f,0,10) >> grid >> x=fminbnd(f,4,6) x= 5.4193 >> area=eval(f) area = 553.5810 Segundo enfoque 1. 2. 3. 4. Derive f y obtenga la función a minimizar g. Grafique g con ezplot. Localice el intervalo de la raíz de g(x)=0 Use la función fzero para obtener la raíz Use la funcion solve para obtener la raíz

x: radio, h: altura >> g=diff(f) g= -2000/x^2+4*pi*x >> x=fzero(char(g),[4,6]) x= 5.4193 >> x=solve(g) x= [ 5/pi*4^(1/3)*(pi^2)^(1/3)] [ -5/2/pi*4^(1/3)*(pi^2)^(1/3)+5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)] [ -5/2/pi*4^(1/3)*(pi^2)^(1/3)-5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)] >> x=double(x) x= 5.4193

-2.7096 + 4.6932i -2.7096 - 4.6932i Funciones especiales para medir eficiencia de algoritmos >> tic; Inicia cronómetro >> toc; muestra el tiempo transcurrido >> tic; a=inv(rand(500, 500)); toc tiempo utilizado en invertir una matriz 500x500 GRAFICACIÓN Gráfico de funciones de una variable >> f='exp(x)-3*x'; función para el ejemplo (use comillas simples) >> ezplot(f) función básica para graficar f en [-2p , 2p ] >> ezplot(f, [0, 2]) función básica para graficar f en un dominio dado >> grid on colocar cuadrículas en el dibujo >> x=[0: 0.1: 2*pi]; puntos para evaluar alguna función >> y=sin(x); puntos de la función seno >> plot(x,y); función para graficar la función con línea contínua >> plot(x,y,'o') gráfico con puntos. Puede elegir: o . * + x ->> plot(x,y,'r') cambiar a color rojo. Puede elegir r,b,y,m,g,w,k >> plot(x,y,'og') grafique con círculos verdes. >> grid on colocar cuadrículas en el dibujo >> title('seno de x') incluya un título en el gráfico >> gtext('seno de x') posicione el texto en el gráfico con el mouse >> xlabel('X') rotule el eje horizontal >> ylabel('Y') rotule el eje vertical >> c=[0, 2*pi, -2, 2] defina la región para el gráfico >> axis(c) >> hold on superponer siguientes gráficos >> hold off deshabilitar opción anterior >> clf borrar el gráfico >> figure(1) puede tener varias figuras abiertas cada una en una ventana rotulada con 1, 2, ... >> subplot(2,3,1) puede dividir una figura en subgráficos.

Ej. en 2 filas y 3 columnas. Activando el gráfico 1 >> clf(1) borra el gráfico 1 >> clf borre todos los gráficos >> x=[0:0.1:10}; >> y=exp(x); >> semilogx(x,y) graficar en escalas logarítmicas >> semilogy(x,y) >> loglog(x,y) doble logarítmica >> grid on >> a=0:0.01:2*pi; >> r=sin(3*a); 'rosa' de 3 pétalos >> polar(a, r); grafique en coordenadas polares Gráfico de funciones implícitas y ecuaciones con dos variables >> f='(x-2)^2+(y-3)^2-5'; >> ezplot(f); Graficar la circunferencia (x - 2)2 + (y - 3)2 = 5 en el dominio -2p £ x£ 2p , -2p £ y£ 2p >> ezplot(f,[-1,5,0,6]) Graficar f en el dominio -1£ x£ 5, 0£ y£ 6 >> grid on; Colocar cuadrículas >> hold on; Superponer el siguiente gráfico: >> g=¶y-2*(x-3)^2-3¶; una parábola y=2(x-3)2-3 en el mismo dominio >> ezplot(g,[-1,5,0,6]) Gráfico de funciones definidas en forma paramétrica >> ezplot('sin(t)','cos(t)',[-pi,pi]); Graficar x=x(t), y=y(t) en -p £ t£ p >> ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi]); Una rosa de 3 pétalos Editor de gráficos Después que el gráfico ha sido realizado puede utilizar las facilidades del editor de gráficos para cambiar las propiedades de las figuras: color, tipo, etc. También puede realizar estadísticas básicas y ajuste de curvas. Adicionalmente puede insertar directamente en el gráfico texto, líneas, flechas, rótulos, etc. Para habilitar el editor de gráficos seleccione el botón tools en la barra de opciones del gráfico y luego elija edit plot. Para realizar estadísticas básicas y ajuste de curvas, elija respectivamente Data Statistics y Basic Fitting Gráfico de funciones de dos variables >> a=[1 3 2; 5 3 7; 4 5 2]; una matriz 3x3

z) gráfico de superficie >> xlabel('X') rotulación de eje x. Se abre una ventana de edición En la ventana de edición escriba los comandos y almacénelos en un archivo con algún nombre. z) gráfico de malla >> contour(x. color del gráfico.^2. y. Insertar el gráfico en un documento Si desea insertar el gráfico elaborado con MATLAB en un documento. v: matrices q' contienen cada par ordenado x.y >> z=u. suavizado del gráfico (¡ tiene que verlo !) Adicionalmente puede usar las opciones del editor de gráficos para editar la figura. puede seguir el siguiente procedimiento: Elija en la barra de opciones del gráfico el botón File y luego la opción Export Elija una carpeta para almacenar el gráfico y un nombre para el gráfico. y. graficar los elementos como puntos sobre el plano. z) gráfico de contorno >> surfc(x.1:3. también con ylabel. en el lugar elegido. y.^2 ± v. -3£ y£ 3 >> x=-2:0.jpg Copie el gráfico almacenado y péguelo en el documento. Puede incluir comentarios con el símbolo % Ej. Guarde el gráfico con tipo . El siguiente ejemplo es una referencia para graficar funciones de dos variables Graficar z = x2 ± y2. z) gráfico de superficie y contorno >> surf(x. PROGRAMACIÓN CON MATLAB Archivos de comandos Para crear un archivo de comandos (programa. insertar títulos.1:2. jet. Escriba en la ventana de edición las instrucciones para graficar sen(x) entre 0 y 2p .y). u. pink >> shading interp. puntos de la función z = x2 ± y2 >> mesh(x. etc. zlabel >> title('Silla de montar') título para el gráfico >> colormap(copper). seleccione en la barra de herramientas de MATLAB la opción: File ® New ® M-file o presione en el ícono respectivo. -2£ x£ 2. cambiar la perspectiva. >> [u. o script).v]=meshgrid(x. usualmente escrito en WORD.>> mesh(a). rotar. dominio de la función para el ejemplo >> y=-3:0. también: gray. y.

x=2^7. y=sin(x). x=2^7. Salida de mas de un resultado a pantalla: disp([valor. y]).variables) Ej.x=0:0. Estructuras de control de flujo en MATLAB Instrucciones de Entrada y Salida Ingreso de un dato desde el teclado: variable=input(µmensaje¶). plot(x. . valor. y=sqrt(pi). Puede especificar cantidad de columnas y decimales: Ej. ejemplo: prueba Para ejecutar el programa escriba en la ventana de comandos >> prueba Para editar un archivo de comandos. En el archivo abierto en la ventana de edición haga los cambios y guárdelo nuevamente con el mismo nombre. fprintf('%d %f¶'. disp(x). y=sqrt(pi). Ej. x = input('ingrese un dato '). «]).y). Salida de un resultado a la pantalla: disp(valor) Ej.1:2*pi. x=exp(2). seleccione en la barra de herramientas de MATLAB la opción: File ® Open o seleccione el ícono respectivo. Ej.y). x=2^7. disk([x.x. Salida de resultados formateados a pantalla: fprintf(µformatos¶. grid on Guarde el archivo con algún nombre.

y). if a>b m=a. switch x case 1.3f¶'.y=sqrt(pi). Guárdelo con el nombre prueba y úselo desde la ventana de comandos: >> prueba ingrese el primer dato 5 interacción con MATLAB ingrese el segundo dato 8 8 Decisiones múltiples (instrucción switch) Ej. b=input('ingrese el segundo dato ').x. . end disp(m). Escriba el siguiente programa para instrumentar la definición: y= x=input('dato '). fprintf('%5d %8. else m=b. Otras especificaciones de formato puede verlas con help fprintf Decisiones (instrucción if) if condición if condición instrucciones instrucciones end else instrucciones end Ej. Escriba y almacene el siguiente programa para mostrar el mayor entre dos datos: a=input('ingrese el primer dato ').

. otherwise y=exp(x). Sume los n primeros términos de la serie armónica: n=input('cantidad de terminos '). end disp(y).y=3.3. Almacénelo con algún nombre. Almacénelo con algún nombre. case {2. s=0. s=0. Ejemplo prueba3 Para usarlo escriba en la ventana de comandos >> prueba3 Repetición condicionada a una secuencia (instrucción for) for variable=inicio: incremento: final instrucciones end Ej.4}. while n>0 s=s+1/n. Sume los n primeros términos de la serie armónica: n=input('cantidad de terminos '). end disp(s). y=2*x+1. Ejemplo prueba2 Para usarlo escriba en la ventana de comandos >> prueba2 Repetición condicionada al inicio (instrucción while) while condición instrucciones end Ej. n=n-1.

no están disponibles fuera de ella.r]). Sin embargo. else r=sqrt(x). Almacénelo con algún nombre. Los usuarios pueden definir funciones y agregarlas a las funciones propias de MATLAB. muestre un mensaje y termine n=input(µcantidad de datos µ). Declaración de una función en MATLAB function variable = nombre (parámetros) instrucciones . end end Para ver la descripción de las estructuras del lenguaje de MATLAB. Ejemplo prueba4 Para usarlo escriba en la ventana de comandos >> prueba4 Puede interrumpir una repetición (instrucción break) Ej. Pero si entra un valor negativo.for i=1:n s=s+1/i. disp([x. las variables que se usan dentro de una función. if x<0 disp(µError¶). Lea n datos. El mecanismo usual para trasmitir datos a las funciones es mediante una lista de variables que se denominan parámetros. end disp(s). a menos que se use una declaración explícita y que se verá mas adelante. for i=1:n x=input(µingrese siguiente dato µ). Calcule y muestre la raíz cuadrada. break. escriba >> help lang Funciones en MATLAB En general una función en los lenguajes de programación es un conjunto de instrucciones que se escriben separadamente del programa y que realizan alguna tarea especificada. a diferencia de los programas.

end m es la variable que entrega el resultado mayor es el nombre de la función a. El nombre debe coincidir con el nombre asignado. >> b = pi^exp(1). Escriba una función para elegir el mayor entre dos números Abra un documento nuevo en la ventana de edición y escriba: function m = mayor(a. y) 1407. Es conveniente que el nombre asignado sea igual al nombre usado en la declaración de la función. >> y = pi^exp(1). >> m = mayor(a. b son los parámetros que ingresan los datos a la función Almacene esta función en el disco con el nombre mayor Suponer que quiere escoger el mayor entre ep y p e. Ej. aunque los parámetros pueden tener nombres diferentes. b) if a>b m = a.variable contendrá el resultado que entrega la función parámetros son variable que reciben los datos que entran a la función nombre identifica a la función instrucciones se incluyen en la función según la tarea especificada Las funciones se escriben en la ventana de edición de Matlab y se las almacena en alguna carpeta.1407 (respuesta que muestra MATLAB) Los nombres de las variables pueden ser diferentes: >> x = exp(pi). Escriba en la ventana de comandos: >> a = exp(pi). pero su uso debe ser coherente. else m = b. (respuesta que muestra MATLAB) . >> t = mayor(x. b) 23. El uso de una función es similar al uso de las funciones comunes de MATLAB.

for d = 1: x if mod(x. (resultado que muestra MATLAB) Escriba en una nueva ventana de edición un programa que use la función primo para encontrar todos los números primos menores a 20: for x = 1: 20 if primo(x) == 1 disp(x). >> x = 43. else p = 1. >> p = primo(x) 1. end Guarde la función en el disco con el nombre primo Pruebe la función desde la ventana de comandos >> x = 25. >> p = primo(x) 3. end end Almacene su programa en el disco con el nombre prueba En la ventana de comandos pruebe su programa: >> prueba . (resultado que muestra MATLAB) 2.Ej. Escriba una función que reciba un número y determine si es un número primo. function p = primo( x ) c = 0. end end if c > 2 p = 0. El resultado que entrega la función será 1 o 0 según corresponda. d) == 0 c = c + 1.

function m=mayor(a. vol = pi*r^2*h. Escriba una función que muestre cual es el valor de la suma de los cubos de los primeros n números naturales con el siguiente encabezado: function s=suma(n) Escriba n programa que use la función suma y la función primo anterior para determinar si las suma de los cubos de los 7 primeros números naturales es un número primo Una función puede entregar más de un resultado Las variables que entregan los resultados deben definirse entre [ ] Ej. vol] = cilindro(r. Escriba una función que reciba 3 números y entregue como resultado el mayor con el siguiente encabezado: 2. Escriba y almacene la función con el nombre cilindro.c) Escriba un programa que lea las tres dimensiones de un bloque. calcule el valor de las diagonales de sus caras y use la función anterior para encontrar el valor de la mayor diagonal 3.1. .b.1 (resultados mostrados por MATLAB) 2 3 5 7 11 13 17 19 Ejercicios. h) area = 2*pi*r*h + 2*pi*r^2. Escriba una función que entregue el área y el volumen de un cilindro dados su radio (r) y su altura (h) function [area. Use la función para calcular el área y el volumen de una lata de cilíndrica que tiene un diámetro de 10cm y una altura de 12cm Escriba en la ventana de comandos: >> r = 5. >> h = 12.

>> b = 5. Escriba la función: function x=fn(a. (mensaje de error de MATLAB) Compare con lo que ocurre si escribe un programa en vez de la función. Almacene con el nombre prueba y active el programa: >> prueba ingrese dato 3(interacción para ingreso de datos) ingrese dato 5 16(resultado que muestra MATLAB) >> c c = 8(la variable c puede ser utilizada) Es posible hacer que las variables de una función sean visibles fuera de su ámbito. b) t = 16(resultado que muestra MATLAB) >> c(intentamos conocer el valor de c en la función) ??? Undefined function or variable 'c'. v] = cilindro(r. mediante la declaración global Ej. es decir que a diferencia de los programas.h). disp(x). Modifique la función fn para que la variable c sea visible: . x = 2*c. no son visibles fuera de la función Ej. >> t = fn(a. c = a + b. x = 2*c.>> [a. b) c = a + b. b = input(µingrese dato µ). Almacene con el nombre fn y úsela desde la ventana de comandos: >> a = 3. a = input(µingrese dato µ). >> a >> v MATLAB mostrará los resultados almacenados en a y en v Las variables definidas dentro de una función son locales.

Escriba una función que reciba un vector y entregue el promedio del valor de sus elementos. para usa esta función escriba >> menu Una función puede recibir como parámetros vectores o matrices. end end Una función puede no entregar resultados ni usar parámetros Ej. Escriba una función que imprima un menú function menú disp(µ1) ingresar¶). while x==0 n=input(µingrese un entero entre 1 y 5 µ). c = a + b.function x=fn(a. >> t = fn(a. disp(µ2) borrar¶). disp(µ3) salir¶). >> b = 5. b) global c. if n>0 & n<6 x=1. Escriba una función que lea y valide un entero entre 1 y 5 function n=entero x=0. x = 2*c. function p=prom(x) . b) t = 16 (resultado que muestra MATLAB) >> c(intentamos conocer el valor de c en la función) c=8(la variable c está disponible ahora) Una función puede no necesitar parámetros Ej. Almacene con el nombre fn y use la función: >> a = 3. Ej.

m=length(B).8571 (es el resultado que muestra MATLAB) Una función puede entregar como resultado un vector o una matriz Ej. Escriba una función que reciba dos vectores A.n=length(x). >> t=prom(x) t = 4. end p=s/n. end Para usar esta función debe enviar un valor para el parámetro n: >> t=dados(5) t = 6 3 4 3 2 (es el vector resultante que entrega MATLAB) Una función puede recibir y entregar vectores o matrices Ej. s=0. k = k + 1. Escriba una función que entregue un vector de longitud n conteniendo números aleatorios enteros con valor entre 1 y 6: function d=dados(n) for i=1:n d(i)=fix(rand*6+1). . Para usar esta función debe definir el vector antes de llamar a la función. for i=1:n for j=1:m if A(i) == B(j) C(k) = A(i). k=1. B y entregue un tercer vector que contenga los elementos que están en ambos vectores: function C=interseccion(A. for i=1:n s=s+x(i).B) n=length(A). La función determina la longitud del vector con la función length >> x=[2 7 3 5 4 7 6].

puede usar el comando return Ej. for i=1:n-1 if x(i) > x(i+1) return. Recuerde que pueden tener nombres diferentes a los que usa la función: >> A=[2 7 5 4 3 8].end end end Para usar esta función debe definir los vectores que entran. >> B=[7 1 3 9 0]. Escriba una función para determinar si los elementos de un vector están en orden creciente: function t=orden(x) t=0. y luego muestre un mensaje en caso de que sea simétrica: sus caracteres opuestos son iguales . end end t=1. for i=1:n if f(i) ~= ' ' x = strcat(x. Escriba una función para eliminar espacios intermedios de una frase: function x=compactar(f) n=length(f). use la función compactar para eliminar los espacios intermedios. >> C=interseccion(A. n=length(x).B) C = 7 3 (Es el vector resultante que entrega MATLAB) Si la salida de una función es antes del final. x=''. f(i)). Un programa puede llamar a funciones Ej. end end Ahora escriba un programa que lea una frase.

n=length(f). Use la siguiente definición recursiva para calcular el máximo común divisor entre dos números enteros: Escriba y almacene una función para instrumentar esta definición: function c=mcd(a. else disp('la frase no es simetrica'). . b-a). sim=1. b) if a>b c=mcd(a-b. b).f=input('ingrese una frase '). end Probamos este programa suponiendo que lo hemos almacenado con el nombre prueba: >> prueba ingrese una frase 'anita lava la tina'. f=compactar(f). for i=1:n/2 if f(i) ~= f(n-i+1) sim=0. else if b>a c=mcd(a. end end if sim == 1 disp('la frase es simetrica'). (dato que ingresamos) la frase es simetrica (resultado de MATLAB) Una función puede llamarse a si misma Estas funciones de denominan recursivas Ej.

if d<0 error('valor incorrecto').5) x= 0. 10.5.4.2.4 y 13.0. 10. 48) Para desplegar un mensaje de error y terminar la ejecución use error Ej.0.2.1:10.else c=a.5 >> p=normcdf(13. p= 0.7121. end end Use la función: >> x=mcd(36. >> plot(x. >> p=normpdf(x.5)-normcdf(0. tenga un valor entre 11.995]. >> x=norminv(p.normcdf(11.7121 3.p) normcdf: Distribución de probabilidad normal acumulada Calcule la probabilidad que una variable aleatoria distribuida normalmente.0.2.2879.005 0.2019 norminv: Inversa de la distribución normal acumulada Encuentre un intervalo de 99% de probabilidad para una variable con distribución normal con media 2 y desviación estándar 1 >> p=[0.5) p= .1). 2) . 2). end ---------------------------------------------------------------------------------Practique: Funciones del Módulo de Estadística normpdf: distribución de probabilidad normal >> x=4:0.2879 Para chequear >> p=normcdf(3. con media 10 y desviación estándar 2.7.

9900 Prueba de Hipótesis [h. for i=1:n L=1. grid.p. >> p=Lagrange(x. for j=1:n if i~=j L=L*(t-x(j))/(x(i)-x(j)).0.2113 c= 1.y) p=0.y. end end p=p+L*y(i). 4. hold .u.c]=ztest(x. syms t. n=length(x). 4. >> [h. >> y=[3.9216 2. p=simplify(p).y) >> plot(x. 9].0784 Practique: Una función que entrega un resultado analítico Escriba y almacene una función para obtener el polinomio de interpolación en forma analítica con la fórmula de Lagrange: function p=Lagrange(x.04) h= 0 p= 0. 8.9.8].c]=ztest(2.2.5.sn). 5. 6. 6.7.'o'). 5.p. end Use la función desde la línea de comandos >> x=[3.05.0.2.

arch=input('ingrese el nombre del archivo '). op=0. end end . consultam. mostrar los estudiantes y su calificación 4) Salir Variables que son usadas en el programa e codigo de estudiante m codigo de materia c calificacion arch nombre del archivo dado por el usuario function control global arch. ingresar. Los datos que se almacenan en el archivo incluyen: código del estudiante (entero de 5 dígitos) código de la materia (entero de 5 dígitos) calificación obtenida por el estudiante en la materia (entero de 3 dígitos) El programa debe pedir un nombre para el archivo. case 2. mostrar sus materias y calificaciones 3) Dado el código de una materia. case 3.x(1).>> ezplot(p. while op~=4 op=menu. clc. consultae. switch op case 1. abrirlo para agregar datos y ofrecer las siguientes opciones mediante un menú: 1) Ingreso de un nuevo dato 2) Dado el código de un estudiante.x(5)) Manejo de archivos en MATLAB El siguiente ejemplo completo es una referencia para conocer las instrucciones de MATLAB para manejo de archivos Una aplicación de manejo de un archivo con datos de estudiantes.

f=fopen(arch. function consultae global arch. m=fscanf(f.'a+'). if e==x fprintf('\n codigo de materia %5d'. f=fopen(arch.m.c). end . end x=input('codigo de estudiante '). c=input('calificacion ').'%d'. op=input('ingrese una opcion ').'r'). disp('1) ingreso'). pause.'%d'.e. return. disp('4) salir'). m=input('codigo de materia '). while ~feof(f) e=fscanf(f. fprintf(f.m). fprintf('\n calificacion %3d'. function ingresar global arch.'%5d%5d%3d'.1).1). disp('2) consulta por estudiante').'%d'. fclose(f). c=fscanf(f. e=input('codigo de estudiante ').c).function op=menu clc.1). disp('3) consulta por materia'). if f<0 disp('archivo no existe ').

pause. m=fscanf(f. end x=input('codigo de materia '). fprintf('\n calificacion %3d'. Elija algún nombre. c=fscanf(f.1). if f<0 disp('archivo no existe '). En MATLAB cargue la tabla T y úsela como una matriz: >> load T. >> A=T 2) Exportar una matriz de datos desde MATLAB a una tabla en Excel .c).1). En Excel cree la tabla y almacénela con formato tipo texto delimitado con tabulaciones. return. fclose(f). Ejemplo T. fclose(f). f=fopen(arch.1).'r').'%d'. if m==x fprintf('\n codigo de estudiante %5d'. function consultam global arch. INTERACCIÓN CON OTROS ENTORNOS Interacción con EXCEL 1) Importar una tabla de datos desde Excel a una matriz en MATLAB a.txt b.e).end pause.'%d'.'%d'.txt. end end pause. while ~feof(f) e=fscanf(f.

el resultado se muestra inmediatamente x= . >> exp(2)/3 calcule y muestre inmediatamente el resultado ans = 2. En MATLAB cree una matriz y almacénela con el comando save con el siguiente formato. Al final de cada ejemplo hemos incluido con letra azul una breve explicación. Workspace: contiene la descripción de las variables usadas en cada sesión. calcule y asigne el resultado a la variable x >> x escriba la variable para conocer su contenido x= 2. ans proviene de answer >> x=exp(2)/3. Escriba cada ejemplo y presione la tecla de ingreso para finalizar. Los ejemplos de este manual debe probarlos en la ventana de comandos El símbolo >> indica que el programa está listo para recibir sus instrucciones. Por supuesto. Elija los nombres.a. cerrando las otras ventanas con el botón x. usted no tiene que escribir en el computador estas explicaciones. El entorno de MATLAB está organizado mediante ventanas Command Window: es la ventana de comandos para ejecución de instrucciones Command History: es el registro de los comandos que han sido ingresados.4630 respuesta mostrada por MATLAB >> x=exp(2)/3 al omitir . En Excel abra el archivo T y úselo como una tabla de datos Bibliografía Una primera mirada a MATLAB Cargue el programa MATLAB en su computador.4630 respuesta mostrada por Matlab. A: nombre de la matriz en MATLAB T: nombre para la tabla almacenada >> save T A -ascii b. se sugiere dejar activa únicamente la ventana de comandos. Inicialmente. MATLAB muestra el resultado inmediatamente. Ejemplo c. o un mensaje si hubo algún error. Para restaurarlas use la opción view de la barra de herramientas de MATLAB.

3. y=2*x+1.9260 respuesta mostrada por MATLAB >> x=x+1 puede modificar el contenido de las variables x= 3. >> x=exp(2)/3. ingrese la matriz de coeficientes >> b=[4. búsqueda y demostraciones. pi). 6]. muestre cuadrículas en el gráfico 3. z=3*x Puede escribir y ejecutar varios comandos en una misma línea y= 5. índice. Grafique la función f(x)=sen(x) ex en el intervalo 0 £ x £ p .2.3891 El sistema de ayuda de MATLAB Ofrece una descripción detallada del uso de cada comando. Resuelva el sistema: >> ezplot('sin(x)*exp(x)'.4630 respuesta mostrada por MATLAB >> y=2*x+1 puede usar el contenido de las variables y= 5. Ej. 2x + 3y = 4 5x ± 2y = 6 >> a=[2. ingrese el vector columna de constantes >> x=inv(a)*b. 0. obtenga la solución con la función para invertir >> x muestre el vector solución 2.9260 respuestas mostradas por MATLAB z= 7.4630 respuesta mostrada por MATLAB Puede reutilizar comandos con las teclas del cursor ¯ . lista de operadores >> help exp uso de un comando específico. Ej. Algunos ejemplos para apreciar el poder de MATLAB 1. escriba la función entre comillas simples >> grid on. -2]. función exponencial Adicionalmente. Pruébelo. presionando el ícono Help usted puede entrar al sistema de ayuda de MATLAB organizado por contenido. >> help despliega temas de ayuda >> help ops despliega comandos de un tema. 5.

0.. 2. 1]. para continuar un comando en la siguiente línea CÁLCULO NUMÉRICO Formatos de exhibición de números en la pantalla >> format long muestra 14 decimales >> x=exp(2) un ejemplo para visualizar >> format bank 2 decimales >> x >> format rat notación racional (fracciones) >> x . -3. 'x'). grafique la solución para 0 £ x £ 2 >> grid on muestre cuadrículas 5. Manejo simbólico de expresiones >> syms x defina x con tipo simbólico >> y=x^3-8 una expresión con x >> t=factor(y) factorar la espresión asignada a y >> e=taylor(exp(x).pi) integre entre 0 y p 6. expandir ex con 5 términos de la serie de Taylor Símbolos especiales que usa MATLAB [ ] para definir vectores y matrices ( ) para definir precedencia en expresiones y para subíndices . ingrese los coeficientes de la ecuación >> x=roots(a) obtenga y muestre las raíces de la ecuación 4. Obtenga la solución de la ecuación diferencial ordinaria: y´-x-y = 0. y(0)=1 >> f=int('x*sin(x)') obtenga el resultado analítico >> s=int('x*sin(x)'. condición y variable >> y muestre la solución analítica obtenida >> ezplot(y.'y(0)=1'. 0. >> y=dsolve('Dy-x-y=0'.. Integre la función f(x) = x sen(x) 7. para separar elementos de un vector use comas o espacios .>> a=[5. 2). 5). para separar filas y para evitar mostrar contenido de variables % para iniciar un comentario (programas y funciones) . Resuelva la ecuación cúbica 5x3 + 2x2 .3x + 1 = 0. defina la ecuación.

.* / \ ^ ( ) ^ se usa para potenciación / es división a la derecha \ es división a la izquierda >> help ops liste los operadores y caracteres especiales Funciones matemáticas exp. >> x >> format short 4 decimales (MATLAB lo usa por omisión) >> x >> format compact suprime líneas adicionales en la salida >> x >> format loose inserta líneas en blanco en la salida(recomendado) >> x >> format hex formato hexadecimal >> x >> vpa(sqrt(2). log. cos.. sqrt.. tan. >> help elfun liste las funciones matemáticas elementales Practique con expresiones aritméticas >> x=sin(3)+3*exp(2) Operadores relacionales y lógicos < <= > >= == ~= & | ~ los tres últimos corresponden a: Ù Ú ù == representa al símbolo = ~= representa al símbolo ¹ Practique con operadores relacionales y lógicos .>> format short e notación científica >> x >> format long e notación científica con 14 decimales >> x >> format + muestra signos +. 100) variable precision arithmetic (muestra la raíz cuadrada de 2 con 100 dígitos >> format short regrese al formato normal de MATLAB Operadores aritméticos + .. sin.. .

5 el resultado es un valor lógico (0 o 1) Símbolos numéricos especiales >> 2/0 Inf es el símbolo ¥ >> 0/0 NaN significa "Not A Number" (valor indeterminado) >> pi contiene la constante p >> eps es la precisión del tipo real en MATLAB >> realmin el menor número real en MATLAB >> realmax el mayor número real en MATLAB >> i representa al símbolo complejo Ö -1 Practique con números complejos >> x=3+2i asigne un número complejo >> t=2*x + 3 . complex >> z=3+2i. >> t=conj(z) obtenga el conjugado Variables y y y y y y No requieren ser declaradas Su tipo depende del valor asignado Pueden ser redefinidas Sensible al tipo de letra (mayúsculas o minúsculas) ans es la variable por omisión provista por MATLAB Matlab realiza la asignación de memoria a variables durante la ejecución. real. >> x=3 x es de tipo real >> x='mensaje' x es de tipo literal (use comillas simples) >> syms x x es un símbolo >> x=[2 7 4] x es un vector >> x=2+3i x es de tipo complejo >> x muestre el contenido actual de la variable . angle.>> t=sin(2) < 0. abs. imag.5i operación con números complejos >> y=exp(x) el resultado también es complejo >> y=log(-2) el referencial de MATLAB son los complejos Funciones adicionales para números complejos conj.8 & log(2) > 0.

asignación de una cadena (use comillas simples) . vea su uso con help. ingrese un valor para una variable desde el teclado >> exp(x)/3 >> ans la variable ans contiene el último resultado >> y=2*ans la puede usar Algunos comandos del Sistema Operativo >> help general lista de comandos >> who lista las variables en uso >> whos lista las variables en uso y su descripción clear borra variables.mat ejemplo >> quit para terminar la sesión con MATLAB (no lo digite) Comandos especiales >> date fecha >> clock fecha hora.>> whos x muestre el tipo actual de la variable >> disp(x) muestre solamente el contenido >> x=input('¿dato?').mat >> save prueba ejemplo load carga variables y su contenido >> load prueba ejemplo delete elimina archivo >> delete prueba. >> clear a b c ejemplo >> clc despeja la ventana de comandos >> pwd muestra cual es el directorio actual cd cambia la ruta del directorio actual >> cd c:\matlab\work ejemplo >> dir lista el contenido del directorio actual save almacena las variables en un archivo . >> format rat para visualizar la fecha con mas claridad >> clock >> format short vuelva al formato normal Cadenas de caracteres >> x='Matematica'.

5] para asignar un vector columna use . -1. >> t=x' para obtener la transpuesta de un vector use ' x' es la transpuesta del vector x >> y=[3. 0] >> y=2*x puede realizar operaciones escalares >> y=exp(x) o crear vectores con funciones >> a=[6 3 .. 7] puede asignar un vector usando otro vector >> y=[2:1:10] puede asignar un vector mediante una secuencia En MATLAB las secuencias se escriben: valor inicial : incremento : valor final si el incremento es 1 puede omitirlo >> y=[2. 5. 4. En MATLAB los índices se escriben entre paréntesis y son numerados desde 1 >> y=x(2: 4) para asignar parte de un vector use (inicio: final) >> t=[3. 4. Para continuar en la siguiente línea use . 7. . -1. -6.. manejo de una subcadena. 4.. 5 1] asignación directa de una matriz 2x2 separe elementos con espacios o comas separe filas con punto y coma >> a(2.. t) concatenación de cadenas >> help strfun liste las funciones para cadenas Vectores y Matrices >> x=[3. use: (inicio: final) >> n=length(x) longitud de la cadena >> c=strcat(x. -2] asignación directa de un vector fila >> x=[3 -1 4 7 -2] puede separar con comas o con espacios >> x(2)=5 manejo de un componente del vector. 7.1) manejo de los componentes de una matriz con índices numerados desde 1: (fila. use un indice En MATLAB los índices se escriben entre paréntesis y son numerados desde 1 >> t=x(2:5). 2. x. -3] escriba la continuación de la línea anterior >> x=[3.>> x(4) manejo de un carácter de la cadena. 5. columna) .

vector de tres componentes >> e=diag(b). -3.>> a=[2. 3. x] una matriz 2x2 >> b=[5. 5. 5. :) asigne a x la primera fila de c >> x=c(: . b'] c es una matriz aumentada 2x3 >> x=c(1. 1. b] c es una matriz aumentada 3x2 >> d=[a. 3] >> a=[x. matriz identidad 3x3 >> d=zeros(3).5) matriz 4x5 iniciada con ceros >> a=eye(5) matriz identidad 5x5 >> a=magic(4) cuadrado mágico 4x4 >> a=hilb(5) matriz de Hilberth 5x5 >> x=[2. matriz 3x3 con números aleatorios >> b=[5 3 9]. 6] >> c=[a. 7]. 7] una matriz 3x2 >> x=[7. >> a=vander(x) matriz de Vandermonde 4x4 usando un vector >> a=[ ] matriz nula Generación de números aleatorios >> x=rand genera un número aleatorio entre 0 y 1 >> a=rand(5) genera una matriz 5x5 con números aleatorios >> b=rand(4.5) matriz 3x5 iniciada con unos >> a=zeros(4. c d] matriz compuesta 9x9 . matriz con ceros 3x3 >> t=[a e. 0.5) genera una matriz 4x5 con números aleatorios >> d=fix(rand*10)+1 transfomación para obtener un entero aleatorio entre 1 y 10 Una matriz puede componerse con otras matrices >> a=rand(3).2)=[ ] elimine la segunda columna de c Matrices especiales >> a=ones(5) matriz 5x5 iniciada con unos >> a=ones(3. matriz 3x3 con b en la diagonal >> c=eye(3).1) asigne a x la primera columna de c >> c(:.

equivale a: a*a >> c=a. 5. columnas 2 y 3 de a Operaciones con matrices >> a=[3. 4].*b producto elemento por elemento de matrices para operar elemento a elemento use un punto antes del operador >> c=a^2 matriz al cuadrado. 2. 6. 4 y. 5 7 8. 6. un vector para los ejemplos .1 del vector x >> a=[4 7 3. vector para direccionar las columnas de la matriz a >> t=a(p. q) t contiene las filas 1 y 3. elevar al cuadrado >> c=a==b compare igualdad entre matrices (de igual tamaño) el resultado es una matriz binaria (ceros y unos) >> c=a~=b compare si dos matrices no son iguales el resultado es una matriz binaria (ceros y unos) >> c=a>3 compare si cada elemento de a es mayor a 3 el resultado es una matriz binaria (ceros y unos) Funciones para matrices >> x=[-2. Elementos de vectores y matrices pueden manejarse con otro vector o matriz >> x=[ 8 7 9 5 6]. 0. con el cual puede modificar con facilidad las dimensiones y el contenido de vectores y matrices. 6 0 9]. 1. vector para direccionar al vector x >> t=x(p) t contiene los elementos 2.Editor de matrices En la ventana workspace puede activar el editor de arreglos. >> b=[8.^2 cada elemento de la matriz a. vector para direccionar las filas de la matriz a >> q=[2 3]. 5]. similar a una hoja electrónica. >> c=a' transpuesta de a >> c=2*a producto de un escalar por matriz >> c=a+b suma de matrices >> c=a*b producto de matrices >> c=a. >> p=[2 4 1]. 7]. >> p=[1 3].

una matriz para los ejemplos >> n=length(x) longitud del vector x >> [n.m]=size(a) tamaño de la matriz a: el resultado es un vector >> n número de filas: 3 >> m número de columnas: 3 >> exist('c') chequea si la variable existe >> isempty(a) chequea si un vector o matriz está vacío >> any(x) determina si el vector contiene algún valor no cero >> any(a) igual que arriba.c]=find(a) obtiene los índices de filas y columnas de la matriz cuyos elementos son no ceros >> t=dot(x. >> b=reshape(b.s]=lu(a) descomposición triangular de a en las matrices >> t triangulares t y s tales que t*s es igual que a . 3) reconfigura la matriz b de 3x2 a 2x3 >> [t. 8. inf) norma de fila de la matriz a >> h=norm(x. 5. 2. 9]. 2. 7]. pero por columnas de la matriz >> t=find(x) obtiene índices de elementos del vector no ceros >> t=find(x>3) obtiene los índices de cada elemento > 3 >> [f. 4.-1. 6. inf) norma de fila o columna del vector x >> c=cond(a) número de condición de la matriz a >> t=diag(a) vector con la diagonal de la matriz a >> t=diag(x) matriz con x en la diagonal >> t=rot90(a) rote a 90 grados (sentido opuesto al reloj) >> t=fliplr(a) voltee horizontalmente la matriz a >> t=tril(a) obtenga la matriz triangular inferior de a >> t=triu(a) obtenga la matriz triangular superior de a >> b=[5. x) producto punto entre dos vectores >> k=rank(a) rango de a >> t=trace(a) traza de a >> d=det(a) determinante de a >> b=inv(a) inversa de a >> h=norm(a.7. 4. 2.>> a=[1. 3. 3. 1) norma de columna de la matriz a >> h=norm(a.

y]=ginput(5). ingrese 5 puntos desde la pantalla . 4. 4].-1. una matriz >> t=max(x) el mayor valor del vector x >> v=max(a) el mayor valor por columnas de la matriz a >> t=sum(x) suma de componentes >> v=sum(a) suma de componentes por columnas >> t=prod(x) producto escalar >> v=prod(a) producto escalar por columnas >> t=cumsum(x) suma acumulada >> v=cumsum(a) suma acumulada por columnas >> t=cumprod(x) producto acumulado >> v=cumprod(a) >> t=mean(x) media aritmética >> v=mean(a) >> t=median(x) mediana .>> s >> t*s se obtiene la matriz a >> t=cov(a) matriz de covarianza de a >> e=eig(a) valores propios de a >> p=poly(a) polinomio característico de a >> r=roots(ans) valores propios de a >> help matfun liste las funciones para matrices Ingreso de puntos desde la pantalla con el mouse >> ezplot('sin(x)'). y. Presione el botón del mouse para ingresar cada punto >> x observe las abscisas >> y y las ordenadas ingresadas >> plot(x. 2. ejemplo para tomar puntos desde un gráfico >> grid on >> [x. 5. 'o') grafique los puntos ingresados Funciones adicionales para manejo de datos con vectores y matrices >> x=[2. un vector >> a=[5. 3. 7].

-3. r]=deconv(a.b) producto de polinomios >> [c.v) gráfico tipo pastel con un sector separado Polinomios >> a=[2.1. valor para interpolar. define el polinomio 3x2+ 4x .8 6. 0.b). abscisas de puntos (x. 4.3].2 >> c=conv(a.1 5. 5}. -2]. x(1)) verifique una raíz >> p=poly(x) producto de todas las raíces >> b=[3. polinomio de mínimos cuadrados de grado 2 >> a el vector a contiene los coeficientes .4 6.>> v=median(a) >> t=std(x) desviación estándar >> v=std(a) >> t=sort(x) ordenamiento ascendente >> v=sort(a) >> t=dsort(x) ordenamiento descendente >> bar(x) diagrama de barras >> bar(a) >> hist(x) histograma >> stairs(x) dibuja x mediante escalones >> pie(x) gráfico tipo pastel >> pie3(x) pastel en relieve >> v=[0.y) >> y=[3.¶linear¶) resultado de la interpolación lineal >> u=spline(x. división de polinomios >> c cociente >> r residuo >> x=[2 3 5 7 8].4) evaluación del polinomio con un valor >> x=roots(a) obtenga un vector con raíces (reales y complejas) >> t=polyval(a.z.y.0] vector para extraer sectores del pastel >> pie3(x. define el polinomio 2x3 ± 3x2 + 5 >> y=polyval(a.2 4. y.z) interpolación con un trazador cúbico >> a=polyfit(x. ordenadas de los puntos >> z=3.2.y. 2). z puede ser un vector >> u=interp1(x.

cinco puntos (x. la recta de mínimos cuadrados y el trazador cúbico para un conjunto de datos dados >> x=[1 2 4 5 7].1: 7].'g') grafique el trazador cúbico con verde >> hold off deshabilite la superposición de gráficos MANEJO SIMBÓLICO >> syms x. puntos para evaluar el polinomio >> p=polyval(a.y.p) grafique el polinomio de interpolación >> b=polyfit(x. >> plot(x. 5 puntos: grado 4 >> a coeficientes a(1)x^4 + a(2)x^3 + a(3)x^2 + . polinomio de interpolación. definición simbólica de una función >> t=factor(f) factorar la expresión >> s=expand(t) expandirla >> e=taylor(exp(x)) expansión con la serie de Taylor . matriz con elementos símbolos >> t=inv(a) su inversa también contiene símbolos >> t=solve(2*x^2+3*x-2) solución de una ecuación >> f=3*x^2+5*x. y) para el ejemplo >> y=[5 3 6 7 4].y.s. evalúe el polinomio con z obtenga puntos p >> plot(z. >> z=[1: 0.q.y.Practique: Obtenga y grafique el polinomio de interpolación. definición de variable tipo simbólico >> 2*x+3*x suma algebraica >> a=[x 5.z).1). recta de mínimos cuadrados (grado 1) >> b coeficientes de la recta: b(1)x + b(2) >> t=[1 7].z).. puntos extremos de la recta (abscisas) >> q=polyval(b..'r') grafique la recta en color rojo >> s=spline(x.t).y. evalúe con z el trazador cúbico y obtenga s >> plot(z. 3*x 4].'o') grafique los datos con círculos >> grid on poner cuadrículas >> hold on superponer los siguientes gráficos >> a=polyfit(x. obtenga las ordenadas respectivas de la recta >> plot(t.4).

>> x=solve(f) >> x=double(x) cambia la solución simbólica a real x= 0.5538 resultados de MATLAB 1.6385 resultado de MATLAB >> x=fzero(f.6385 >> x=fzero(f.2]) solución usando un rango para la raiz x= 1.b = 3'.'x') .>> limit(sin(x)/x) obtencíon de límites de funciones >> syms y.2) solución de una ecuación con un valor inicial x= 1.4*b .5 = 0') resuelve un sistema de dos ecuaciones no lineales >> a=double(a) para expresarlas en forma real >> b=double(b) >> f='exp(x)-pi*x'. integral impropia solución analítica y gráfico de una EDO de primer orden con una condición en el inicio >> y=dsolve('Dy=(x-y)/x'. >> f=2*x^3+3*y^2 una función de dos variables >> g=diff(f. 0.[1.'a^2 . Inf). >> y=eval(f) evaluación de la función >> [a. 0. >> r=int(g.x) integrar en x Funciones adicionales con expresiones simbólicas >> f='2*t+1'.b] = solve('a^2 + a*b .x) derivada parcial >> u=int(f.6385 resultado de MATLAB >> u=diff(f) diferenciación >> v=int(f) integración analítica >> r=int(f. definición de una función en forma literal >> t=3.'y(0)=0'. 2) integración entre límites >> g='x*exp(-x)'.

>> grid on EDO de segundo orden con condiciones en el inicio y gráfico de la solución >> y=dsolve('D2y+Dy+2*y-x-3=0'.'y(0)=0. Use la función fminbnd para obtener el mínimo x: radio. de tal manera que el valor del área sea el mínimo: Primer enfoque: 1.5810 Segundo enfoque .0. Localice el intervalo para el mínimo de f(x) 3.-2.0.2) Ejercicio: Escriba directamente las instrucciones necesarias para encontrar el valor del radio x de un cilindro de 1000 cc de capacidad. h: altura >> f='2*pi*x*1000/(pi*x^2)+2*pi*x^2'.2) encuentra un mínimo local de f en 1 £ x £ 4 >> ezplot(f. >> [x.4.0.'x') >> ezplot(y.4193 >> area=eval(f) area = 553.10) >> grid >> x=fminbnd(f.y(1)=2'.-2. >> grid on. >> grid on >> f=¶2*sin(x)*exp(x)¶.2).2).6) x= 5.y]=fminbnd(f.Dy(0)=1'.'x') >> ezplot(y. EDO de segundo orden con condiciones en los bordes >> y=dsolve('D2y-Dy+2*y-5*x-3=0'. Grafique f con ezplot. Escriba una función f en términos del radio x 2.'y(0)=0.>> ezplot(y.0. >> ezplot(f.2).

6932i -2. [0.4193 -2. toc tiempo utilizado en invertir una matriz 500x500 GRAFICACIÓN Gráfico de funciones de una variable >> f='exp(x)-3*x'. 2.7096 . función para el ejemplo (use comillas simples) >> ezplot(f) función básica para graficar f en [-2p . Inicia cronómetro >> toc. 2p ] >> ezplot(f. h: altura >> g=diff(f) g= -2000/x^2+4*pi*x >> x=fzero(char(g). Derive f y obtenga la función a minimizar g.4. 4.1. muestra el tiempo transcurrido >> tic. 2]) función básica para graficar f en un dominio dado >> grid on colocar cuadrículas en el dibujo . a=inv(rand(500.7096 + 4.6932i Funciones especiales para medir eficiencia de algoritmos >> tic. 3.6]) x= 5. Grafique g con ezplot. Localice el intervalo de la raíz de g(x)=0 Use la función fzero para obtener la raíz Use la funcion solve para obtener la raíz x: radio. 500)).4193 >> x=solve(g) x= [ 5/pi*4^(1/3)*(pi^2)^(1/3)] [ -5/2/pi*4^(1/3)*(pi^2)^(1/3)+5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)] [ -5/2/pi*4^(1/3)*(pi^2)^(1/3)-5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)] >> x=double(x) x= 5.[4.

Ej. Activando el gráfico 1 >> clf(1) borra el gráfico 1 >> clf borre todos los gráficos >> x=[0:0.1) puede dividir una figura en subgráficos. Puede elegir r. 'rosa' de 3 pétalos >> polar(a. puntos de la función seno >> plot(x.01:2*pi.y. 2*pi.y) >> loglog(x.'og') grafique con círculos verdes. 2.m. >> y=exp(x)..1:10}.y. en 2 filas y 3 columnas.g. .1: 2*pi].y. >> grid on colocar cuadrículas en el dibujo >> title('seno de x') incluya un título en el gráfico >> gtext('seno de x') posicione el texto en el gráfico con el mouse >> xlabel('X') rotule el eje horizontal >> ylabel('Y') rotule el eje vertical >> c=[0. >> r=sin(3*a).>> x=[0: 0. -2. >> subplot(2. * + x ->> plot(x. puntos para evaluar alguna función >> y=sin(x).k >> plot(x.y).3.y) doble logarítmica >> grid on >> a=0:0. Puede elegir: o . grafique en coordenadas polares Gráfico de funciones implícitas y ecuaciones con dos variables . función para graficar la función con línea contínua >> plot(x. >> semilogx(x. r).'r') cambiar a color rojo.'o') gráfico con puntos.y) graficar en escalas logarítmicas >> semilogy(x.w.b.y. 2] defina la región para el gráfico >> axis(c) >> hold on superponer siguientes gráficos >> hold off deshabilitar opción anterior >> clf borrar el gráfico >> figure(1) puede tener varias figuras abiertas cada una en una ventana rotulada con 1..

etc.6]) Gráfico de funciones definidas en forma paramétrica >> ezplot('sin(t)'. También puede realizar estadísticas básicas y ajuste de curvas.5. también con ylabel.y). tipo.y >> z=u. y.1:3.v]=meshgrid(x.>> f='(x-2)^2+(y-3)^2-5'. y. y=y(t) en -p £ t£ p >> ezplot('sin(3*t)*cos(t)'. puntos de la función z = x2 ± y2 >> mesh(x. y. u.[-1.[-pi. -3£ y£ 3 >> x=-2:0.0.5.[-1. z) gráfico de superficie >> xlabel('X') rotulación de eje x. -2£ x£ 2. elija respectivamente Data Statistics y Basic Fitting Gráfico de funciones de dos variables >> a=[1 3 2. Para habilitar el editor de gráficos seleccione el botón tools en la barra de opciones del gráfico y luego elija edit plot. Graficar x=x(t). -2p £ y£ 2p >> ezplot(f.0. z) gráfico de contorno >> surfc(x. 0£ y£ 6 >> grid on.6]) Graficar f en el dominio -1£ x£ 5. 4 5 2]. flechas.'cos(t)'. z) gráfico de malla >> contour(x. líneas. Colocar cuadrículas >> hold on. Adicionalmente puede insertar directamente en el gráfico texto.pi]). 5 3 7. Una rosa de 3 pétalos Editor de gráficos Después que el gráfico ha sido realizado puede utilizar las facilidades del editor de gráficos para cambiar las propiedades de las figuras: color. Superponer el siguiente gráfico: >> g=¶y-2*(x-3)^2-3¶.'sin(3*t)*sin(t)'. >> [u.1:2. Graficar la circunferencia (x . graficar los elementos como puntos sobre el plano. rótulos.^2. Para realizar estadísticas básicas y ajuste de curvas.2)2 + (y . dominio de la función para el ejemplo >> y=-3:0. y.pi]).3)2 = 5 en el dominio -2p £ x£ 2p . etc. una matriz 3x3 >> mesh(a). una parábola y=2(x-3)2-3 en el mismo dominio >> ezplot(g. v: matrices q' contienen cada par ordenado x. >> ezplot(f). zlabel . El siguiente ejemplo es una referencia para graficar funciones de dos variables Graficar z = x2 ± y2. z) gráfico de superficie y contorno >> surf(x.[0.^2 ± v.

ejemplo: prueba Para ejecutar el programa escriba en la ventana de comandos >> prueba Para editar un archivo de comandos. grid on Guarde el archivo con algún nombre. . seleccione en la barra de herramientas de MATLAB la opción: File ® New ® M-file o presione en el ícono respectivo. etc.y). rotar. seleccione en la barra de herramientas de MATLAB la opción: File ® Open o seleccione el ícono respectivo.>> title('Silla de montar') título para el gráfico >> colormap(copper). Guarde el gráfico con tipo . color del gráfico. en el lugar elegido. insertar títulos. o script). En el archivo abierto en la ventana de edición haga los cambios y guárdelo nuevamente con el mismo nombre. Escriba en la ventana de edición las instrucciones para graficar sen(x) entre 0 y 2p x=0:0. Insertar el gráfico en un documento Si desea insertar el gráfico elaborado con MATLAB en un documento. cambiar la perspectiva. y=sin(x). usualmente escrito en WORD. Estructuras de control de flujo en MATLAB Instrucciones de Entrada y Salida Ingreso de un dato desde el teclado: variable=input(µmensaje¶). Se abre una ventana de edición En la ventana de edición escriba los comandos y almacénelos en un archivo con algún nombre.jpg Copie el gráfico almacenado y péguelo en el documento. suavizado del gráfico (¡ tiene que verlo !) Adicionalmente puede usar las opciones del editor de gráficos para editar la figura. Puede incluir comentarios con el símbolo % Ej. plot(x. PROGRAMACIÓN CON MATLAB Archivos de comandos Para crear un archivo de comandos (programa. jet. también: gray. puede seguir el siguiente procedimiento: Elija en la barra de opciones del gráfico el botón File y luego la opción Export Elija una carpeta para almacenar el gráfico y un nombre para el gráfico.1:2*pi. pink >> shading interp.

b=input('ingrese el segundo dato '). x=2^7. Salida de un resultado a la pantalla: disp(valor) Ej. y=sqrt(pi). x=2^7. Otras especificaciones de formato puede verlas con help fprintf Decisiones (instrucción if) if condición if condición instrucciones instrucciones end else instrucciones end Ej. y=sqrt(pi).x. «]). Puede especificar cantidad de columnas y decimales: Ej. disk([x. valor. x = input('ingrese un dato ').x. fprintf('%5d %8. Salida de resultados formateados a pantalla: fprintf(µformatos¶.variables) Ej.3f¶'. x=exp(2). .y).Ej. Escriba y almacene el siguiente programa para mostrar el mayor entre dos datos: a=input('ingrese el primer dato '). Salida de mas de un resultado a pantalla: disp([valor. y=sqrt(pi). fprintf('%d %f¶'. disp(x).y). y]). x=2^7. Ej.

end disp(y). otherwise y=exp(x). y=3.3. switch x case 1. Almacénelo con algún nombre. end disp(m). case {2. else m=b. y=2*x+1. Ejemplo prueba2 Para usarlo escriba en la ventana de comandos >> prueba2 Repetición condicionada al inicio (instrucción while) while condición instrucciones . Guárdelo con el nombre prueba y úselo desde la ventana de comandos: >> prueba ingrese el primer dato 5 interacción con MATLAB ingrese el segundo dato 8 8 Decisiones múltiples (instrucción switch) Ej.if a>b m=a.4}. Escriba el siguiente programa para instrumentar la definición: y= x=input('dato ').

while n>0 s=s+1/n. for i=1:n x=input(µingrese siguiente dato µ). . Sume los n primeros términos de la serie armónica: n=input('cantidad de terminos '). Almacénelo con algún nombre. end disp(s). s=0. Calcule y muestre la raíz cuadrada. for i=1:n s=s+1/i.end Ej. Ejemplo prueba3 Para usarlo escriba en la ventana de comandos >> prueba3 Repetición condicionada a una secuencia (instrucción for) for variable=inicio: incremento: final instrucciones end Ej. Ejemplo prueba4 Para usarlo escriba en la ventana de comandos >> prueba4 Puede interrumpir una repetición (instrucción break) Ej. Sume los n primeros términos de la serie armónica: n=input('cantidad de terminos '). end disp(s). Lea n datos. Pero si entra un valor negativo. muestre un mensaje y termine n=input(µcantidad de datos µ). s=0. n=n-1. Almacénelo con algún nombre.

escriba >> help lang Funciones en MATLAB En general una función en los lenguajes de programación es un conjunto de instrucciones que se escriben separadamente del programa y que realizan alguna tarea especificada. pero su uso debe ser coherente.if x<0 disp(µError¶). a menos que se use una declaración explícita y que se verá mas adelante. El uso de una función es similar al uso de las funciones comunes de MATLAB. disp([x. . end end Para ver la descripción de las estructuras del lenguaje de MATLAB. break. Escriba una función para elegir el mayor entre dos números Abra un documento nuevo en la ventana de edición y escriba: function m = mayor(a. a diferencia de los programas. Ej. b) if a>b m = a. aunque los parámetros pueden tener nombres diferentes. El nombre debe coincidir con el nombre asignado. Declaración de una función en MATLAB function variable = nombre (parámetros) instrucciones variable contendrá el resultado que entrega la función parámetros son variable que reciben los datos que entran a la función nombre identifica a la función instrucciones se incluyen en la función según la tarea especificada Las funciones se escriben en la ventana de edición de Matlab y se las almacena en alguna carpeta. Los usuarios pueden definir funciones y agregarlas a las funciones propias de MATLAB. Es conveniente que el nombre asignado sea igual al nombre usado en la declaración de la función.r]). las variables que se usan dentro de una función. Sin embargo. El mecanismo usual para trasmitir datos a las funciones es mediante una lista de variables que se denominan parámetros. no están disponibles fuera de ella. else r=sqrt(x).

else m = b. b son los parámetros que ingresan los datos a la función Almacene esta función en el disco con el nombre mayor Suponer que quiere escoger el mayor entre ep y p e. El resultado que entrega la función será 1 o 0 según corresponda. end end if c > 2 p = 0. >> b = pi^exp(1). for d = 1: x if mod(x. y) 1407. d) == 0 c = c + 1.1407 (respuesta que muestra MATLAB) Los nombres de las variables pueden ser diferentes: >> x = exp(pi). else p = 1. >> m = mayor(a. end m es la variable que entrega el resultado mayor es el nombre de la función a. function p = primo( x ) c = 0. >> y = pi^exp(1). >> t = mayor(x. b) 23. end . (respuesta que muestra MATLAB) Ej. Escriba una función que reciba un número y determine si es un número primo. Escriba en la ventana de comandos: >> a = exp(pi).

Escriba una función que reciba 3 números y entregue como resultado el mayor con el siguiente encabezado: 2.c) . (resultado que muestra MATLAB) 2. (resultado que muestra MATLAB) Escriba en una nueva ventana de edición un programa que use la función primo para encontrar todos los números primos menores a 20: for x = 1: 20 if primo(x) == 1 disp(x).Guarde la función en el disco con el nombre primo Pruebe la función desde la ventana de comandos >> x = 25. end end Almacene su programa en el disco con el nombre prueba En la ventana de comandos pruebe su programa: >> prueba 1 (resultados mostrados por MATLAB) 2 3 5 7 11 13 17 19 Ejercicios. >> x = 43.1. >> p = primo(x) 1. >> p = primo(x) 3.b. function m=mayor(a.

v] = cilindro(r. Use la función para calcular el área y el volumen de una lata de cilíndrica que tiene un diámetro de 10cm y una altura de 12cm Escriba en la ventana de comandos: >> r = 5. h) area = 2*pi*r*h + 2*pi*r^2. es decir que a diferencia de los programas.h). vol = pi*r^2*h. Almacene con el nombre fn y úsela desde la ventana de comandos: >> a = 3.Escriba un programa que lea las tres dimensiones de un bloque. Escriba y almacene la función con el nombre cilindro. >> a >> v MATLAB mostrará los resultados almacenados en a y en v Las variables definidas dentro de una función son locales. Escriba la función: function x=fn(a. calcule el valor de las diagonales de sus caras y use la función anterior para encontrar el valor de la mayor diagonal 3. no son visibles fuera de la función Ej. >> [a. >> h = 12. b) c = a + b. x = 2*c. . vol] = cilindro(r. >> b = 5. Escriba una función que entregue el área y el volumen de un cilindro dados su radio (r) y su altura (h) function [area. Escriba una función que muestre cual es el valor de la suma de los cubos de los primeros n números naturales con el siguiente encabezado: function s=suma(n) Escriba n programa que use la función suma y la función primo anterior para determinar si las suma de los cubos de los 7 primeros números naturales es un número primo Una función puede entregar más de un resultado Las variables que entregan los resultados deben definirse entre [ ] Ej.

>> b = 5. Almacene con el nombre prueba y active el programa: >> prueba ingrese dato 3(interacción para ingreso de datos) ingrese dato 5 16(resultado que muestra MATLAB) >> c c = 8(la variable c puede ser utilizada) Es posible hacer que las variables de una función sean visibles fuera de su ámbito. a = input(µingrese dato µ). x = 2*c. c = a + b. c = a + b. Modifique la función fn para que la variable c sea visible: function x=fn(a. Almacene con el nombre fn y use la función: >> a = 3. (mensaje de error de MATLAB) Compare con lo que ocurre si escribe un programa en vez de la función. disp(x). b = input(µingrese dato µ).>> t = fn(a. b) t = 16 (resultado que muestra MATLAB) >> c(intentamos conocer el valor de c en la función) c=8(la variable c está disponible ahora) Una función puede no necesitar parámetros . >> t = fn(a. b) global c. x = 2*c. b) t = 16(resultado que muestra MATLAB) >> c(intentamos conocer el valor de c en la función) ??? Undefined function or variable 'c'. mediante la declaración global Ej.

if n>0 & n<6 x=1. Escriba una función que lea y valide un entero entre 1 y 5 function n=entero x=0. >> t=prom(x) t = 4. while x==0 n=input(µingrese un entero entre 1 y 5 µ). for i=1:n s=s+x(i). para usa esta función escriba >> menu Una función puede recibir como parámetros vectores o matrices.Ej. disp(µ2) borrar¶). function p=prom(x) n=length(x). end p=s/n. s=0.8571 (es el resultado que muestra MATLAB) Una función puede entregar como resultado un vector o una matriz . end end Una función puede no entregar resultados ni usar parámetros Ej. Ej. Para usar esta función debe definir el vector antes de llamar a la función. Escriba una función que reciba un vector y entregue el promedio del valor de sus elementos. Escriba una función que imprima un menú function menú disp(µ1) ingresar¶). disp(µ3) salir¶). La función determina la longitud del vector con la función length >> x=[2 7 3 5 4 7 6].

B) n=length(A). Recuerde que pueden tener nombres diferentes a los que usa la función: >> A=[2 7 5 4 3 8]. m=length(B). end end end Para usar esta función debe definir los vectores que entran. for i=1:n for j=1:m if A(i) == B(j) C(k) = A(i). k=1. >> C=interseccion(A. k = k + 1. puede usar el comando return Ej.B) C = 7 3 (Es el vector resultante que entrega MATLAB) Si la salida de una función es antes del final.Ej. Escriba una función que entregue un vector de longitud n conteniendo números aleatorios enteros con valor entre 1 y 6: function d=dados(n) for i=1:n d(i)=fix(rand*6+1). Escriba una función para determinar si los elementos de un vector están en orden creciente: function t=orden(x) . Escriba una función que reciba dos vectores A. B y entregue un tercer vector que contenga los elementos que están en ambos vectores: function C=interseccion(A. >> B=[7 1 3 9 0]. end Para usar esta función debe enviar un valor para el parámetro n: >> t=dados(5) t = 6 3 4 3 2 (es el vector resultante que entrega MATLAB) Una función puede recibir y entregar vectores o matrices Ej.

y luego muestre un mensaje en caso de que sea simétrica: sus caracteres opuestos son iguales f=input('ingrese una frase '). for i=1:n-1 if x(i) > x(i+1) return. x=''. use la función compactar para eliminar los espacios intermedios. f=compactar(f). for i=1:n/2 if f(i) ~= f(n-i+1) sim=0. else .t=0. end end t=1. n=length(f). f(i)). n=length(x). Un programa puede llamar a funciones Ej. sim=1. end end Ahora escriba un programa que lea una frase. for i=1:n if f(i) ~= ' ' x = strcat(x. Escriba una función para eliminar espacios intermedios de una frase: function x=compactar(f) n=length(f). end end if sim == 1 disp('la frase es simetrica').

(dato que ingresamos) la frase es simetrica (resultado de MATLAB) Una función puede llamarse a si misma Estas funciones de denominan recursivas Ej. b) if a>b c=mcd(a-b.disp('la frase no es simetrica'). 48) Para desplegar un mensaje de error y terminar la ejecución use error Ej. end end Use la función: >> x=mcd(36. else if b>a c=mcd(a. Use la siguiente definición recursiva para calcular el máximo común divisor entre dos números enteros: Escriba y almacene una función para instrumentar esta definición: function c=mcd(a. if d<0 error('valor incorrecto'). b-a). else c=a. end ---------------------------------------------------------------------------------- . end Probamos este programa suponiendo que lo hemos almacenado con el nombre prueba: >> prueba ingrese una frase 'anita lava la tina'. b).

005 0.7.2. con media 10 y desviación estándar 2. 2).05.0784 Practique: Una función que entrega un resultado analítico .5) p= 0.4 y 13.1).2113 c= 1.p.995].2.9900 Prueba de Hipótesis [h.normcdf(11.2879. 10. >> x=norminv(p. 2) .4.1:10.c]=ztest(x.p.5) x= 0. >> plot(x.9216 2.0.0.0.7121. >> [h.2879 Para chequear >> p=normcdf(3. p= 0.5)-normcdf(0.sn). tenga un valor entre 11. 10. >> p=normpdf(x.04) h= 0 p= 0.0.2.p) normcdf: Distribución de probabilidad normal acumulada Calcule la probabilidad que una variable aleatoria distribuida normalmente.5 >> p=normcdf(13.2.c]=ztest(2.7121 3.u.Practique: Funciones del Módulo de Estadística normpdf: distribución de probabilidad normal >> x=4:0.2019 norminv: Inversa de la distribución normal acumulada Encuentre un intervalo de 99% de probabilidad para una variable con distribución normal con media 2 y desviación estándar 1 >> p=[0.5.

n=length(x). 9]. end end p=p+L*y(i).y) p=0.'o').x(5)) Manejo de archivos en MATLAB El siguiente ejemplo completo es una referencia para conocer las instrucciones de MATLAB para manejo de archivos Una aplicación de manejo de un archivo con datos de estudiantes. for i=1:n L=1.x(1).7. for j=1:n if i~=j L=L*(t-x(j))/(x(i)-x(j)). >> p=Lagrange(x. abrirlo para agregar datos y ofrecer las siguientes opciones mediante un menú: 1) Ingreso de un nuevo dato . end Use la función desde la línea de comandos >> x=[3.y) >> plot(x.8]. Los datos que se almacenan en el archivo incluyen: código del estudiante (entero de 5 dígitos) código de la materia (entero de 5 dígitos) calificación obtenida por el estudiante en la materia (entero de 3 dígitos) El programa debe pedir un nombre para el archivo. syms t.5. 4. hold >> ezplot(p.y. 5.9. 8.2. 4.Escriba y almacene una función para obtener el polinomio de interpolación en forma analítica con la fórmula de Lagrange: function p=Lagrange(x. 6. p=simplify(p). grid. 6. 5. >> y=[3.

mostrar los estudiantes y su calificación 4) Salir Variables que son usadas en el programa e codigo de estudiante m codigo de materia c calificacion arch nombre del archivo dado por el usuario function control global arch. f=fopen(arch. arch=input('ingrese el nombre del archivo '). ingresar. case 3. disp('1) ingreso'). clc. function ingresar global arch. disp('4) salir').'a+'). while op~=4 op=menu. case 2. switch op case 1. disp('3) consulta por materia'). disp('2) consulta por estudiante'). end end function op=menu clc.2) Dado el código de un estudiante. op=input('ingrese una opcion '). consultae. op=0. consultam. e=input('codigo de estudiante '). mostrar sus materias y calificaciones 3) Dado el código de una materia. .

function consultam global arch. f=fopen(arch.e. return. if f<0 disp('archivo no existe '). fclose(f).c). while ~feof(f) e=fscanf(f. end x=input('codigo de estudiante '). if f<0 disp('archivo no existe '). end end pause. c=input('calificacion ').'%d'. f=fopen(arch.1).m). return.1).c).'r').m=input('codigo de materia '). m=fscanf(f.'r'). fprintf(f.1). if e==x fprintf('\n codigo de materia %5d'. fclose(f). function consultae global arch.m.'%5d%5d%3d'. c=fscanf(f.'%d'.'%d'. pause. pause. end . fprintf('\n calificacion %3d'.

Ejemplo c. fclose(f). m=fscanf(f. A: nombre de la matriz en MATLAB T: nombre para la tabla almacenada >> save T A -ascii b. En MATLAB cargue la tabla T y úsela como una matriz: >> load T.1).txt b. INTERACCIÓN CON OTROS ENTORNOS Interacción con EXCEL 1) Importar una tabla de datos desde Excel a una matriz en MATLAB a.x=input('codigo de materia '). En Excel abra el archivo T y úselo como una tabla de datos .txt. >> A=T 2) Exportar una matriz de datos desde MATLAB a una tabla en Excel a.1). En MATLAB cree una matriz y almacénela con el comando save con el siguiente formato.e).1). end end pause.c). fprintf('\n calificacion %3d'.'%d'. while ~feof(f) e=fscanf(f.'%d'.'%d'. if m==x fprintf('\n codigo de estudiante %5d'. Elija los nombres. Elija algún nombre. Ejemplo T. c=fscanf(f. En Excel cree la tabla y almacénela con formato tipo texto delimitado con tabulaciones.

Sign up to vote on this title
UsefulNot useful