Matlab2009b -clase2

Matlab
& Simulink
Prof. Arturo Vilca Román
avilca@uni.edu.pe
uni-fiee postgrado
clase2
2
Funciones y gráficos
Ficheros .m
• Sistema de ecuaciones
-cos x + y = -0.5
ln(x+1) – 3 arcsen y = 2.5
y1 = cos x – 0.5
y2 = sen ln(x+1) – 2.5
3
Solución numérica y gráfica
índices de las soluciones:
i =
1568 4982 7466
valores de las soluciones:
sol =
1.5670 4.9810 7.4650
x = 0:0.001:10;
y1=cos(x)-0.5;
y2=sin((-2.5+log(x+1))/3);
plot(x,y1)
hold on
plot(x,y2)
grid
i=find(abs(y1-y2)<0.0005);
disp('índices de las soluciones:')
i
disp('valores de las soluciones:')
sol = x(i)
h = plot(x(i), y1(i), '*');
set(h,'Linewidth',5)
xlabel('variable x')
ylabel('valores de las funciones y1 y y2')
title('solución gráfica de un sistema de ecuaciones')
Matlab2009b  -clase2
Programa
% dominio de valores de la variable x
x = 0:0.001:10;
% funciones y1 y y2
y1=cos(x)-0.5;
y2=sin((-2.5+log(x+1))/3);
% gráfica de y1
plot(x,y1)
% retiene la ventana para graficar y2
hold on
% gráfica de y2
plot(x,y2)
% rejilla
grid
% se buscan los índices de los vectores x, y1 o y2
% que cumplen que y1 = y2 con una precisión de 0.0005
i=find(abs(y1-y2)<0.0005);
% impresión de los índices de las soluciones
disp('índices de las soluciones:')
i
% impresión de las soluciones
disp('valores de las soluciones:')
sol = x(i)
% trazado de los puntos de intersección de las 2
curvas
% usando los valores de los índices
h = plot(x(i), y1(i), '*');
set(h,'Linewidth',5)
% leyendas de los ejes
xlabel('variable x')
ylabel('valores de las funciones y1 y y2')
title('solución gráfica de un sistema de ecuaciones')
Funciones
function fact = factorial(n)
% esta función calcula el factorial
% de un numero entero n
% comprueba que el argumento de entrada sea
% un número entero y positivo
if ~((fix(n)==n) &(n>=0))
error('el número debe ser entero positivo')
end
% cálculo del factorial
fact = prod(1:n);
fix
>> help fix
FIX Round towards zero.
FIX(X) rounds the elements of X to the nearest integers
towards zero.
See also floor, round, ceil.
Overloaded functions or methods (ones with the same name in other
directories)
help darray/fix.m
help sym/fix.m
Reference page in Help browser
doc fix
Uso de la función
>> factorial(5)
>> f5=factorial(5)
>> factorial(3.4)
>> factorial(-3)
>> help factorial
Recursividad
function fact = factorial2(n)
% retorna el factorial de un número entero n
% Si no es un entero o es negativo la función
% muestra un mensaje de error
if fix(n)~=n |n<0
help factorial2
error('la función solo acepta enteros naturales!')
end
% método recursivo
if n==0
fact=1;
else
fact=n*factorial2(n-1);
end
Bucle for% Instrucciones de control: bucle
for
% inicialización
vector=[];
for i=1:inf
% resto de la division de i por 5
if (rem(i,5)==0)
% concatenación
vector=[vector i];
end
if length(vector)==10
% salida del bucle for
break
end
end
>> bucle_for
>> vector
vector =
Columns 1 through 9
5 10 15 20 25 30 35
40 45
Column 10
50
Bucle while
% Instrucciones de control: bucle
while
vector=[];
i=1;
while (length(vector)<10)
i=i+1;
if (rem(i,5)==0)
vector=[vector i];
end
end
>> bucle_while
>> vector
vector =
Columns 1 through 9
5 10 15 20 25 30 35
40 45
Column 10
50
Señal saturada
• Tenemos una señal u(t)
• Limitar esta señal entre los valores
– max
– min
• min=0; max=10
• satura(6.5, min, max) 6.5
• satura(10.5, min, max) 10
• Satura(-1.5, min, max) 0
Función saturar
function limite = saturar(u, min, max)
% limitación de una señal
% si señal < min entonces señal = min,
% si señal > max entonces señal = max,
% si min <= señal <= max la señal no se modifica
% expresiones lógicas retornan 0(F) ó 1(V)
expr1 = (u >= max);
expr2 = (u <= max);
expr3 = ((u < max) & (u > min));
limite = expr1 .* max + expr2 .* min + expr3.*u;
Señal a saturar
close all
clear all
% los límites de la señal
min = 0;
max = 10;
% señal sinusoidal con ruido
t = 0:100;
ruido = 3*randn(size(t));
u = 15*sin(0.1*t)+ ruido;
% la saturación
sgn = saturar(u,min,max);
% señal no saturada
figure(1)
plot(t,u);
% señal saturada
hold on
h=plot(t,sgn);
set(h,'LineWidth',2)
• satura(6.5, min, max)
6.5
• satura(10.5, min, max)
10
• Satura(-1.5, min, max)
0
Ejplo 1
• Escribir un programa que calcula media y la
varianza de una serie de valores
% cierra todas las ventanas graficas
close all
% borra todas las variables del espacio de trabajo
clear all
% calcular la media y la varianza de una serie de valores
% sinusoide entre -2pi y +2pi
x=-2*pi:pi/10:2*pi;
y=sin(x);
% ruido gaussiano del mismo tamaño que x e y
% con varianza 1
b=randn(size(x));
z=y+b;
% calculo de la media y la varianza
med_z=mean(z);
var_z=std(z)^2;
% trazado de la señal ruidosa e impresion de resultados
% trazado de los diferentes puntos con el simbolo '*'
plot(x,z,'*')
hold on % para trazar otra curva sobre el mismo grafico
% trazado de la curva que pasa por esos puntos
plot(x,z)
% anotaciones en los ejes
xlabel('variable x')
ylabel('sinusoide ruidosa')
title('media y varianza de una serie de valores')
% impresion de valores en la ventana grafica
gtext([' media : ' num2str(med_z)])
gtext([' varianza : ' num2str(var_z)])
gtext
• Muestra un texto en una ventana en el lugar
seleccionado con el mouse
• Acepta una cadena de caracteres o una tabla de
cadenas con la transformación de caracteres a valor
numérico por el comando num2str
Matlab2009b  -clase2
Matlab2009b  -clase2
Curvas en 3D
• plot3(x,y,z)
clear all, close all
x=-2*pi:pi/100:2*pi;
% vector y (2da dimensión)
y = 2*x;
% vector z (3ra dimensión)
z = sinc(x-y);
% trazado de la función en 3D
% retorna el puntero h
h=plot3(x,y,z);
% grosor del trazo
set(h,'LineWidth',2)
grid
Superficies
x=-1:0.1:1;
y=2*x;
[X,Y]=meshgrid(x,y);
Z=sinc(X).*exp(-X.^2 -Y.^2);
mesh(Z)
meshc
x = -1:0.1:1;
y = 2*x;
[X,Y] = meshgrid(x,y);
Z = exp(X.^2 - Y.^2);
meshc(Z)
axis([0 20 0 20 0 3])
surf, surfc, surfl
• contour3(X,Y,Z,100)
• contour(X,Y,Z)
Proyección sobre
el plano xy
Programación estructurada
• La posibilidad de hacer llamadas a funciones
permiten una modularidad y una estructuración de
los programas
for, if
para n veces
for variable = inicio :paso :fin
<<instrucciones>>
end
while
• Mientras que
while <condición>
<< instrucciones>>
end
break
• Permite salir de un bucle for o while
if i>n
break
end
switch…case
switch <variable>
case 1
case 2
…
case n
otherwise
end
>> n_par_impar_primo('impar', 20)
números impares entre 0 y 20
numeros_impares =
Columns 1 through 9
1 3 5 7 9 11 13 15 17
Column 10
19
>> n_par_impar_primo('impar',20)
números impares entre 0 y 20
numeros_impares =
1 3 5 7 9 11 13 15 17 19
• return
– Permite regresar al programa llamador
• error
– Muestra mensajes de error e interrumpe el programa
error(‘mensaje de error’)
• >> earthmap
• traza1.m
• traza2.m
traza1.m
• x=-2*pi:pi/100:2*pi;
•
• % grafico de y=senx/x
• y=sinc(x);
• plot(x,y)
•
• % dimensiones de los ejes
• axis([-7.5 7.5 -0.5 1.2])
• grid
traza2.m
• x=-2*pi:pi/100:2*pi;
•
• y=sinc(x);
•
• % retorna un manejador h
• h=plot(x,y)
• % grosor del trazo
• set(h,'LineWidth',2)
•
• axis([-7.5 7.5 -0.5 1.2])
• grid
• h =
• 159.0094
• >> get(h,'LineWidth')
• ans =
• 2
• >> get(h,'Markersize')
• ans =
• 6
Matlab2009b  -clase2
Matlab2009b  -clase2
Matlab2009b  -clase2
Matlab2009b  -clase2
Matlab2009b  -clase2
Lenguaje Tex
• f1=texlabel('sin(sqrt(lambda^2+gamma^2))/sqrt(lam
bda^2+gamma^2)')
• f2='{lambda}_{3} e^{sqrt}{alpha})}'
• f1=texlabel('sin(sqrt(lambda^2+gamma^2))/sqrt(lam
bda^2+gamma^2)')
• f1 =
• {sin}({sqrt}({lambda}^{2}+{gamma}^{2}))/{sqrt}
({lambda}^{2}+{gamma}^{2})
• f2='{lambda}_{3} e^{-{sqrt}{(alpha})}'
• f2 =
• {lambda}_{3} e^{-{sqrt}{(alpha})}
Matlab2009b  -clase2
Histogramas
• >> x=[5 2 1; 3 1 8; 2 4 1]
• bar(x), grid
• barh(x)
• bar(… ‘stack’)
hist
• >> x=randn(1,1000); %normal
• >> hist(x,100)
• >> grid
• >> x=rand(1,1000); % uniforme
• >> hist(x,100)
• >> grid
Matlab2009b  -clase2
Histogramas en superficies
• x =
• 5 1 3
• 6 3 8
• 9 6 15
• >> area(x)
• >> hold on
• >> plot(cumsum(x')','*','LineWidth',3)
• >> grid
• >> set(gca,'Xtick',[1 2 3])
Matlab2009b  -clase2
Matlab2009b  -clase2
Matlab2009b  -clase2
Diagramas circulares
• >> x=[100 10 25 45];
• >> fuera=[1 0 0 1];
• >> etiquetas={'A','B','C','D'};
• >> pie(x,fuera,etiquetas)
fplot
• fplot('1-sinc(x)', [-2*pi 2*pi]), xlabel('x=[-2pi 2pi]')
• h=gca, set(h,'linewidth',2)
gca
>> help gca
GCA Get handle to current axis.
H = GCA returns the handle to the current axis in the current
figure. The current axis is the axis that graphics commands
like PLOT, TITLE, SURF, etc. draw to if issued.
Use the commands AXES or SUBPLOT to change the current axis
to a different axis, or to create new ones.
See also axes, subplot, delete, cla, hold, gcf, gcbo, gco, gcbf.
Reference page in Help browser
doc gca
openvar
• Edita una variable en la ventana del editor
>> x=rand(5,10);
>> openvar('x')
Curvas contínuas
• plot(x,y,cadena)
• subplot(mnp)
– Sub-ventana p de m lineas y n columnas
Curvas contínuas
Curvas discretas
• stem(x,y)
– Traza líneas verticales terminadas por un circulo
• stairs
– Traza la curva en forma de escaleras
Curvas discretas
hndlgraf
Matlab2009b  -clase2
Scripts .m
• No aceptan argumentos de llamada
• No retornan valores
• Operan únicamente sobre las variables del espacio
de trabajo
Funciones
• Pueden aceptar argumentos de llamada y re-envio
de resultados
• Las variables internas son locales a menos que
sean declaradas globales
• Las funciones son útiles porque extienden las
posibilidades del lenguaje
Descripción de una Función
• La línea de definición con la palabra clave function
• 1ra línea de comentario
– lookfor
• Algunas lineas de comentario
– help mi_funcion
• Cuerpo de la función
• Escriba una función para calcular el factorial de un
número entero
• factorial.m
• >> f5=factorial(5)
• f5 =
• 120
• >> f5=feval('factorial',5)
• f5 =
• 120
• >>
Entrada interactiva
function volumen
r=input('ingrese radio ')
vol = (4/3)*pi*r^3;
disp('volumen es ')
disp(vol)
• Escribir un programa que calcula media y la
varianza de una serie de valores
• El script llama a 3 funciones
– Genera la señal ruidosa
– Calcula la media y la varianza
– Muestra la curva
• calcular.m
– genera_serie.m
– calcula_med_var.m
– traza_serie.m
• genera_serie.m
function z = genera_serie
– Retorna el vector z sin recibir parámetros de llamada
• calcula_med_var.m
function [med, var]= calcula_med_var(w)
– Retorna un vector con la media y la mediana después de recibir la
señal z
• traza_serie.m
function traza_serie(x,z)
– Recibe los vectores x y z para el trazado y no regresa argumentos
• La variable x es declarada global en la función que
la genera y las que la utilizan
• global x y z
• isglobal(x)
– Regresa 1 si es global
– 0 si no lo es
Derivada de una función
• >> x = [0 3 8 1];
• >> diff(x)
• >> p= [ 1 0 -1]
• >> p_derivada = polyder(p)
derivada.m
x = -1:.01:1; % intervalo de la variable x
f = x.^2-1; % función a derivar
plot(x,f); % trazado de la función f(x)
dx = diff(x); % incrementos dx de la variable x
df = diff(f); % incrementos df de la función f(x)
df_dx = df./dx; % derivada de f(x)
hold on
plot(x(1:length(x)-1),df_dx,':');
axis([-1 1 -2 2])
grid
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
integral.m
dx = 0.001; % paso de integración
a = -1; b = 1; % limites del dominio de integración
x = a:dx:b; y = x;
g = cumsum(y.*dx); % suma acumulada de las áreas
% de los rectángulos
% trazado de la integral
plot(x,g), hold on
% trazado de la función y = f(x)
plot(x,y,'-.')
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
• P_integral =polyquad([6 2 1])
Circuito RLC
• R = 100 ohmios
• L = 0.1H
• C = 1mF
• 0 a 5000 ciclos/s
Filtro de Butterworth
• Orden y frecuencia de corte
• n=9; fc= 1.078e+004 Hz
• Atenuación en dB a las frecuencias f1 y f2
• 1.0000 48.3172
Transformada de Fourier discreta
• función tfd
– Calcula la TFD de una señal
• apl_tfd.m
– programa
1 sur 89

Recommandé

Funciones y gráficas en matlab par
Funciones y gráficas en matlabFunciones y gráficas en matlab
Funciones y gráficas en matlabJuan Luis Diaz Cuevas
54.1K vues34 diapositives
Introducción al Calculo Diferencial de una Función Real ccesa007 par
Introducción al Calculo Diferencial de una Función Real  ccesa007Introducción al Calculo Diferencial de una Función Real  ccesa007
Introducción al Calculo Diferencial de una Función Real ccesa007Demetrio Ccesa Rayme
192 vues44 diapositives
Optimización monotonía-curvatura par
Optimización monotonía-curvaturaOptimización monotonía-curvatura
Optimización monotonía-curvaturaANAALONSOSAN
1.4K vues15 diapositives
Clase integracion matlab par
Clase integracion matlabClase integracion matlab
Clase integracion matlabdhanniell
8.9K vues6 diapositives
Trazado de curvas par
Trazado de curvasTrazado de curvas
Trazado de curvasVideoconferencias UTPL
10.7K vues9 diapositives
Problemas optimizacion ppt par
Problemas optimizacion   pptProblemas optimizacion   ppt
Problemas optimizacion pptNoelBologna
1.4K vues42 diapositives

Contenu connexe

Tendances

Matlab3 par
Matlab3Matlab3
Matlab3Xavier Tipantuña
1.6K vues6 diapositives
Estadística con Lenguaje R: Sesión 9 par
Estadística con Lenguaje R: Sesión 9Estadística con Lenguaje R: Sesión 9
Estadística con Lenguaje R: Sesión 9Luis Fernando Aguas Bucheli
647 vues17 diapositives
Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación... par
Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...
Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...Gustavo Lencioni Cacciola
14.7K vues17 diapositives
Funciones parte i par
Funciones parte iFunciones parte i
Funciones parte iangiegutierrez11
1.3K vues18 diapositives
Funciones y graficas par
Funciones y graficasFunciones y graficas
Funciones y graficasRaul Lozada
2K vues58 diapositives
Estadística con Lenguaje R: Sesión 6 par
Estadística con Lenguaje R: Sesión 6Estadística con Lenguaje R: Sesión 6
Estadística con Lenguaje R: Sesión 6Luis Fernando Aguas Bucheli
736 vues9 diapositives

Tendances(20)

Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación... par Gustavo Lencioni Cacciola
Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...
Derivadas: Conceptos, Límite, Interpretación Geométrica, Reglas de Derivación...
Aplicaciones de la derivada segunda parte par angiegutierrez11
Aplicaciones de la derivada segunda parteAplicaciones de la derivada segunda parte
Aplicaciones de la derivada segunda parte
angiegutierrez119.1K vues
Derivadas de funciones paramétricas par Erick Guaman
Derivadas de funciones paramétricas Derivadas de funciones paramétricas
Derivadas de funciones paramétricas
Erick Guaman12.2K vues
Aplicación de la derivada par vanieves
Aplicación de la derivadaAplicación de la derivada
Aplicación de la derivada
vanieves634 vues
TERCERA PRACTICA par kokame
TERCERA PRACTICATERCERA PRACTICA
TERCERA PRACTICA
kokame233 vues
Funciones par Adamirez
FuncionesFunciones
Funciones
Adamirez2.3K vues
Aplicaciones de la derivada maximos y minimos par Hedwyn Lizarazo
Aplicaciones de la derivada maximos y minimosAplicaciones de la derivada maximos y minimos
Aplicaciones de la derivada maximos y minimos
Hedwyn Lizarazo45K vues

En vedette

Rs cenetec junio par
Rs cenetec junioRs cenetec junio
Rs cenetec juniomdelaov
1.1K vues117 diapositives
Lumitis ppt par
Lumitis pptLumitis ppt
Lumitis pptKannan Iyer
1.1K vues26 diapositives
Arduino para Programadores .NET par
Arduino para Programadores .NETArduino para Programadores .NET
Arduino para Programadores .NETIgor Kondrasovas
2.4K vues35 diapositives
Ventiladores de Techo Faro 2015 - ILUMINABLE.COM par
Ventiladores de Techo Faro 2015 - ILUMINABLE.COMVentiladores de Techo Faro 2015 - ILUMINABLE.COM
Ventiladores de Techo Faro 2015 - ILUMINABLE.COMGRUPO ILUMINABLE SL Iluminación Online
1.8K vues176 diapositives
Suporte para tv lcd led plasma e convencional na Cirilo Cabos par
Suporte para tv lcd led plasma e convencional na Cirilo CabosSuporte para tv lcd led plasma e convencional na Cirilo Cabos
Suporte para tv lcd led plasma e convencional na Cirilo CabosCirilo Cabos
1K vues76 diapositives
Présentation 10 03 11 par
Présentation 10 03 11Présentation 10 03 11
Présentation 10 03 11MAILLET Marie-Pierre
2.9K vues110 diapositives

En vedette(20)

Rs cenetec junio par mdelaov
Rs cenetec junioRs cenetec junio
Rs cenetec junio
mdelaov1.1K vues
Suporte para tv lcd led plasma e convencional na Cirilo Cabos par Cirilo Cabos
Suporte para tv lcd led plasma e convencional na Cirilo CabosSuporte para tv lcd led plasma e convencional na Cirilo Cabos
Suporte para tv lcd led plasma e convencional na Cirilo Cabos
Cirilo Cabos1K vues
My speed par camf_07
My speedMy speed
My speed
camf_07355 vues
Qq plot par weneca
Qq plotQq plot
Qq plot
weneca569 vues
Introduccion a core plot par Jorge Ortiz
Introduccion a core plotIntroduccion a core plot
Introduccion a core plot
Jorge Ortiz1.6K vues
Ranking de los mejores Colegios de Colombia en el 2013 par Fenbgroup Enterprise
Ranking de los mejores Colegios de Colombia en el 2013Ranking de los mejores Colegios de Colombia en el 2013
Ranking de los mejores Colegios de Colombia en el 2013
Woodside Bali - Luxury Villas and plots in Mangaon par albuniv
Woodside Bali - Luxury Villas and plots in MangaonWoodside Bali - Luxury Villas and plots in Mangaon
Woodside Bali - Luxury Villas and plots in Mangaon
albuniv3.1K vues
Soccer Analytics - After 10 Games par pjaumann
Soccer Analytics - After 10 GamesSoccer Analytics - After 10 Games
Soccer Analytics - After 10 Games
pjaumann434 vues
OSRAM - LED Technologie und Produktion par ineltec 2011
OSRAM - LED Technologie und ProduktionOSRAM - LED Technologie und Produktion
OSRAM - LED Technologie und Produktion
ineltec 20113.2K vues
Lixo eletro eletronico no brasil par Andre Benedito
Lixo eletro eletronico no brasilLixo eletro eletronico no brasil
Lixo eletro eletronico no brasil
Andre Benedito6.9K vues

Similaire à Matlab2009b -clase2

CLASE 01.pdf par
CLASE 01.pdfCLASE 01.pdf
CLASE 01.pdfNandoMartiHufer
2 vues75 diapositives
CLASE 04.pdf par
CLASE 04.pdfCLASE 04.pdf
CLASE 04.pdfNandoMartiHufer
4 vues82 diapositives
Electrónica: Tutorial de Matlab aplicado par
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoSANTIAGO PABLO ALBERTO
215 vues115 diapositives
Referencias MATLAB par
Referencias MATLABReferencias MATLAB
Referencias MATLABOmar Sanchez
1.5K vues10 diapositives
Int_Octave_II_2021.pptx par
Int_Octave_II_2021.pptxInt_Octave_II_2021.pptx
Int_Octave_II_2021.pptxItaloFernandoYupanAr
80 vues127 diapositives
clase de matlab par
clase  de   matlabclase  de   matlab
clase de matlabFernando Vallejo
179 vues20 diapositives

Similaire à Matlab2009b -clase2(20)

Seminario de matlab par jamarzo
Seminario de matlabSeminario de matlab
Seminario de matlab
jamarzo5.5K vues
Presentación de matlab electromagnetismo ... par SimonCaceres4
Presentación de matlab electromagnetismo                                     ...Presentación de matlab electromagnetismo                                     ...
Presentación de matlab electromagnetismo ...
SimonCaceres424 vues
Matlab u1 ambiente par jmedina13
Matlab u1 ambienteMatlab u1 ambiente
Matlab u1 ambiente
jmedina13354 vues
Tema 2 - Programación básica en C (III) par Pablo Haya
Tema 2  - Programación básica en C (III)Tema 2  - Programación básica en C (III)
Tema 2 - Programación básica en C (III)
Pablo Haya133 vues
Matlab par ford81
MatlabMatlab
Matlab
ford81892 vues
Matlab (1) par numpad
Matlab (1)Matlab (1)
Matlab (1)
numpad255 vues

Plus de nomegustaestascosas

Guia 03 par
Guia 03Guia 03
Guia 03nomegustaestascosas
311 vues4 diapositives
Matlab introducción par
Matlab   introducciónMatlab   introducción
Matlab introducciónnomegustaestascosas
293 vues42 diapositives
Silabo programación ii 2015-i par
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-inomegustaestascosas
270 vues8 diapositives
Matlab introducción par
Matlab   introducciónMatlab   introducción
Matlab introducciónnomegustaestascosas
708 vues42 diapositives
Matlab introducción par
Matlab   introducciónMatlab   introducción
Matlab introducciónnomegustaestascosas
116 vues42 diapositives
Matlab para ingenieros_carelec par
Matlab para ingenieros_carelecMatlab para ingenieros_carelec
Matlab para ingenieros_carelecnomegustaestascosas
1K vues61 diapositives

Dernier

Socialismo Conservador - Hans-Hermann Hoppe par
Socialismo Conservador - Hans-Hermann HoppeSocialismo Conservador - Hans-Hermann Hoppe
Socialismo Conservador - Hans-Hermann HoppeAcracia Ancap
7 vues57 diapositives
Historia natural de la insuficiencia renal.docx par
Historia natural de la insuficiencia renal.docxHistoria natural de la insuficiencia renal.docx
Historia natural de la insuficiencia renal.docxDanielaCorts36
5 vues2 diapositives
El Medio ambiente y el paisaje par
El Medio ambiente y el paisajeEl Medio ambiente y el paisaje
El Medio ambiente y el paisajeTiffanyGonzlez2
6 vues19 diapositives
Conjunción Luna-Las Pléyades Noviembre 26, 2023.pdf par
Conjunción Luna-Las Pléyades Noviembre 26, 2023.pdfConjunción Luna-Las Pléyades Noviembre 26, 2023.pdf
Conjunción Luna-Las Pléyades Noviembre 26, 2023.pdfSOCIEDAD JULIO GARAVITO
5 vues3 diapositives
infografia MELEAGRICULTURA..pdf par
infografia MELEAGRICULTURA..pdfinfografia MELEAGRICULTURA..pdf
infografia MELEAGRICULTURA..pdfJULIANALEJANDROSANCH
6 vues1 diapositive
La Contrarrevolución de la Ciencia - Friedrich von Hayek par
La Contrarrevolución de la Ciencia - Friedrich von HayekLa Contrarrevolución de la Ciencia - Friedrich von Hayek
La Contrarrevolución de la Ciencia - Friedrich von HayekAcracia Ancap
6 vues167 diapositives

Dernier(9)

Socialismo Conservador - Hans-Hermann Hoppe par Acracia Ancap
Socialismo Conservador - Hans-Hermann HoppeSocialismo Conservador - Hans-Hermann Hoppe
Socialismo Conservador - Hans-Hermann Hoppe
Acracia Ancap7 vues
Historia natural de la insuficiencia renal.docx par DanielaCorts36
Historia natural de la insuficiencia renal.docxHistoria natural de la insuficiencia renal.docx
Historia natural de la insuficiencia renal.docx
La Contrarrevolución de la Ciencia - Friedrich von Hayek par Acracia Ancap
La Contrarrevolución de la Ciencia - Friedrich von HayekLa Contrarrevolución de la Ciencia - Friedrich von Hayek
La Contrarrevolución de la Ciencia - Friedrich von Hayek
Acracia Ancap6 vues
Praxeología y Economía - Francisco Capella par Acracia Ancap
Praxeología y Economía - Francisco CapellaPraxeología y Economía - Francisco Capella
Praxeología y Economía - Francisco Capella
Acracia Ancap8 vues
Karl Ludwig von Haller: un reaccionario Anarcocapitalista - Juan Gómez Carmera par Acracia Ancap
Karl Ludwig von Haller: un reaccionario Anarcocapitalista - Juan Gómez CarmeraKarl Ludwig von Haller: un reaccionario Anarcocapitalista - Juan Gómez Carmera
Karl Ludwig von Haller: un reaccionario Anarcocapitalista - Juan Gómez Carmera
Acracia Ancap7 vues
Tarea 4- Evaluación final- Jennifer Isabel Ayala Espitia-1005483772.pptx par ayalajenny59
Tarea 4- Evaluación final- Jennifer Isabel Ayala Espitia-1005483772.pptxTarea 4- Evaluación final- Jennifer Isabel Ayala Espitia-1005483772.pptx
Tarea 4- Evaluación final- Jennifer Isabel Ayala Espitia-1005483772.pptx
ayalajenny597 vues

Matlab2009b -clase2

  • 1. Matlab & Simulink Prof. Arturo Vilca Román avilca@uni.edu.pe uni-fiee postgrado clase2
  • 3. Ficheros .m • Sistema de ecuaciones -cos x + y = -0.5 ln(x+1) – 3 arcsen y = 2.5 y1 = cos x – 0.5 y2 = sen ln(x+1) – 2.5 3
  • 4. Solución numérica y gráfica índices de las soluciones: i = 1568 4982 7466 valores de las soluciones: sol = 1.5670 4.9810 7.4650
  • 5. x = 0:0.001:10; y1=cos(x)-0.5; y2=sin((-2.5+log(x+1))/3); plot(x,y1) hold on plot(x,y2) grid i=find(abs(y1-y2)<0.0005); disp('índices de las soluciones:') i disp('valores de las soluciones:') sol = x(i) h = plot(x(i), y1(i), '*'); set(h,'Linewidth',5) xlabel('variable x') ylabel('valores de las funciones y1 y y2') title('solución gráfica de un sistema de ecuaciones')
  • 7. Programa % dominio de valores de la variable x x = 0:0.001:10; % funciones y1 y y2 y1=cos(x)-0.5; y2=sin((-2.5+log(x+1))/3);
  • 8. % gráfica de y1 plot(x,y1) % retiene la ventana para graficar y2 hold on % gráfica de y2 plot(x,y2) % rejilla grid
  • 9. % se buscan los índices de los vectores x, y1 o y2 % que cumplen que y1 = y2 con una precisión de 0.0005 i=find(abs(y1-y2)<0.0005); % impresión de los índices de las soluciones disp('índices de las soluciones:') i % impresión de las soluciones disp('valores de las soluciones:') sol = x(i)
  • 10. % trazado de los puntos de intersección de las 2 curvas % usando los valores de los índices h = plot(x(i), y1(i), '*'); set(h,'Linewidth',5) % leyendas de los ejes xlabel('variable x') ylabel('valores de las funciones y1 y y2') title('solución gráfica de un sistema de ecuaciones')
  • 11. Funciones function fact = factorial(n) % esta función calcula el factorial % de un numero entero n % comprueba que el argumento de entrada sea % un número entero y positivo if ~((fix(n)==n) &(n>=0)) error('el número debe ser entero positivo') end % cálculo del factorial fact = prod(1:n);
  • 12. fix >> help fix FIX Round towards zero. FIX(X) rounds the elements of X to the nearest integers towards zero. See also floor, round, ceil. Overloaded functions or methods (ones with the same name in other directories) help darray/fix.m help sym/fix.m Reference page in Help browser doc fix
  • 13. Uso de la función >> factorial(5) >> f5=factorial(5) >> factorial(3.4) >> factorial(-3) >> help factorial
  • 14. Recursividad function fact = factorial2(n) % retorna el factorial de un número entero n % Si no es un entero o es negativo la función % muestra un mensaje de error if fix(n)~=n |n<0 help factorial2 error('la función solo acepta enteros naturales!') end % método recursivo if n==0 fact=1; else fact=n*factorial2(n-1); end
  • 15. Bucle for% Instrucciones de control: bucle for % inicialización vector=[]; for i=1:inf % resto de la division de i por 5 if (rem(i,5)==0) % concatenación vector=[vector i]; end if length(vector)==10 % salida del bucle for break end end >> bucle_for >> vector vector = Columns 1 through 9 5 10 15 20 25 30 35 40 45 Column 10 50
  • 16. Bucle while % Instrucciones de control: bucle while vector=[]; i=1; while (length(vector)<10) i=i+1; if (rem(i,5)==0) vector=[vector i]; end end >> bucle_while >> vector vector = Columns 1 through 9 5 10 15 20 25 30 35 40 45 Column 10 50
  • 17. Señal saturada • Tenemos una señal u(t) • Limitar esta señal entre los valores – max – min • min=0; max=10 • satura(6.5, min, max) 6.5 • satura(10.5, min, max) 10 • Satura(-1.5, min, max) 0
  • 18. Función saturar function limite = saturar(u, min, max) % limitación de una señal % si señal < min entonces señal = min, % si señal > max entonces señal = max, % si min <= señal <= max la señal no se modifica % expresiones lógicas retornan 0(F) ó 1(V) expr1 = (u >= max); expr2 = (u <= max); expr3 = ((u < max) & (u > min)); limite = expr1 .* max + expr2 .* min + expr3.*u;
  • 19. Señal a saturar close all clear all % los límites de la señal min = 0; max = 10; % señal sinusoidal con ruido t = 0:100; ruido = 3*randn(size(t)); u = 15*sin(0.1*t)+ ruido; % la saturación sgn = saturar(u,min,max); % señal no saturada figure(1) plot(t,u); % señal saturada hold on h=plot(t,sgn); set(h,'LineWidth',2)
  • 20. • satura(6.5, min, max) 6.5 • satura(10.5, min, max) 10 • Satura(-1.5, min, max) 0
  • 21. Ejplo 1 • Escribir un programa que calcula media y la varianza de una serie de valores
  • 22. % cierra todas las ventanas graficas close all % borra todas las variables del espacio de trabajo clear all % calcular la media y la varianza de una serie de valores % sinusoide entre -2pi y +2pi x=-2*pi:pi/10:2*pi; y=sin(x); % ruido gaussiano del mismo tamaño que x e y % con varianza 1 b=randn(size(x)); z=y+b;
  • 23. % calculo de la media y la varianza med_z=mean(z); var_z=std(z)^2; % trazado de la señal ruidosa e impresion de resultados % trazado de los diferentes puntos con el simbolo '*' plot(x,z,'*') hold on % para trazar otra curva sobre el mismo grafico % trazado de la curva que pasa por esos puntos plot(x,z) % anotaciones en los ejes xlabel('variable x') ylabel('sinusoide ruidosa') title('media y varianza de una serie de valores') % impresion de valores en la ventana grafica gtext([' media : ' num2str(med_z)]) gtext([' varianza : ' num2str(var_z)])
  • 24. gtext • Muestra un texto en una ventana en el lugar seleccionado con el mouse • Acepta una cadena de caracteres o una tabla de cadenas con la transformación de caracteres a valor numérico por el comando num2str
  • 27. Curvas en 3D • plot3(x,y,z)
  • 28. clear all, close all x=-2*pi:pi/100:2*pi; % vector y (2da dimensión) y = 2*x; % vector z (3ra dimensión) z = sinc(x-y); % trazado de la función en 3D % retorna el puntero h h=plot3(x,y,z); % grosor del trazo set(h,'LineWidth',2) grid
  • 30. meshc x = -1:0.1:1; y = 2*x; [X,Y] = meshgrid(x,y); Z = exp(X.^2 - Y.^2); meshc(Z) axis([0 20 0 20 0 3])
  • 33. Programación estructurada • La posibilidad de hacer llamadas a funciones permiten una modularidad y una estructuración de los programas
  • 34. for, if para n veces for variable = inicio :paso :fin <<instrucciones>> end
  • 35. while • Mientras que while <condición> << instrucciones>> end
  • 36. break • Permite salir de un bucle for o while if i>n break end
  • 37. switch…case switch <variable> case 1 case 2 … case n otherwise end
  • 38. >> n_par_impar_primo('impar', 20) números impares entre 0 y 20 numeros_impares = Columns 1 through 9 1 3 5 7 9 11 13 15 17 Column 10 19
  • 39. >> n_par_impar_primo('impar',20) números impares entre 0 y 20 numeros_impares = 1 3 5 7 9 11 13 15 17 19
  • 40. • return – Permite regresar al programa llamador • error – Muestra mensajes de error e interrumpe el programa error(‘mensaje de error’)
  • 41. • >> earthmap • traza1.m • traza2.m
  • 42. traza1.m • x=-2*pi:pi/100:2*pi; • • % grafico de y=senx/x • y=sinc(x); • plot(x,y) • • % dimensiones de los ejes • axis([-7.5 7.5 -0.5 1.2]) • grid
  • 43. traza2.m • x=-2*pi:pi/100:2*pi; • • y=sinc(x); • • % retorna un manejador h • h=plot(x,y) • % grosor del trazo • set(h,'LineWidth',2) • • axis([-7.5 7.5 -0.5 1.2]) • grid
  • 44. • h = • 159.0094 • >> get(h,'LineWidth') • ans = • 2 • >> get(h,'Markersize') • ans = • 6
  • 51. • f1=texlabel('sin(sqrt(lambda^2+gamma^2))/sqrt(lam bda^2+gamma^2)') • f1 = • {sin}({sqrt}({lambda}^{2}+{gamma}^{2}))/{sqrt} ({lambda}^{2}+{gamma}^{2})
  • 52. • f2='{lambda}_{3} e^{-{sqrt}{(alpha})}' • f2 = • {lambda}_{3} e^{-{sqrt}{(alpha})}
  • 54. Histogramas • >> x=[5 2 1; 3 1 8; 2 4 1] • bar(x), grid • barh(x) • bar(… ‘stack’)
  • 55. hist • >> x=randn(1,1000); %normal • >> hist(x,100) • >> grid • >> x=rand(1,1000); % uniforme • >> hist(x,100) • >> grid
  • 57. Histogramas en superficies • x = • 5 1 3 • 6 3 8 • 9 6 15 • >> area(x) • >> hold on • >> plot(cumsum(x')','*','LineWidth',3) • >> grid • >> set(gca,'Xtick',[1 2 3])
  • 61. Diagramas circulares • >> x=[100 10 25 45]; • >> fuera=[1 0 0 1]; • >> etiquetas={'A','B','C','D'}; • >> pie(x,fuera,etiquetas)
  • 62. fplot • fplot('1-sinc(x)', [-2*pi 2*pi]), xlabel('x=[-2pi 2pi]') • h=gca, set(h,'linewidth',2)
  • 63. gca >> help gca GCA Get handle to current axis. H = GCA returns the handle to the current axis in the current figure. The current axis is the axis that graphics commands like PLOT, TITLE, SURF, etc. draw to if issued. Use the commands AXES or SUBPLOT to change the current axis to a different axis, or to create new ones. See also axes, subplot, delete, cla, hold, gcf, gcbo, gco, gcbf. Reference page in Help browser doc gca
  • 64. openvar • Edita una variable en la ventana del editor >> x=rand(5,10); >> openvar('x')
  • 65. Curvas contínuas • plot(x,y,cadena) • subplot(mnp) – Sub-ventana p de m lineas y n columnas
  • 67. Curvas discretas • stem(x,y) – Traza líneas verticales terminadas por un circulo • stairs – Traza la curva en forma de escaleras
  • 71. Scripts .m • No aceptan argumentos de llamada • No retornan valores • Operan únicamente sobre las variables del espacio de trabajo
  • 72. Funciones • Pueden aceptar argumentos de llamada y re-envio de resultados • Las variables internas son locales a menos que sean declaradas globales • Las funciones son útiles porque extienden las posibilidades del lenguaje
  • 73. Descripción de una Función • La línea de definición con la palabra clave function • 1ra línea de comentario – lookfor • Algunas lineas de comentario – help mi_funcion • Cuerpo de la función
  • 74. • Escriba una función para calcular el factorial de un número entero • factorial.m
  • 75. • >> f5=factorial(5) • f5 = • 120 • >> f5=feval('factorial',5) • f5 = • 120 • >>
  • 76. Entrada interactiva function volumen r=input('ingrese radio ') vol = (4/3)*pi*r^3; disp('volumen es ') disp(vol)
  • 77. • Escribir un programa que calcula media y la varianza de una serie de valores • El script llama a 3 funciones – Genera la señal ruidosa – Calcula la media y la varianza – Muestra la curva
  • 78. • calcular.m – genera_serie.m – calcula_med_var.m – traza_serie.m
  • 79. • genera_serie.m function z = genera_serie – Retorna el vector z sin recibir parámetros de llamada • calcula_med_var.m function [med, var]= calcula_med_var(w) – Retorna un vector con la media y la mediana después de recibir la señal z • traza_serie.m function traza_serie(x,z) – Recibe los vectores x y z para el trazado y no regresa argumentos
  • 80. • La variable x es declarada global en la función que la genera y las que la utilizan • global x y z • isglobal(x) – Regresa 1 si es global – 0 si no lo es
  • 81. Derivada de una función • >> x = [0 3 8 1]; • >> diff(x) • >> p= [ 1 0 -1] • >> p_derivada = polyder(p)
  • 82. derivada.m x = -1:.01:1; % intervalo de la variable x f = x.^2-1; % función a derivar plot(x,f); % trazado de la función f(x) dx = diff(x); % incrementos dx de la variable x df = diff(f); % incrementos df de la función f(x) df_dx = df./dx; % derivada de f(x) hold on plot(x(1:length(x)-1),df_dx,':'); axis([-1 1 -2 2]) grid
  • 83. -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
  • 84. integral.m dx = 0.001; % paso de integración a = -1; b = 1; % limites del dominio de integración x = a:dx:b; y = x; g = cumsum(y.*dx); % suma acumulada de las áreas % de los rectángulos % trazado de la integral plot(x,g), hold on % trazado de la función y = f(x) plot(x,y,'-.')
  • 85. -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
  • 87. Circuito RLC • R = 100 ohmios • L = 0.1H • C = 1mF • 0 a 5000 ciclos/s
  • 88. Filtro de Butterworth • Orden y frecuencia de corte • n=9; fc= 1.078e+004 Hz • Atenuación en dB a las frecuencias f1 y f2 • 1.0000 48.3172
  • 89. Transformada de Fourier discreta • función tfd – Calcula la TFD de una señal • apl_tfd.m – programa