Sunteți pe pagina 1din 10

Introduccin a Matlab

Prctica de Fsica 2 (bilogos y gelogos) - Sigman returns - 2o cuatrimestre de


2008http://www.df.uba.ar/users/gsolovey/fisica2/fisica2.html
Aclaracin: Todo el texto que est dentro de las cajas grises lo pueden copiar y pegar
dentro de la ventana "Command Window" de Matlab porque son instrucciones para
ejecutar.

Contenidos
Cantidades escalares y variables
Vectores
Grficos
Ejercicios
Cantidades escalares y variables
Los siguientes dos comandos le asignan un nmero a dos variables: a y b. En
Matlab, todo lo que est despus del signo % es un comentario y no es ledo
como una instruccin de Matlab.
a=3 % le asigna a la variable a el nmero 3
b=4; % le asigna a la variable b el nmero 4 y al usar el *;* al final
% no imprime la salida en pantalla
a =
3

Las siguientes son algunas operacione posibles con variables


c
d
e
f

=
=
=
=

a + b;
a / b;
a^b;
sqrt(b);

%
%
%
%

suma
cociente
potencia
raz cuadrada

A veces es til reasignar el valor de una variable a partir del valor que tena
antes. Por ejemplo:
a = a + 2 % le asigna a la variable a el valor que tena a antes ms
2.
a =
5

Pueden ejecutar varias veces la instruccin anterior que le va a ir sumando 2 al


valor de a en cada paso
a
a
a
a

= a + 2
= a + 2
= a + 2
=
7

a =
9
a =
11

El uso de los parntesis. Hacer las siguientes cuentas a mano y comparar con
los resultados obtenidos en Matlab
a + b / 2;
(a + b) / 2;
b / f - 1;
b / (f - 1);

Vectores
En Matlab se usan mucho los arreglos de nmeros, que se llaman vectores si
se trata de una fila de nmeros o matrices si se trata de arreglos de filas y
columnas. En esta gua empezamos con los vectores.
Hay diferentes formas de definir vectores en Matlab. Por ejemplo, las
siguientes expresiones son equivalentes para definir vectores. Prubelo.
v1 =
v2 =
a 1
w1 =
w2 =
de a

[1 2 3 4 5 6 7 8 9 10];
1:10; % define un vector que empieza en 1 hasta el 9 de pasos de
[2 4 6 8 10 12 14 16 18 20];
2:2:20; % define un vector que empieza en 2 hasta el 10 de pasos
2

Las siguientes son algunas operaciones entre vectores. Vea los resultados de
cada una.
z0
z1
z2
z3
z4
z5

=
=
=
=
=
=

w1 + 2;
w1 - v1;
w1 + w2;
w1.^2;
sqrt(w2);
w2 ./ v2;

%
%
%
%
%
%

le suma 2 a cada componente del vector w1


resta componente a componente los dos vectore
suma
eleva al cuadrado cada uno de los elementos de w1
calcula la raz cuadrada de cana elemento de w1
divide w2 por v2 elemento a elemento

Grficos
Hay varios comandos para graficar funciones en Matlab. Entre
ellas, plot, area, bar,stairs.
Empezamos graficando la funcin usando plot

Para esto primero tenemos que definir los valores de x que vamos a usar. Por
ejemplo, si queremos usar x=0,1,2,3,...10 hacemos lo siguiente:
x = 0:10;

A los valores de la funcin los vamos a guardar en el vector y. Para eso


hacemos lo siguiente:
Noten que para elevar al cuadrado cada elemento de x es necesario usar la
operacin.^. Si se usa la operacin ^ entre dos vectores lo que se obtiene es el
producto escalar entre los dos, como veremos ms adelante.
y = 2*x.^2 + 3*x - 5;
figure
plot(x,y)

Podemos volver a graficar la misma funcin pero en otro intervalo. Por


ejemplo para xentre -5 y 5.
x = -5:5;
y = 2*x.^2 + 3*x - 5;
plot(x,y,'-+'); % grafica con lnea y smbolos

Y si queremos usar ms puntos para graficar, podemos tomar un vector x con


ms elementos, por ejemplo:
x = -5:0.2:5; % esto genera un vector que empieza en -5 y va hasta 5
de a pasos de 0.2
y = 2*x.^2 + 3*x - 5;
plot(x,y,'-+')

Pueden probar repetir la ltima instruccin reemplazando el uso


de plot porarea(x,y) o stairs(x,y) para ver qu hace.
Ahora graficamos las siguientes funciones.

clear all

% borra todas las variables definidas hasta ahora

x = 0.1:0.01:5; %
f = log(x);
%
logaritmo de cada
g = exp(x);
%

creamos el vector x
crea un vector que en cada componente tiene el
elemento de |x|.
lo mismo con la exponencial

plot(x,f);
grid on

% grafica la funcin f(x)

figure
plot(x,g)
grid on

% crea una nueva figura

Para crear un grfico con 2 figuras usando subplots y arreglarlos un poco:


FS = 15; % define el tamao de las letras que vamos a usar
figure
subplot(1,2,1)
plot(x,f,'--r','LineWidth',2)
xlabel('x','FontSize',FS)

ylabel('log(x)','FontSize',FS)
set(gca,'FontSize',FS); % define el tamanio de las letras de los

ejes
subplot(1,2,2)
plot(x,g,'--k','LineWidth',2)
xlabel('x','FontSize',FS)
ylabel('exp(x)','FontSize',FS)
set(gca,'FontSize',FS);

Graficar varias funciones en una misma figuras usando subplots.


FS = 15; % definimos
t=1:1000; % definimos
incrementos de a 1
figure;
set(gcf,'Color','w');
subplot(2,2,1);
columnas y

el tamao de letra que vamos a usar


el tiempo como un vector de 1 a 1000 con
% define el color del fondo
% divide la figura en 4 regiones (2 filas y 2

% empezamos definiendo el grfico 1


plot(t,cos(t/50));
xlabel('t','FontSize',FS); %pone ttulos al eje x
ylabel('x','FontSize',FS); %pone ttulos al eje y
grid on;
%agregamos una grilla
title('Coseno');
%ttulo del grfico
% Podemos dar todas las instrucciones en una nica lnea separadas por
;
subplot(2,2,2);plot(t,exp(t/150));xlabel('t','FontSize',FS);ylabel('x','FontSize',FS);grid
on;title('Exp');
subplot(2,2,3);plot(t,sin(t/50).*cos(t/50));xlabel('t','FontSize',FS);
ylabel('x','FontSize',FS);grid on;title('Seno*Coseno');
subplot(2,2,4);plot(t,1./(1+
(t/150)));xlabel('t','FontSize',FS);ylabel('x','FontSize',FS);grid
on;title('1/(1+t)');

Para terminar mostramos cmo graficar una funcin usando el


comando area y graficamos con distinta cantidad de puntos. Vean la
importancia de tener suficientes puntos para graficar una funcin que vara en
el tiempo.
figure
subplot(1,2,1)
dx=2; % definimos dx que ser el paso del vector x
x=-5:dx:15; % definimos el vector x que toma valores espaciados en
dx
y=sin(2*x).*cos(1.2*x+2)+2;
area(x,y) % podramos reemplazar esto por |plot(x,y)| o |
plot(x,y,'+-')|
subplot(1,2,2)
dx=0.1; %definimos dx como el paso del vector x.
x=-5:dx:15;
y=sin(2*x).*cos(1.2*x+2)+2;
area(x,y)% podramos reemplazar esto por |plot(x,y)| o |
plot(x,y,'+-')|

Ejercicios
1) Frecuencia de muestreo. Queremos representar en un grfico a una variable
que cambia en el tiempo de acuerdo a la ecuacin

El siguiente cdigo define la funcin en un rango de valores de t.


clear t y dx
dt=1;
t=-pi:dt:pi;
y=1.2*cos(2*t)+0.8*sin(1.2*t)+3;

Grafique la funcin usando plot (y luego area) y pruebe con distintos valores
de dt hasta encontrar uno que sirva para representar adecuadamente la
funcin.
2) El siguiente cdigo grafica la funcin

clear x y
x = -2:0.1:2;
y = 9-x.^2;
figure
plot(x,y)

Modificarlo para graficar la funcin

3) La ecuacin de los gases ideales es

En este problema trabajamos con variables 'adimensionales' y tomamos por


simplicidadNK = 1. Grafique la presin en funcin del volumen para dos
temperaturas diferentes en el mismo grfico y con colores distintos. Pngale
nombre a los ejes.
Ayuda: Para graficar dos funciones en el mismo grfico use el comando hold.
Por ejemplo, si despus de graficar una funcin, entramos hold on eso
"congela" la figura y lo que grafiquemos a continuacin ser superpuesto
hasta que escribamos el comandohold off.
4) Graficar en la misma figura las siguientes funciones

Decidir el nmero de puntos que van a usar para obtener una curva suave
5) Gaussiana. Definir los parmetros de la funcin y graficarla en un rango de
valores de x adecuado.

6) Graficar una funcin exponencial para distintos valores de los parmetros


en el mismo grfico

-------------------------------------------------------http://www.df.uba.ar/users/gsolovey/fisica2/fisica2.html
Published with MATLAB 7.3

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