Está en la página 1de 39

Software de Simulación

MANEJO DE MATLAB
MatLab significa en inglés Matrix Laboratory. Éste programa fue creado para
trabajar principalmente con matrices aunque también permite la posibilidad de trabajar
con números reales y complejos.
A MatLab se le puede considerar como un lenguaje de programación (como c++ por
ejemplo) enfocado hacia el análisis numérico y matemático, y cuenta con características
muy especiales como por ejemplo: la continuidad entre valores enteros, reales y
complejos. Lo anterior significa que no hay necesidad de declarar las variables antes de
ser utilizadas, ya que todas son tratadas por igual. También la biblioteca de funciones
que está incluida con MatLab es mucho más amplia que la de cualquier otro lenguaje de
programación; incluye abundantes herramientas gráficas, incluido una GUI y también se
puede vincular con otros lenguajes de programación: Todo lo anterior son sólo algunas
de las características de MatLab.
Ha llegado la hora de que inicies MatLab en tu ordenador. Verás una pantalla similar
a la siguiente (esta pantalla puede variar un poco dependiendo de la versión):

En esta ventana se pueden observar los siguientes elementos:


La ventana del área de trabajo (workspace): en ella se muestran las variables con
las que estamos trabajando actualmente. Esta ventana tiene en su parte inferior
una pestaña llamada directorio actual (Current Directory) que nos mostrará
nuestro directorio actual de trabajo y los archivos que contiene.
La ventana del historial de comandos (command history): es la ventana en la
cual se almacenan los comandos que hemos introducido de manera cronológica.
La ventana de comandos (command window): es por medio de la cual
introducimos los datos y observamos los resultados. Cuando se muestra el

1

Software de Simulación
símbolo " » " en esta ventana, significa que el programa está listo para que
empecemos a introducir comandos.
Operadores aritméticos
Los operadores aritméticos usados en MatLab son los siguientes:
+ suma
- resta
* multiplicación
/ división
\ división inversa (produce el inverso de la división: a\b=b/a)
^ potenciación (a^b significa a elevado a la b)
Como se ha mencionado antes, a pesar de que MatLab ha sido pensado para trabajar
con matrices también permite usar números reales. Veamos los siguientes ejemplos en
los que las ordenes serán escritas a continuación del símbolo » tal como se muestran y
se deberá presionar intro después de cada una de ellas:
2+5
Lo cual nos producirá el siguiente resultado:

Podemos ver que el resultado se muestra bajo el nombre ans; esta es la variable por
defecto en la que se almacenan los resultados. Más adelante en otro documento
revisaremos el uso de las variables.
Ahora prueba con la siguiente instrucción:
12*7;
Y aparece la siguiente ventana:
2

Software de Simulación

en la cual no se muestra el resultado del cálculo anterior. Esto es por que al final de la
línea hemos incluido el carácter ; (punto y coma) el cual indica que no se debe
visualizar el resultado, sin embargo la variable ans existe y contiene el resultado del
cálculo anterior (para verificarlo puede mirar la ventana del espacio de trabajo). Para
visualizarla simplemente basta con teclear la palabra ans y esta se mostrará:

Trabajando con complejos
Como ya había mencionado antes, MatLab también nos permite el manejo de
números complejos; un número complejo es de la forma (a + b*i), donde a y b son
números reales e i representa por definición a

.

Para añadir un número complejo, escribe en la ventana de comandos lo siguiente:
(2+5*i)
3

Veamos los siguientes ejemplos: (4+3*i)+(5-7*i) (8+3*i)-(12+6*i)+(-9+12*i) 4 .Software de Simulación y obtendras el siguiente resultado: Con los números complejos se pueden realizar las mismas operaciones aritméticas que con los números reales.

lo óptimo sería que el aprendiz de MATLAB reprodujera éstos y parecidos ejemplos por sí mismo) y precedido del símbolo >>. En color negro aparecerá la respuesta de MATLAB a la instrucción tecleada. 5 . En lo que sigue. desarrolladas por Juan-Antonio Infante y José María Rey. profesores del Departamento de Matemática Aplicada de la Universidad Complutense de Madrid. se pretende dar un primer paso en el aprendizaje del uso de MATLAB. se supone que el usuario teclea lo que aparece en color rojo (de hecho. Los comentarios aparecerán en color verde. que hace el papel del prompt de la máquina.Software de Simulación (8+3*i)*(8-3*i) n estas breves notas.

Software de Simulación Antes de comenzar.) al final de la instrucción. Los cálculos que no se asignan a una variable en concreto se asignan a la variable de respuesta por defecto que es ans (del inglés. los temas aquí introducidos son:  Generalidades.  Gráficas de funciones. el resultado queda guardado en ella: >>x=2+3 x = 5 Para conocer el valor de una variable. para acceder a la misma basta teclear help. basta teclear su nombre: >>x x = 5 Si se añade un punto y coma (. A grandes rasgos. Es recomendable usarlo para obtener una información más precisa sobre la sintaxis y diversas posiblidades de uso de los comandos. lo que es lo mismo. se encuentra en la tecla de la interrogación. MATLAB ignora todo lo que vaya precedido por el símbolo %.  Programación con MATLAB. answer): >>2+3 ans = 5 Sin embargo.  Derivadas y primitivas.  La ayuda de MATLAB es bastante útil. en un teclado estándar.  Operaciones con vectores y matrices. la máquina no 6 . si el cálculo se asigna a una variable.  Vectores y matrices.  Variables lógicas.  Polinomios.  Los comentarios deben ir precedidos por % o.  La comilla ' es la que. hagamos algunas consideraciones generales:  MATLAB distingue entre mayúsculas y minúsculas.

ans = -1 o la función exponencial >>exp(1) % Función exponencial evaluada en 1. éste se pierde si se les asigna otro valor distinto.2204e-016 7 . la función coseno. después las multiplicaciones y divisiones y. el número e ans = 2.1667 Se pueden utilizar las funciones matemáticas habituales.. por ejemplo. es decir. .. Obsérvese que MATLAB trabaja en doble precisión ans = 2.5000 >>2/(4*3) ans = 0.. >>cos(pi) % pi es una variable con valor predeterminado 3..14159. Las operaciones de igual prioridad se evalúan de izquierda a derecha: >>2/4*3 ans = 1. Así. >>y=5*4.7183 Además de la variable pi . >>y y = 20 Las operaciones se evalúan por orden de prioridad: primero las potencias.Software de Simulación muestra la respuesta... Por ejemplo: >>eps % Épsilon de la máquina. finalmente. MATLAB tiene otras variables con valor predeterminado. pero no por ello deja de realizarse el cálculo. las sumas y restas.

como puede verse. trabajar con complejos no da ningún tipo de problema. variables con dicho valor como predeterminado: >>sqrt(-4) ans = 0+ 2. sin olvidar que ello no está relacionado con la precisión con la que se hacen los cálculos.0000i El usuario puede controlar el número de decimales con que aparece en pantalla el valor de las variables.3333 >>format long >>1/3 ans = 0.33333333333333 >>format decimales % Vuelve al formato estándar que es el de 4 cifras Para conocer las variables que se han usado hasta el momento: >>who Your variables are: ans eps x y o.. si se quiere más información (obsérvese que todas las variables son arrays): >>whos 8 . La unidad imaginaria se representa en MATLAB como i o j..Software de Simulación pero. sino con el aspecto con que éstos se muestran: >>1/3 ans = 0. >>eps=7 eps = 7 Otro ejemplo de función matemática: la raíz cuadrada.

si lo que conocemos del vector es que la primera coordenada vale 0.Software de Simulación Name ans eps x y Size 1x1 1x1 1x1 1x1 Bytes 8 8 8 8 Class double array double array double array double array Grand total is 4 elements using 32 bytes Para deshacerse de una variable >>clear y >>who Your variables are: ans eps x Para definir un vector fila. basta poner: >>vect1=0:2:20 vect1 = 0 2 4 6 8 10 12 14 16 18 20 Equivalentemente. por ejemplo. que la primera valga 0. basta introducir sus coordenadas entre corchetes: >>v=[1 2 3] % Vector de 3 coordenadas v= 1 2 3 >>w=[4 5 6].20.11) vect2 = 0 2 4 6 8 10 12 14 16 18 20 9 . escribiremos: >>vect2=linspace(0. El operador ' es el de trasposición (en realidad trasposición y conjugación): >>w' ans = 4 5 6 Si queremos declarar un vector de coordenadas equiespaciadas entre dos dadas. la última 20 y la distancia entre coordenadas sea 2. la última 20 y que tiene 11 en total.

>>vect1(:) ans= 0 2 4 6 8 10 12 14 16 18 20 Las matrices se escriben como los vectores. su índice: >>vect2(3) ans = 4 y se pueden extraer subvectores.w. así una matriz 3x3: >>M=[1 2 3. pero separando las filas mediante un punto y coma. entre paréntesis.7 8 9] M 1 4 7 = 2 3 5 6 8 9 >>M' ans 1 4 2 5 3 6 % Su traspuesta (su adjunta) = 7 8 9 >>mat=[v.0 0 1] % También es una matriz 3x3 mat = 1 2 3 4 5 6 10 .Software de Simulación A las coordenadas de un vector se accede sin más que escribir el nombre del vector y.4 5 6. por ejemplo: >>vect2(2:5) ans= 2 4 6 8 o.

entre paréntesis. 11 .2) % Segunda columna de mat ans = 2 5 0 >>mat(2. por ejemplo.3) matriz mat % Elemento en la primera fila y tercera columna de la ans = 3 También se puede acceder a un fila o columna completas.Software de Simulación 0 0 1 A los elementos de una matriz se accede sin más que escribir el nombre de la matriz y. los respectivos índices: >>mat(1. >>M(2:7) columna % Los elementos segundo a séptimo de la matriz como ans = 4 7 2 5 8 3 o acceder a cualquiera de sus submatrices >>mat(2:3. >>mat(:.:) % Su segunda fila ans = 4 5 6 acceder a la matriz como si fuera una columna.[1 3]) tercera y % Submatriz formada por los elementos que están en % "todas" las filas que hay entre la segunda y la % en las columnas primera y tercera ans = 4 6 0 1 Existen algunas matrices definidas previamente. la matriz identidad.

Por ejemplo: >>diag(v) % Matriz diagonal cuya diagonal es el vector v ans = 1 0 0 0 2 0 12 . >>zeros(3) ans 0 0 0 0 0 0 = 0 0 0 o la matriz cuyos elementos valen todos 1: >>ones(4) ans 1 1 1 1 1 1 1 1 = 1 1 1 1 1 1 1 1 Se puede conocer el tamaño de una matriz y la longitud de un vector: >>size(mat) % Dimensiones de la matriz mat (número de filas y de columnas) ans = 3 3 >>size(v) ans = 1 3 >>length(v) % Longitud del vector (número de coordenadas) ans = 3 Existen comandos que permiten crear de forma sencilla matrices.Software de Simulación >>eye(5) ans 1 0 0 1 0 0 0 0 0 0 = 0 0 1 0 0 0 0 0 1 0 % eye se pronuncia en inglés como I 0 0 0 0 1 la matriz nula.

ans 1 2 0 5 0 0 = 3 6 9 Los cálculos que no se asignan a una variable en concreto se asignan a la variable de respuesta por defecto que es ans (del inglés. La sentencia diag(M) da % el vector formado por la diagonal de la matriz M ans 1 0 0 5 0 0 = 0 0 9 >>diag(ones(1. answer): >>2+3 ans = 5 Sin embargo.4).-1) % Matriz tridiagonal 5x5 con 0 en la diagonal % principal y 1 en la sub y superdiagonal ans 0 1 1 0 0 1 0 0 0 0 = 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 >>tril(M) % Matriz formada por la parte triangular inferior de M. ans 1 0 4 5 7 8 = 0 0 9 >>triu(M) % Matriz formada por la parte triangular superior de M. si el cálculo se asigna a una variable.4).1)+diag(ones(1.Software de Simulación 0 0 3 >>diag(diag(M)) % Matriz diagonal con la diagonal de M. el resultado queda guardado en ella: >>x=2+3 x = 5 13 .

por ejemplo.5000 >>2/(4*3) ans = 0.Software de Simulación Para conocer el valor de una variable.. las sumas y restas.1667 Se pueden utilizar las funciones matemáticas habituales. el número e ans = 2.. . >>y y = 20 Las operaciones se evalúan por orden de prioridad: primero las potencias. Por ejemplo: 14 . >>y=5*4. éste se pierde si se les asigna otro valor distinto.. basta teclear su nombre: >>x x = 5 Si se añade un punto y coma (.14159.. pero no por ello deja de realizarse el cálculo.. después las multiplicaciones y divisiones y. la máquina no muestra la respuesta. la función coseno. finalmente.7183 Además de la variable pi . Así.) al final de la instrucción.. >>cos(pi) % pi es una variable con valor predeterminado 3. es decir. Las operaciones de igual prioridad se evalúan de izquierda a derecha: >>2/4*3 ans = 1. ans = -1 o la función exponencial >>exp(1) % Función exponencial evaluada en 1. MATLAB tiene otras variables con valor predeterminado.

.33333333333333 >>format decimales % Vuelve al formato estándar que es el de 4 cifras Para conocer las variables que se han usado hasta el momento: >>who Your variables are: 15 .2204e-016 pero. variables con dicho valor como predeterminado: >>sqrt(-4) ans = 0+ 2. La unidad imaginaria se representa en MATLAB como i o j.0000i El usuario puede controlar el número de decimales con que aparece en pantalla el valor de las variables.. sin olvidar que ello no está relacionado con la precisión con la que se hacen los cálculos. como puede verse.Software de Simulación >>eps % Épsilon de la máquina. trabajar con complejos no da ningún tipo de problema. sino con el aspecto con que éstos se muestran: >>1/3 ans = 0. >>eps=7 eps = 7 Otro ejemplo de función matemática: la raíz cuadrada.3333 >>format long >>1/3 ans = 0. Obsérvese que MATLAB trabaja en doble precisión ans = 2.

que la primera valga 0. por ejemplo. basta poner: >>vect1=0:2:20 vect1 = 0 2 4 6 8 10 12 14 16 18 20 Equivalentemente. si se quiere más información (obsérvese que todas las variables son arrays): >>whos Name ans eps x y Size 1x1 1x1 1x1 1x1 Bytes 8 8 8 8 Class double array double array double array double array Grand total is 4 elements using 32 bytes Para deshacerse de una variable >>clear y >>who Your variables are: ans eps x Para definir un vector fila. si lo que conocemos del vector es que la primera 16 . El operador ' es el de trasposición (en realidad trasposición y conjugación): >>w' ans = 4 5 6 Si queremos declarar un vector de coordenadas equiespaciadas entre dos dadas. basta introducir sus coordenadas entre corchetes: >>v=[1 2 3] % Vector de 3 coordenadas v= 1 2 3 >>w=[4 5 6]. la última 20 y la distancia entre coordenadas sea 2.Software de Simulación ans eps x y o.

pero separando las filas mediante un punto y coma.Software de Simulación coordenada vale 0.4 5 6. entre paréntesis. así una matriz 3x3: >>M=[1 2 3. su índice: >>vect2(3) ans = 4 y se pueden extraer subvectores. la última 20 y que tiene 11 en total.20.7 8 9] M 1 4 7 = 2 3 5 6 8 9 >>M' % Su traspuesta (su adjunta) ans = 1 4 7 17 .11) vect2 = 0 2 4 6 8 10 12 14 16 18 20 A las coordenadas de un vector se accede sin más que escribir el nombre del vector y. por ejemplo: >>vect2(2:5) ans= 2 4 6 8 o. escribiremos: >>vect2=linspace(0. >>vect1(:) ans= 0 2 4 6 8 10 12 14 16 18 20 Las matrices se escriben como los vectores.

entre paréntesis. >>M(2:7) columna % Los elementos segundo a séptimo de la matriz como ans = 4 7 2 5 8 3 o acceder a cualquiera de sus submatrices >>mat(2:3.Software de Simulación 2 5 8 3 6 9 >>mat=[v.w. los respectivos índices: >>mat(1.0 0 1] mat 1 2 4 5 0 0 % También es una matriz 3x3 = 3 6 1 A los elementos de una matriz se accede sin más que escribir el nombre de la matriz y. >>mat(:.3) matriz mat % Elemento en la primera fila y tercera columna de la ans = 3 También se puede acceder a un fila o columna completas.:) % Su segunda fila ans = 4 5 6 acceder a la matriz como si fuera una columna.2) % Segunda columna de mat ans = 2 5 0 >>mat(2.[1 3]) tercera y % Submatriz formada por los elementos que están en % "todas" las filas que hay entre la segunda y la % en las columnas primera y tercera 18 .

>>eye(5) ans 1 0 0 1 0 0 0 0 0 0 = 0 0 1 0 0 0 0 0 1 0 % eye se pronuncia en inglés como I 0 0 0 0 1 la matriz nula. >>zeros(3) ans 0 0 0 0 0 0 = 0 0 0 o la matriz cuyos elementos valen todos 1: >>ones(4) ans 1 1 1 1 1 1 1 1 = 1 1 1 1 1 1 1 1 Se puede conocer el tamaño de una matriz y la longitud de un vector: >>size(mat) % Dimensiones de la matriz mat (número de filas y de columnas) ans = 3 3 >>size(v) ans = 1 3 >>length(v) % Longitud del vector (número de coordenadas) ans = 3 19 .Software de Simulación ans = 4 6 0 1 Existen algunas matrices definidas previamente. la matriz identidad. por ejemplo.

Así: >>log(v) ans = 0 0. Por ejemplo: >>diag(v) ans 1 0 0 2 0 0 % Matriz diagonal cuya diagonal es el vector v = 0 0 3 >>diag(diag(M)) % Matriz diagonal con la diagonal de M. El resultado es el array formado por la aplicación de la función a cada elemento del array.1)+diag(ones(1.4). ans 1 2 0 5 0 0 = 3 6 9 Las funciones matemáticas elementales están definidas de forma que se pueden aplicar sobre arrays.0986 >>p=(0:0.Software de Simulación Existen comandos que permiten crear de forma sencilla matrices.1:1)*pi % Vector definido como el producto de un vector por un 20 .6931 1.-1) % Matriz tridiagonal 5x5 con 0 en la diagonal % principal y 1 en la sub y superdiagonal ans 0 1 1 0 0 1 0 0 0 0 = 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 >>tril(M) % Matriz formada por la parte triangular inferior de M.4). ans 1 0 4 5 7 8 = 0 0 9 >>triu(M) % Matriz formada por la parte triangular superior de M. La sentencia diag(M) da % el vector formado por la diagonal de la matriz M ans 1 0 0 5 0 0 = 0 0 9 >>diag(ones(1.

>>mat mat 1 2 4 5 0 0 % Recordamos el valor de la matriz mat = 3 6 1 >>mat^2 % Matriz mat elevada al cuadrado ans = 21 .8274 3.w v 1 w 4 % Recordamos los valores de v y w = 2 3 = 5 6 >>z=v*w' % Producto escalar (producto de matrices 1x3 por 3x1) z = 32 >>Z=w'*v Z 4 5 6 % Producto de matrices 3x1 por 1x3 = Matriz 3x3 = 8 12 10 15 12 18 >>v*w % Los vectores v y w no se pueden multiplicar ??? Error using ==> * Inner matrix dimensions must agree.5878 0.1991 2.6283 0.8090 0. resta y producto escalar de vectores.1416 >>x=sin(p) x = Columns 1 through 7 0 0.5708 1.9511 1.5878 0.8090 0.3090 0.0000 0.0000 Las operaciones habituales entre arrays (suma.2566 1.5133 2.9425 1. resta.9511 Columns 8 through 11 0. producto y potencia de matrices) se representan con los operadores habituales: >>v.8850 Columns 8 through 11 2.3142 0. suma.Software de Simulación escalar p = Columns 1 through 7 0 0.3090 0.

^2 % Matriz cuyos elementos son los de mat elevados % al cuadrado: ans(i. entendiéndolas como elemento a elemento (como.Software de Simulación 9 12 18 24 33 48 0 0 1 También pueden efectuarse multiplicaciones.0000 >>mat.j)^2 ans = 1 4 9 16 25 36 0 0 1 Finalmente.6667 -5. se realizan la suma y la resta).3333 3.j)=mat(i. divisiones y potencias de arrays.5000 2. de hecho.000 También existen variables lógicas que toman los valores 0 (falso) o 1 (verdadero) . Por ejemplo: >>abs(v)>=2 coordenada % Vector lógico cuyas coordenadas valen 1 si la 22 .0000 2. es decir: >>v. El operador utilizado para ellas es el habitual precedido por un punto.*w % Vector formado por los productos de las respectivas coordenadas: % ans(i)=v(i)*w(i) ans = 4 10 18 >>w. pueden calcularse determinantes: >>det(mat) ans = -3 y resolverse sistemas de ecuaciones lineales con el versátil comando \: >>mat\v' ans = 2./v la % Vector formado por el cociente de cada coordenada de w entre % coordenada correspondiente de v: ans(i)=w(i)/v(i) ans = 4.

Software de Simulación % correspondiente de v es >= 2 y 0 si no lo es ans = 0 1 1 >>vector=v(abs(v)>=2) % Vector formado por la coordenadas de v que % verifican la desigualdad vector = 2 3 >>v2=[3 2 1] v2 = 3 2 1 >>logica=v==v2 es el % Asignación de un valor lógico (el doble signo igual % igual lógico) logica = 0 1 0 >>logic2=v~=v2 % Distinto (~ es el operador de negación) logic2 = 1 0 1 Se puede trabajar con polinomios: basta tener en cuenta que un polinomio no es más que un vector.q) % Producto de los polinomios p y q pro = 23 . por ejemplo: >>p=[1 0 2 0 3] % Polinomio x^4+2*x^2+3 p = 1 0 2 0 3 >>q=[2 1 0] % Polinomio 2*x^2+x q = 2 1 0 MATLAB tiene funciones específicas para polinomios como: >>polyval(p. El orden de los coeficientes es de mayor a menor grado.-1) % Evaluación del polinomio x^4+2x^2+3 en x=-1 ans = 6 >>pro=conv(p.

6050+1. >>int('log(x)') % Primitiva de la función logaritmo ans = x*log(x)-x 24 . -i.6050-1.Software de Simulación 2 1 4 2 6 3 0 >>deconv(pro.6416 2. >>diff(f) ans = cos(x) >>diff(f. se puede trabajar con funciones.5 y pi ans = 1.1688i -0. Con estas herramientas.1688i -0.5708 -3.6050-1.6050+1.1688i -0.1688i 0.0000 -3. 0. obviamente el resultado es q ans = 2 1 0 >>roots(pro) % Raíces del polinomio pro ans = 0 0.2) % Derivada segunda de f ans = -sin(x) o encontrar primitivas.5708 Dentro del módulo (toolbox) de matemática simbólica.6416 1.p) % Cociente entre pro y p. se utiliza el programa de cálculo simbólico MAPLE. >>f='sin(x)' caracteres % Función sin(x) definida mediante una cadena de f = sin(x) calcular derivadas.5000 >>poly([i -i 1/2 pi]) % Polinomio mónico que tiene por raíces a los % números i.

*sin(x). % Por defecto une los puntos (x(i). >>y=x. >>x=pi*(-1:0. >>plot(x.y) 25 . >> y=x. >>y=x. Para "engañar" al ojo.1:1).y(i)) mediante una poligonal Como se ve. con pocos puntos la gráfica tiene un aspecto demasiado lineal a trozos.Software de Simulación >>diff('x*log(x)-x') % Comprobación ans = log(x) MATLAB tiene un gran potencial de herramientas gráficas. Se pueden dibujar los valores de un vector frente a otro (de la misma longitud): >>x=pi*(-1:0.*sin(x). basta tomar más puntos.01:1).*sin(x).

2*pi] % Dibuja la función seno en el intervalo 26 . Así: >>fplot('sin(x)'.[0 2*pi]) [0.Software de Simulación También pueden dibujarse funciones.

Software de Simulación >>hold on anteriores >>fplot('cos(x)'.[0 2*pi]) función cos(x) % Mantiene en la ventana gráfica los dibujos % Dibuja sobre la gráfica anterior la 27 .

05]) % Dibuja la función x^2*sin(1/x) % y dibuja en una ventana nueva 28 .Software de Simulación >>hold off anteriores % Con esto olvida los dibujos >>fplot('x^2*sin(1/x)'.[-0.05 0.

Software de Simulación También puede usarse el versátil comando ezplot (se lee como easy plot) que permite dibujar funciones. >>ezplot('exp(x)') % Dibuja la función exponencial en un intervalo adecuado a la función 29 .

[0 pi]) 30 . >>ezplot('sin(t)'.'cos(t)'.Software de Simulación curvas en paramétricas.

1') 31 .Software de Simulación e implícitas >>ezplot('x^2 .y^2 .

[-2 2 -2 2]) 32 . >>ezsurf('sin(x*y)'.Software de Simulación También permite dibujar superficies. La forma más sencilla es mediante el comando ezsurf.

>>aux2=aux1+(2*V-1929). >>aux1=16*pi^2*(T.*((V-918).^2).v). Los siguientes sirven para modificar >>colormap(pink).009.^2). >>z=35000000*w. % Sirve para girar la figura mediante el ratón 33 .^2).Software de Simulación aunque se pueden realizar gráficas más sofisticadas: >>t=0:0. % Este comando dibuja la superficie creada mediante las >>shading interp. % ordenes anteriores. >>[T V]=meshgrid(t.v. >>surfl(t.*((V-1011).001:0.^2.z). % el dibujo obtenido >>rotate3d./aux2. >>w=T. >>v=900:1025.

A menudo. para ello. es conveniente reservar memoria para las variables (por ejemplo. Por esta misma razón. basta con asignarles cualquier valor. si se van a utilizar matrices muy grandes). si se está usando mucha memoria..)..m y contenga las instrucciones. puede ser conveniente liberar parte de ella borrando ( clear) variables que no se vayan a usar más. 34 . Un programa escrito en MATLAB admite la mayoría de las estructuras de programación al uso y su sintaxis es bastante estándar. habrá que tener especial cuidado y cerciorarse de que entre las variables del espacio de trabajo no hay ninguna que se llame igual que las de nuestro programa (proveniente. Del mismo modo. por ejemplo. for. porque esto podría provocar conflictos. de un programa previamente ejecutado en la misma sesión). MATLAB trabaja con memoria dinámica.Software de Simulación Para escribir un programa con MATLAB habrá que crear un fichero que tenga extensión . Esto se puede hacer con cualquier editor de textos. pero tiene algunas ventajas usar el editor propio de MATLAB llamado medit.. En los siguientes ejemplos se muestra la sintaxis de algunas de estas estructuras ( if. while. por lo que no es necesario declarar las variables que se van a usar.

Ejemplo 2: Decidir si un número natural es primo. si se desea programar una función que calcule. while i<=sqrt(n) if rem(n. así. end disp('El valor pedido es') disp(suma) '). disp(c(i:-1:1)) Por último. suma=1. n=input('Número natural que deseas saber si es primo ').. for i=2:n suma=suma+i*x^(i-1). La primera instrucción de un fichero que contenga una función de nombre fun debe ser: function [argumentos de salida]=fun(argumentos de entrada) Es conveniente que el fichero que contenga la función se llame como ella. end disp('La expresión en la base dada es:') i=i-1. n=fix(n/base). 35 . también pueden programarse funciones. 4x^3. end if primo disp('El número dado es primo. es divisible por:') disp(i) end Ejemplo 3: Escribir un número natural en una base dada (menor que diez). i=1. base=input('¿En qué base quieres expresarlo? '). 2x.i)==0 % Resto de dividir n entre i primo=0. n=input('Dame el número que quieres cambiar de base '). while n>0 c(i)=rem(n.') disp('De hecho. .Software de Simulación Ejemplo 1: Calcular la suma de los n primeros términos de la sucesión 1. % Parte entera de n/base i=i+1. i=2. n=input('¿Cuántos términos quieres sumar? x=input('Dame el valor del numero x ')..base). primo=1. la función anterior debería guardarse en el fichero fun. break end i=i+1.') else disp('El número dado no es primo. por ejemplo. mediante el algoritmo de Euclides. 3x^2.m.

el valor de las variables correspondientes queda inalterado. b=c. b=a.3). sin embargo: >>x=15. pero. ara escribir un programa con MATLAB habrá que crear un fichero que tenga extensión . deberá situarse dicho argumento.b). aunque en el seno de la función se modifiquen los argumentos de entrada. Esto se puede hacer con cualquier 36 . Por tanto. Más ejemplos de programación con MATLAB. Las variables de una función son siempre locales.m cuyo contenido sea: function m=euclides(a. a=c. Por ejemplo.Software de Simulación el máximo común divisor de dos números naturales. en la lista de argumentos de salida. a=b. >>x x = 15 Si se pretende que las modificaciones de un argumento de entrada afecten a la variable correspondiente. en el espacio de trabajo o en un programa se escribe la instrucción mcd=euclides(33.m se modifica el valor de los argumentos de entrada. end m=a.m y contenga las instrucciones.121) en la variable mcd se almacenará el valor 11. en la función euclides. >>mcd=euclides(x. Si. además. basta escribir un fichero euclides. una vez escrito el fichero anterior.b) % Cálculo del máximo común divisor de dos números naturales % mediante el algoritmo de Euclides if a<b c=b. end while b>0 c=rem(a.

Por esta misma razón. end disp('El valor pedido es') disp(suma) '). i=2.. Del mismo modo.') disp('De hecho. Ejemplo 1: Calcular la suma de los n primeros términos de la sucesión 1. n=input('¿Cuántos términos quieres sumar? x=input('Dame el valor del numero x '). break end i=i+1. porque esto podría provocar conflictos. . 4x^3.. por lo que no es necesario declarar las variables que se van a usar. si se van a utilizar matrices muy grandes).). end if primo disp('El número dado es primo. while i<=sqrt(n) if rem(n. suma=1.i)==0 % Resto de dividir n entre i primo=0. si se está usando mucha memoria. En los siguientes ejemplos se muestra la sintaxis de algunas de estas estructuras ( if. es conveniente reservar memoria para las variables (por ejemplo.') else disp('El número dado no es primo. de un programa previamente ejecutado en la misma sesión). primo=1. Ejemplo 2: Decidir si un número natural es primo. Un programa escrito en MATLAB admite la mayoría de las estructuras de programación al uso y su sintaxis es bastante estándar. 37 .Software de Simulación editor de textos. para ello. MATLAB trabaja con memoria dinámica. basta con asignarles cualquier valor. 2x. n=input('Número natural que deseas saber si es primo '). for. pero tiene algunas ventajas usar el editor propio de MATLAB llamado medit. 3x^2. por ejemplo.. es divisible por:') disp(i) end Ejemplo 3: Escribir un número natural en una base dada (menor que diez). A menudo.. habrá que tener especial cuidado y cerciorarse de que entre las variables del espacio de trabajo no hay ninguna que se llame igual que las de nuestro programa (proveniente.. for i=2:n suma=suma+i*x^(i-1). puede ser conveniente liberar parte de ella borrando (clear) variables que no se vayan a usar más. while.

b) % Cálculo del máximo común divisor de dos números naturales % mediante el algoritmo de Euclides if a<b c=b. también pueden programarse funciones. La primera instrucción de un fichero que contenga una función de nombre fun debe ser: function [argumentos de salida]=fun(argumentos de entrada) Es conveniente que el fichero que contenga la función se llame como ella. % Parte entera de n/base i=i+1. mediante el algoritmo de Euclides. end while b>0 c=rem(a. end m=a.m. disp(c(i:-1:1)) Por último. en el espacio de trabajo o en un programa se escribe la instrucción mcd=euclides(33. la función anterior debería guardarse en el fichero fun.3). n=fix(n/base).base). b=a. aunque en el seno de la función se modifiquen los argumentos de entrada. a=c. Si. basta escribir un fichero euclides. base=input('¿En qué base quieres expresarlo? '). así. while n>0 c(i)=rem(n. el valor de las variables correspondientes queda inalterado. b=c. Las variables de una función son siempre locales.m cuyo contenido sea: function m=euclides(a. i=1. Por tanto. Por ejemplo. si se desea programar una función que calcule. a=b. sin embargo: >>x=15. por ejemplo. una vez escrito el fichero anterior. en la función euclides. 38 . el máximo común divisor de dos números naturales. >>mcd=euclides(x.121) en la variable mcd se almacenará el valor 11.b).Software de Simulación n=input('Dame el número que quieres cambiar de base '). end disp('La expresión en la base dada es:') i=i-1. pero.m se modifica el valor de los argumentos de entrada.

además. deberá situarse dicho argumento.Software de Simulación >>x x = 15 Si se pretende que las modificaciones de un argumento de entrada afecten a la variable correspondiente. 39 . en la lista de argumentos de salida.