Está en la página 1de 33

Gráficos en ejes logarítmicos

• Los comandos utilizados en Matlab son


semilogy(x,y) Representa y contra x con escala
logaritmica (base 10) para el eje y y escala lineal
para el eje x
semilogx(x,y) Representa y contra x con escala
logaritmica (base 10) para el eje x y escala lineal
para el eje y
Loglog(x,y) Representa y contra x con escala
logaritmica (base 10) para ambos ejes.
>> x= linspace(0.1,60,1000);
>> y = 2.^(-0.2*x+10);
>> plot(x,y)
Gráficas especiales
Grafico de barras
verticales >> yr =[1988:1994];
>> sle=[8 12 20 22 18 24
Formato de la función: 27];
>> bar(yr,sle,'r')
bar(x,y)

Grafico de barras yr =[1988:1994];


horizontales >> sle=[8 12 20 22 18 24
27];
Formato de la función: >> barh(yr,sle,'b')

barh(x,y)
>> yr =[1988:1994];
Gráfico de escaleras >> sle=[8 12 20 22 18 24
27];
Formato de la función: >> stairs(yr,sle)

stairs(x,y)

Gráfico de tallo o líneas


verticales >> yr =[1988:1994];
>> sle=[8 12 20 22 18 24
Formato de la función: 27];
>> stem(yr,sle)
stem(x,y)
Gráfico de tarta o circulares
• Son útiles para la visualización de tamaños relativos de
cantidades diferentes pero ralacionados
Nota A B C D E
Número de alumnos 11 18 26 9 5

Gráfico de tarta o >> grd=[11 18 26 9 5];


circular >> pie(grd)

Formato de la
función:
Matlab dibuja
Pie(x,y) secciones de diferente
color. Las letras
(clases) se añadieron
urtilizando el editor
gráfico
Histogramas
• Los histogramas son gráficos que muestran la
distribución de una serie de datos. Para ello el
rango completo de los datos se divide en
subrangos menores denominados intervalos de
modo que el histograma muestra cuántos puntos
hay en cada intervalo
• Sintaxis
hist(y)
En este caso Matlab divide los datos por defecto en
10 intervalos igualmente espaciados.
• Ejemplo: los siguientes
datos representa la
temperatura máxima
diaria (°F) de
WasshingtonDC
durante el mes de abril
de 2002:
• >> y=[58 73 73 53 50
48 56 73 73 66 69 63
74 82 84 91 93 89 91
80 59 69 56 64 63 66
64 74 63 69];
• >> hist(y)
Histograma con intervalos definidos
• Sintaxis
hist(y, número_intervalos) o bien hist(y,x)
Ejemplo: mostrar los datos anteriores de
temperatura en 3 intervalos
>> hist(y,3)
• El número y ancho de cada intervalo se puede
especificar también utilizando un vector x que
contiene los elementos que definen los centros
de los intervalos
• >> x=[45:10:95]
x=
45 55 65 75 85 95

>> hist(y,x)
PROGRAMACION EN MATLAB
• Estructuras de control de flujo
Matlab como lenguaje de programacion dispone
de sentencias para realizar bifurcaciones
Las bifurcaciones.- permiten realizar una u otra
operación según se cumpla o no una
determinada condición, a continuación veremos
las tres posibles formas de bifurcación
Sentencia if
• En su forma más simple, se escribe de la siguiente
manera:
if condición Falso

sentencias
end
Ejemplo
>> x=2;
>> if x<5
fprintf('el número es menor que 5\n')
end
Forma completa de la sentencia if
if condición
bloque 1
else Falsa
Condicion
bloque 2
end Verdadera
Ejemplo
>> x=2;
Bloque 1
>> if x<5
fprintf('el número es menor que 5\n')
end
el número es menor que 5
>> x=4;
>> if rem(x,2)==0
fprintf('el número es par\n')
else
fprintf('el número es impar\n')
end
Bifurcación múltiple
• En la bifurcación múltiple pueden concatenarse
varias condiciones if com se desee.
If condición1
bloque 1
Elseif condición2
bloque2
Else % cuando no se cumplen
%las condiciones 1 y 2
bloque
Los bucles
• Los bucles permiten repetir las misma o
análogas operaciones sobre datos distintos
• Sentencia while
while condición Condición Sentencias

sentencias Falsa
Verdadera

end
Por ejemplo, si escribimos en un
fichero:
x=1
while x<=11
x=2*x
End

• Al ejecutarlo la salida obtenida es


x=
1
x=
2
x=
4
x=
8
x=
16
• Cuando x = 16 ya no se verifica la condición y el bucle termina.
Sentencia for
• La sentencia for repite un númeropredeterminado de
veces un conjunto de sentencias.
for I = 1:n
sentencias
end
Ejemplo
Sentencias

>> for x =1:2:9


y= x.^2-1; Condición

disp([x,y]);
end
Por ejemplo si queremos calcular el valor
de k2, cuando k = 4,5,6, escribiríamos:
>> for k=[4,5,6]
k^2
end

• la salida sería
ans =
16
ans =
25
ans =
36
Bucles anidados
for i = 1:m
for j=1:n
sentencias( i , j)
end
end
Sentencia switch
• La sentencia switch realiza una función análoga a un
conjunto de if …elseif concatenados, su forma general
es la siguiente
Switch switch_expresión
Case exp_1
bloque 1
Case exp_2
bloque 2
Case(exp_3, exp_4, exp_5…)

Othewrwie, % opción por defecto
Sentencia continue
• La sentencia continue hace que se pase
inmediatamente a la siguiente iteración del
bucle for o while, saltando todas las
sentencias que hay entre el continue y el fin
del bucle en la iteración actual
Sentecias try…catch…end
• Estas sentencias permiten gestionar los
errores que se pueden producir en tiempo de
ejecución. Su forma es la siguiente
try
sentencias1
catch
sentencias2
end
Curvas de ajuste
• Se utiliza la funcion polyfit
Sintaxis
p=polyfit(x,y,n)

x es un vector con las coordenadas


P es el vector con los coeficientes horizontales de los datos (variable
del polinomio de ajuste independiente), y es el vector de las
coordenadas verticales (variable
dependiente) de los datos, n es el
grado del polinomio de ajuste deseado
• Crea el siguiente script

Una vez que se ejecuta el fichero script, en la ventana de comandos se muestra la


salida
p=

0.0220 -0.4005 2.6138 -1.4158

Esto significa que el polinomio es de tercer grado y tiene la forma


0.0220𝑥 3 − 0.4005𝑥 2 − 2.6138𝑥 - 1.4158𝑥
Genere Ud. Los siguientes gráficos:
n=1 n=2

n=4
n=3

n=5 n=6
Otras curvas de ajustes
Función Forma de uso del comando polyfit
potencia 𝑦 = 𝑏𝑥 𝑚 p=polyfit(log(x),log(y),1)
exponencial 𝑦 = 𝑏𝑒 𝑚𝑥 𝑜 𝑏𝑖𝑒𝑛 p=polyfit(x, log(y),1) o bien
𝑦 = 𝑏10𝑚𝑥 p=polyfit(x,log10(y),1)
logarítmica 𝑦 = 𝑚𝑙𝑛 𝑥 + 𝑏 𝑜 𝑏𝑖𝑒𝑛 p=polyfit(log(x)y,1) o bien
𝑦 = 𝑚𝑙𝑜𝑔 𝑥 + 𝑏 p=polyfit(log10(x),y,1)
recíproca 1 p=polyfit(x,1./y, 1)
𝑦=
𝑚𝑥 + 𝑏
• Para un conjunto de datos, es posible predecir,
hasta cierto punto , cuál de las funciones
proporcionará un buen ajuste. Para ello hay
que representar los datos utilizando diferentes
combinaciones de ejes lineales y logarítmicos.
Si en un uno de los gráficos los datos parecen
ajustarse a una línea recta, entonces la
función correspondiente puede proporcionar
un buen ajuste según la siguiente lista:
Eje x Eje y Función
lineal lineal Lineal 𝑦 = 𝑚𝑥 + 𝑏
Logarítmica Logarítmica Potencia 𝑦 = 𝑏𝑥 𝑚

lineal Logarítmica Exponencial 𝑦 = 𝑏𝑒 𝑚𝑥 𝑜 𝑏𝑖𝑒𝑛 𝑦 = 𝑏10𝑚

Logarítmica lineal Logarítmica 𝑦 = 𝑚𝑙𝑛 𝑥 + 𝑏 𝑜 𝑏𝑖𝑒𝑛 𝑦 = log 𝑥 + 𝑏

lineal lineal 1
Recíproca 𝑦 = 𝑚𝑥+𝑏
plot(1/y)

Otras consideraciones a la hora de elegir una función de ajuste:


• Las funciones exponenciales no pasan por el origen
• Las funciones exponenciales sólo sirven para realizar ajuste de datos cuyos
valores y sean todos positivos o negativos
• Las funciones logarítmicas no pueden modelar valores nulos (cero) o negativos
• En la función potencia y=0 cuando x=0
• La función recíproca no puede modelar y=0
Ejemplo: encontrar una función w=f(t) que
mejor se ajuste a los datos que se detallan:
t 0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
w 6,00 4,83 3,70 3,15 2,41 1,83 1,49 1,21 0,96 0,73 0,64

Paso 1. se representan los datos en escalas lineales

>> t=0:0.5:5;
>> w=[6 4.83 3.70 3.15 2.41 1.83 1.49 1.21 0.96 0.73
0.64];
>> plot(t,w,'o')

• Se observa que la función lineal no proporciona


buen ajuste porque los puntos parecen no seguir
una línea recta.
• De las restantes funciones , la logarítmica tambien
se excluye, ya que el primer punto es t=0. lo
mismo sucede con la función potencia, ya que
para 𝑡 = 0, 𝑤 ≠ 0
• Para averiguar cuál de las otras dos funciones
posibles (exponencial y recíproca)
proporcionará el mejor ajuste, se representan
nuevamente los datos:
• Para la exponencial
>> plot(t,log(w),'o')

• Para la reciproca:
>> t=0:0.5:5;
>> w=1./[6 4.83 3.70 3.15 2.41 1.83 1.49 1.21 0.96
0.73 0.64];
>> plot(t,w,'o')

Se observa que del gráfico superior los puntos


parecen seguir una línea recta. Esto indica que una
función exponencial, de la forma

𝑦 = 𝑏𝑒 𝑚𝑥

Puede dar un mejor ajuste para estos datos.


• Paso 2: elaborar el
fichero script para
calcular las
constantes b y m y
dibujar los puntos
del ajuste
calculado

• m=
-0.4580

• b=
5.9889
Función:
w= 5.9889𝑒 −0.4580𝑡
Ajuste de curva por mínimos cuadrados
Guardar con el nombre: correl
>> correl
ingrese los valores de xi:
[4 5 2 5 6 7 1 8 3 7];
ingreso los valores de yi:
[5 6 4 5 7 10 3 11 4 9 ];

• Los coeficientes de la ecuación son:


ab
1.13025 0.97479

El coeficiente de determinacion r^2=0.88900

El coeficiente de correlacion r=0.94287

También podría gustarte