Está en la página 1de 8

TEMA 2 MATLAB.

2.1. GRÁFICAS SENCILLAS EN MATLAB .

>> x=linspace(a,b,n)  genera una tabla de n valores para x en [a,b]


.
>> x=a:h:b  genera una tabla de valores en [a,b] tal que xi=a+i*h
.
>> y=f(x)  f(x) es la función de la que dibujamos su gráfica
.
>> plot(x,y)  dibuja la gráfica de f

Para pintar 2 gráficas a la vez


>> z=g(x)  es la otra función a pintar
.
>> plot(x,y,x,z)  pinta las 2 en los mismos ejes

Si sólo me interesa pintar unos cuantos puntos por ejemplo los puntos de la sucesión 1/n
desde n igual a 1 hasta 10 hacemos:
>> n=1:10;  n=1,2,3,…,9,10
.
>> m=1./n;  m=1/1,1/2,1/3,…,1/9,1/10
.
>> plot(n,m)  dibuja la línea continua que une esos puntos

tobitspace.es MATLAB Página 1


Profesor Fer Cibeau
Para que aparezcan sólo los puntos utilizamos el punto como si plot fuera un “operador
punto”
>> plot(n,m,’.’)  pinta sólo los puntos en la gráfica
.
>> plot(n,m,’o’)  dibuja la línea con o’es
.
>> plot(x,y,letra del color,‘linewidth’,número del ancho)  r rojo, g verde, … y n el
ancho de línea
.
>> axis tight  ¿?
.
>> grid on  aparece cuadriculado el plano donde pintamos la gráfica de la función
.
>> xlabel(‘como quiera’)  ponerle nombre a los ejes
>> title(‘como quiera’),’Fontsize’,número de tamaño de letra)  ponerle título y
tamaño de letra
.
>> ezplot(‘función f(x)’,[a,b])  dibuja directamente la f en el intervalo [a,b]
.
>> ezplot(‘f(x,y)’,[a b c d])  pinta también directamente funciones implícitas con x
perteneciente a [a,b] e y perteneciente a [c,d]

tobitspace.es MATLAB Página 2


Profesor Fer Cibeau
2.2. PROGRAMACIÓN EN MATLAB: SCRIPTS .
Un script es un conjunto de comandos concatenados que no tenemos que volver a escribir todos
cada vez que los necesitamos.
Menú File  comando New  subcomando M-file
En la ventana que se abre podemos teclear los comandos que queremos que formen el programa.
Vamos copiando las líneas y las vamos ejecutando una a una.
Una vez hecho esto guardamos el programa:
Menú File  comando Save as…  le damos un nombre por ejemplo gráfica y Matlab
automáticamente le asigna la extensión .m
>> gráfica  se genera la gráfica
Se puede modificar lo que queramos. Si no está abierta la ventana del programa:
Menú File  Open
Un comentario se introduce detrás de un “%”
% escribimos lo que hace el programa
Modificamos lo que queramos.
>> sum  suma todos los elementos de un vector

tobitspace.es MATLAB Página 3


Profesor Fer Cibeau
Ejemplo de Script: calcula la suma de n términos de la serie de ln(2) .

n
(1) k 1
>> format long ln(2)  
k 1 k

Abrimos un nuevo M-file y escribimos en él las líneas de comando


% Calcula la suma de 1000 términos de la serie ln(2)
k=1:1000
s=(-1).^(k-1)./k;
suma=sum(s)
vreal=log(2)
difa=abs(suma-vreal)
guardamos el programa como sumaln
>> sumaln
Nos da el resultado de la suma y del error cometido con la aproximación.
Abrimos el script de nuevo y lo modificamos ahora para que sea interactivo y metamos nosotros
el número de términos n que queramos sumar:
% calcula la suma de n términos de la serie ln(2)
k=1:n;
s=(-1).^(k-1)./k;
suma=sum(s)
vreal=log(2)
difa=abs(suma-vreal)
Guardo y ejecuto:
>> n=100;
>> sumaln
Ahora como resultado debería dar la suma y el error con 100 términos.
Cuando hay que hacer operaciones muy grandes, los script no funcionan demasiado bien.
Usaremos para este caso functions (funciones) para programar en Matlab.

tobitspace.es MATLAB Página 4


Profesor Fer Cibeau
EJERCICIOS PROPUESTOS TEMA 2 MATLAB.
2-1 Comandos ezplot, ezpolar, ezplot3, ezcontour, ezsurf.
Ejemplos:
>> ezpolar(‘1+cos(t)’)
>> ezplot3(‘cos(t)’,‘sin(t)’,’t’,[0,6*pi])
>> ezcontour(‘x*exp(-x^2-y^2)’)
>> ezcontourf(‘x*exp(-x^2-y^2)’)
>> ezsurf(‘sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)’,[-6*pi,6*pi])

tobitspace.es MATLAB Página 5


Profesor Fer Cibeau
2-2 Representar gráficamente la función

2  sin x ( 10  x  5)



f ( x )  e x ( 5  x  2)
ln( x 2  1) (2  x  10)

Investigar el uso de los comandos de edición directa en la ventana gráfica
para intentar darle un mejor aspecto al resultado.

tobitspace.es MATLAB Página 6


Profesor Fer Cibeau
2-3 Preparar un script solución.m que resuelva el siguiente sistema de ecuaciones:

 5 x  2ry  rz  2

3x  6 y  (2r  1) z  3
2 x  (r  1) y  3rz  5

Para un valor arbitrario del parámetro r que introduciremos antes de ejecutar


el programa, de esta forma:

>> r=10;
>> solución

tobitspace.es MATLAB Página 7


Profesor Fer Cibeau
2-4 (Un bucle for.) Es posible hacer el cálculo de la suma de, pongamos, 10000 términos
de la sucesión (1) n 1 / n sin necesidad de crear variables vectoriales de 10000
componentes. La forma habitual de hacerlo es mediante un bucle for
Un bucle for es un conjunto de líneas de programa comprendidas entre dos líneas
parecidas a estas:
for k=1:10

end
-Para el bucle
for a=1:5
a^2
end
razona la respuesta que se obtiene.
-Vete a la comand window y ejecuta el comando
>> clear (borra las variables del workspace)
-Ahora crea el siguiente script:
% Calcula la suma de 10000 términos de la serie de ln(2)
suma=0;
for k=1:10000
suma=suma+(-1)^(k-1)/k;
end
suma
vreal=log(2)
difa=abs(suma-vreal)
Guardalo como sumaln2 y ejecútalo. Intenta razonar línea a línea como funciona el
programa. Comprueba que en el workspace no aparece ninguna variable vectorial.
Adaptar el script como antes, para un número arbitrario n de sumandos.

tobitspace.es MATLAB Página 8


Profesor Fer Cibeau

También podría gustarte