You are on page 1of 43

UNIVERSIDAD POLITECNICA

SALESIANA
MATERIA
Matemtica Avanzada

DOCENTE
Ing. Juan Pablo Montero

ALUMNOS
Cristian Paucar
Giovanni Guarango

DEBER SECCION 10

EXPLICACION DEL PROGRAMA UTILIZADO EN MATLAB


function varargout = fourier(varargin)
Cuando la funcin se ejecuta, varargout es un 1 por N conjunto de datos,
donde N es el nmero de salidas solicitados despus de las salidas
declaradas explcitamente.
% FOURIER MATLAB code for fourier.fig
%
FOURIER, by itself, creates a new FOURIER or raises
the existing
%
singleton*.
%
%
H = FOURIER returns the handle to a new FOURIER or the
handle to
%
the existing singleton*.
%
%
FOURIER('CALLBACK',hObject,eventData,handles,...)
calls the local
%
function named CALLBACK in FOURIER.M with the given
input arguments.
%
%
FOURIER('Property','Value',...) creates a new FOURIER
or raises the
%
existing singleton*. Starting from the left, property
value pairs are
%
applied to the GUI before fourier_OpeningFcn gets
called. An
%
unrecognized property name or invalid value makes
property application
%
stop. All inputs are passed to fourier_OpeningFcn via
varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI
allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help fourier
% Last Modified by GUIDE v2.5 11-Mar-2013 19:31:36
% Begin initialization code - DO NOT EDIT

Cdigo MATLAB FOURIER para fourier.fig

% FOURIER , por s mismo , crea un nuevo FOURIER o eleva el singleton


existentes * .
%
% H = FOURIER devuelve el identificador de un nuevo FOURIER o el mango para
el singleton existentes * .
%
% FOURIER ( ' LLAMADA ' , hObject , eventData , manijas , ...) llama a la funcin
local llamado RETROLLAMADA en FOURIER.M con los argumentos de entrada
dados .
%
% FOURIER ( ' propiedad ', ' valor' , ... ) crea un nuevo FOURIER o planteen el
singleton existentes * . A partir de la izquierda , los pares de valores de las
propiedades se aplican a la interfaz grfica de usuario antes fourier_OpeningFcn
se llama . Un nombre de propiedad no reconocido o valor no vlido hace parada
aplicacin propiedad. Todas las entradas se pasan a travs de
fourier_OpeningFcn varargin .
% Edite el texto anterior para modificar la respuesta para ayudar a fourier

Comando guide

El comando guide nos sirve para crear el entorno de nuestro programa, en


este escenario es donde arreglamos el entorno para que aparezcan los
botones, grficos, respuestas, y es la ventana donde ingresamos los datos

En este entorno se arregla para que aparezca lo siguiente

gui_Singleton = 1;

gui_State = struct('gui_Name',
'gui_Singleton',
'gui_OpeningFcn',
'gui_OutputFcn',
'gui_LayoutFcn',
'gui_Callback',

mfilename, ...
gui_Singleton, ...
@fourier_OpeningFcn, ...
@fourier_OutputFcn, ...
[] , ...
[]);

gui_Name est lleno de mfilename. Este es el archivo-M actual as que

aqu SimpleGUI '.


gui_Singleton es una opcin (0 o 1) que permite que slo una o varias

instancia de su Gui se inicie al mismo tiempo.


gui_OpeningFcn se llena con un mango

SimpleGUI_OpeningFcn. Esta funcin se llama como se suele decir: 'justo


antes SimpleGUI se hace visible ". Y lo que hace esta funcin por
defecto? Llena handles.output (la estructura de asas que se almacena en tu
Gui) con el mango de su GUI. Se trata de un mango muy til que no est
realmente anunciando por Matlab (hasta ahora). til porque asas est
disponible en todas las devoluciones de llamada!
gui_OutputFcn se llena de manera similar con otra funcin que ya est

Esta varargout se transmite a travs gui_mainfcn a la gran varargout de


SimpleGui. Y aqu es por qu llamar a su Gui desde la lnea de comando que
puede enviar de nuevo a manejar a la misma (h = SimpleGui ;).
gui_LayoutFcn se usa cuando usted realmente no tiene un archivo de la

de

funcin. Apunta

figura asociada que almacena todos los objetos de la interfaz. En realidad,


sera crear los objetos directamente desde el archivo-M. En este caso, ya que
utilizamos el gua, es irrelevante (tenemos un archivo de la figura), de modo
que est vaco.
gui_Callback es interesante. Al principio, se inicia vaco y luego estn
estas lneas que llenan en caso varargin {1} es un carcter, esto se utiliza para
llamar a algunos de la devolucin de llamada desde fuera.

if nargin && ischar(varargin{1})


gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
else
gui_mainfcn(gui_State, varargin{:});

end
% End initialization code - DO NOT EDIT
% --- Ejecuta justo antes de que Fourier se haga visible.
function fourier_OpeningFcn(hObject, eventdata, handles,
varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
% varargin
command line arguments to fourier (see VARARGIN)
% Choose default command line output for fourier
% Seleccione la salida de lnea de comandos por defecto para fourier
handles.output = hObject;
% Update handles structure
% Actualizacin de la estructura
guidata(hObject, handles);
% set(handles.axes1,'Visible','off');
% set(handles.axes2,'Visible','off');
% UIWAIT makes fourier wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% UIWAIT hace esperar a Fourier por la respuesta del usuario
% --- Outputs from this function are returned to the command
line.
% --- Las salidas de esta funcin son devueltos a la lnea de comandos.
function varargout = fourier_OutputFcn(hObject, eventdata,
handles)
% varargout cell array for returning output args (see
VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
% Eventdata reservados - que se definirn en una futura versin de MATLAB
% Maneja estructura con los datos del usuario
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in CALCULAR.

% --- Ejecuta en el botn de presionar en Calcular .


function CALCULAR_Callback(hObject, eventdata, handles)
% hObject
handle to CALCULAR (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
clc
syms n wt t
set(handles.axes2, 'Visible', 'off')
% set(handles.axes3, 'visible', 'on')
% set(handles.axes4, 'visible', 'on')
% set(handles.axes5, 'visible', 'on')
Esta parte de la programacin nos muestra los ejes de los grficos
global A f
Esta funcin global declara las llamadas variables mundiales
f = sym(f);
T = max(A)-min(A);
Aqu podemos ver que se calcula el periodo restando el valor ms alto de los
intervalos menos el periodo de valor ms bajo
Wo = 2*pi/(T);
Este valor de wo es la frecuencia
Ao = 0;
Ao es el contador que empieza desde cero
for i=1:length(f)
La funcin length determina la longitud del vector o el tamao y nos indica
que empieza desde uno hasta el tamao de la funcion
Ao = Ao +int(f(i),'t', A(i), A(i+1));
En este espacio se realiza la integracin de la funcin para encontrar el valor
de Ao
end
Ao = simple(Ao/T)
La funcin simple nos ayuda a mostrar la funcin de la mejor manera
posible, es decir simplifica lo mximo que se puede para que la misma se
vea de un modo ms compacto y entendible
An = 0;
wo = 2*pi/T;
for i=1:length(f)
An = An +int(f(i)*cos(n*wo*t), A(i), A(i+1));
end
An = simple(2*An/T)
Bn = 0;
for i=1:length(f)
Bn = Bn +int(f(i)*sin(n*wo*t), A(i), A(i+1));
end
Bn = simple(2*Bn/T);

El mismo trabajo que se mencion antes, lo realiza tambin para el clculo


de los valores de An y Bn
Cabe recalcar que para el calculo de los coeficientes se basa en las
siguientes formulas

% %
An = char(An);
Bn = char(Bn);
La funcin char(vect) convierte un vector de nmeros en cadena de
caracteres
An = simple(sym(strrep(char(An), 'sin(pi*n)', '0')));
Bn = simple(sym(strrep(char(Bn), 'sin(pi*n)', '0')));
An = simple(sym(strrep(char(An), 'cos(pi*n)', '(-1)^n')));
Bn = simple(sym(strrep(char(Bn), 'cos(pi*n)', '(-1)^n')));
An = simple(sym(strrep(char(An), 'sin(2*pi*n)', '0')));
Bn = simple(sym(strrep(char(Bn), 'sin(2*pi*n)', '0')));
An = simple(sym(strrep(char(An), 'cos(2*pi*n)', '1')));
Bn = simple(sym(strrep(char(Bn), 'cos(2*pi*n)', '1')));
La funcin simple busca la forma ms simple de la expresin f. Prueba
distintas rdenes de simplificacin y muestra la forma de expresin de f con
menor nmero de caracteres.
axes(handles.axes2);
cla
P = strcat('$$', 'A_0 = ', char(latex(Ao)),'$$');
text('Interpreter','latex',...
'String',P,...

'Position',[0 .9],...
'FontSize',14);
P = strcat('$$', 'A_n = ', char(latex(An)),'$$');
text('Interpreter','latex',...
'String',P,...
'Position',[0 .6],...
'FontSize',14);
P = strcat('$$', 'B_n = ', char(latex(Bn)),'$$');
text('Interpreter','latex',...
'String',P,...
'Position',[0 .3],...
'FontSize',14);
La funcin strcat concatena cadenas para que los grficos salgan con la
sumatorias parciales
syms n
a = str2num(get(handles.ARMONICOS, 'String'));
t = linspace(min(A)-T, max(A)+T,1000);
ft = zeros(a, 1000);
% set(handles.axes3, 'visible', 'on')
% set(handles.axes4, 'visible', 'on')
% set(handles.axes5, 'visible', 'on')
for i=1:a
%
axes(handles.axes3);
%
title('\bfAMPLITUD ARMONICOS')
%
xlim([1 a])
ft(i,:) = (subs(Bn, 'n', i).*sin(i*wo*t))+(subs(An, 'n',
i).*cos(i*wo*t));
axes(handles.axes4)
set(handles.axes4, 'visible', 'on')
plot(t, Ao+sum(ft),'Color', 'b', 'Linewidth', 1.3);
title('\bfSEALES SINUSOIDALES SUMADAS')

%
%

xlim([min(t) max(t)])
xlabel('\bfARMONICO');
ylabel('\bftiempo');
zlabel('\bfAMPLITUD')
hold on
box on
grid on
axes(handles.axes5)
set(handles.axes5, 'visible', 'on')
plot(t, ft(i,:),'Color','b', 'Linewidth', 1.3)
title('\bfSEALES SINUSOIDALES SIMPLES')
xlim([min(t) max(t)])
hold on

%
%

box on
grid on
xlabel('\bfARMONICO');
ylabel('\bftiempo');
zlabel('\bfAMPLITUD');
Cn(i) = sqrt(subs(Bn, 'n', i)^2+subs(An, 'n', i)^2);
axes(handles.axes3)
set(handles.axes3, 'visible', 'on')
stem(Cn,'fill','r', 'Linewidth', 2)
hold on; grid on
title('\bfAMPLITUD ARMONICOS')
xlim([1 a])

pause(0.001)
end
axes(handles.axes4)
plot(t, Ao+sum(ft), 'r','Linewidth', 2);
Toda esta programacin hace referencia a los grficos que nos van a
resultar de las funciones que nosotros ingresemos, podemos ver que en
este espacio se dan los nombres a los grficos

function ECUACION_Callback(hObject, eventdata, handles)


% hObject
handle to ECUACION (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
% Hints: get(hObject,'String') returns contents of ECUACION
as text
%
str2double(get(hObject,'String')) returns contents
of ECUACION as a double
% --- Executes during object creation, after setting all
properties.
% --- Ejecuta durante la creacin del objeto, despus de establecer todas las
propiedades.
function ECUACION_CreateFcn(hObject, eventdata, handles)
% hObject
handle to ECUACION (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% Hint:edita controles por lo general tienen un fondo blanco en Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in GRAFICAR.
function GRAFICAR_Callback(hObject, eventdata, handles)
% hObject
handle to GRAFICAR (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
global A f ctrl
syms x t
clc
axes(handles.axes1)
set(handles.axes1, 'visible', 'on')
cla
A = str2num(get(handles.INTERVALOS, 'String'));
f = eval(get(handles.ECUACION, 'String'));
x = linspace(min(A), max(A), 1000);
fx = 0;
for i=1:length(A)-1
if mod(i, 2) == 1
fx = fx+((x>=A(i))&(x<=A(i+1))).*subs(f(i),x);
else
fx = fx+((x>A(i))&(x<A(i+1))).*subs(f(i),x);
end
end
plot(x, fx, 'Linewidth', 2); hold on
plot(x+max(x)-min(x), fx, 'Linewidth', 2)
plot(x-max(x)+min(x), fx, 'Linewidth', 2)
plot([max(x) max(x)],[fx(1) fx(end)], 'linewidth', 2)
plot([min(x) min(x)],[fx(end) fx(1)], 'linewidth', 2)
grid on
xlabel('\bfTIEMPO');
ylabel('\bfAMPLITUD');
title('\bfGRAFICA DE LA FUNCION');
T = max(x)-min(x);
function INTERVALOS_Callback(hObject, eventdata, handles)

% hObject
% eventdata
MATLAB
% handles
GUIDATA)

handle to INTERVALOS (see GCBO)


reserved - to be defined in a future version of
structure with handles and user data (see

% Hints: get(hObject,'String') returns contents of INTERVALOS


as text
%
str2double(get(hObject,'String')) returns contents
of INTERVALOS as a double
% --- Executes during object creation, after setting all
properties.
function INTERVALOS_CreateFcn(hObject, eventdata, handles)
% hObject
handle to INTERVALOS (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on
Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function ARMONICOS_Callback(hObject, eventdata, handles)
% hObject
handle to ARMONICOS (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
structure with handles and user data (see
GUIDATA)
% Hints: get(hObject,'String') returns contents of ARMONICOS
as text
%
str2double(get(hObject,'String')) returns contents
of ARMONICOS as a double
% --- Executes during object creation, after setting all
properties.
function ARMONICOS_CreateFcn(hObject, eventdata, handles)
% hObject
handle to ARMONICOS (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB

% handles
empty - handles not created until after all
CreateFcns called
% Hint: edit controls usually have a white background on
Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes during object creation, after setting all
properties.
function axes3_CreateFcn(hObject, eventdata, handles)
% hObject
handle to axes3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles
empty - handles not created until after all
CreateFcns called
% Hint: place code in OpeningFcn to populate axes3
En esta ltima parte se dan los diferentes cdigos a los botones que van a
aparecer en la ventana

SECCIN 10.2

Encontrar la serie de Fourier de la funcin f(x), la cual se supone


que tiene el periodo 2pi y trazar grficas exactas de las 3
primeras sumas parciales.
Ejercicio 3

Coeficientes.

Grficos.

Respuesta de f(x)

Ejercicio 5

f ( x )= 1 si /2< x < /2
1 si /2< x <3 /2

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)

Ejercicio 7
f ( x )=x ( < x< )

Coeficientes

Graficas de las sumatorias parciales

Respuesta de f(x)

Ejercicio 9
2

f ( x )=x ( < x < )

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)

Ejercicio 11

f ( x )= + x si < x< 0
x si0< x<

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)

Ejercicio 13
f ( x )=

x si /2< x< / 2
{x
si /2< x <3 /2 }

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)

Ejercicio 17
Si f(x) tiene los coeficientes de Fourier An, Bn, demostrar que
kf(x), donde k es una constante, tiene los coeficientes de Fourier
kAn, kBn
% MATEMATICA AVANZADA
% REALIZADO POR: CRISTIAN PAUCAR-GIOVANNI GUARANGO
%('LIBRO: kREYSZIG 6ta EDICION
%SECCION 10.2; EJERCICIO 17 - PAG.29
Kf(x)=(K*Ao)+symsum((((K*An)*cos(n*x))+((K*Bn)*sin(n*x))),n)
Kf(x) =
sum(An*K*cos(n*x) + Bn*K*sin(n*x), n) + Ao*K
pretty(Kf(x))
--\
/
(An K cos(n x) + Bn K sin(n x)) + Ao K
--n
% Lo que nos da los valores de An y Bn normales solo aumentados el valor
de K
syms f(x) n x dx
kBn=(1/pi)*int(f(x)*sin(n*x),x,-pi,pi)
kBn =
(5734161139222659*int(sin(n*x)*f(x), x == -pi..pi))/18014398509481984
pretty(kBn)

5734161139222659

pi
/
|
| sin(n x) f(x) dx

/
-pi
------------------------------------18014398509481984
kAn=(1/pi)*int(f(x)*cos(n*x),x,-pi,pi)
kAn =
(5734161139222659*int(cos(n*x)*f(x), x == -pi..pi))/18014398509481984
pretty(kAn)

5734161139222659

pi
/
|
| cos(n x) f(x) dx

/
-pi
------------------------------------18014398509481984

SECCIN 10.3
Ejercicio 3
Obtener la serie de Fourier

Coeficientes

Grficos de sumatorias parciales

Respuesta de f(t)

Encontrar la serie de Fourier de la funcin peridica f(t), de


periodo T, y trazar graficas exactas de f(t) y de las 3 primeras
sumas parciales
Ejercicio 5
f ( t )=1 (1<t< 0 ) ; f ( t )=1(0<t <1)

Coeficientes

Grficos de sumatorias parciales

Respuesta de f(t)

Ejercicio 7
f ( t )=1 (1<t< 0 ) ; f ( t )=1(0<t <1)

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(t)

Ejercicio 11
f ( t )=1t 2 (1<t <0 )

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(t)

Ejercicio 13
f ( t )=1 (1<t< 0 ) ; f ( t )=2 t(0< t<1)

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(t)

Ejercicio 15
Obtener la serie de Fourier del problema 5 directamente en la
del ejemplo 1 seccin 10.2

Coeficientes

Graficas de sumatorias parciales

Respuesta f(t)

SECCION 10.4
Ejercicio 2
De las funciones siguientes indicar si son par, impar o ninguno
de estos 2 tipos
f ( x )=|x|

La funcin es PAR

f ( x )=xcos (x)

La funcin es IMPAR
f ( x )=sin ( x)+cos (x)

La funcin no es PAR ni IMPAR

f ( x )=C

La funcin es PAR
x

f ( x )=ln ( 1+ e )

x
2

La funcin es PAR

De las funciones f(x) siguientes, que se supone son peridicas


de periodo 2pi, indicar si son pares, impares o ninguno de estos
dos casos
Ejercicio 3
f ( x )=x ( <t < )

La funcin es PAR porque tiene simetra respecto al origen


Ejercicio 5
f ( x )=x |x|( <t< )

La funcin es IMPAR porque tiene simetra con el origen


Ejercicio 7

f ( x )= x si 0< x <
0 si < x< 2

La funcin no es PAR ni IMPAR porque no tiene simetra con


ningn eje ni con el origen

Ejercicio 15

Representar la siguiente funcin como la suma de una funcin


par y una impar
f ( x )=

1
2
1x

FUNCION PAR

FUNCION IMPAR

Encontrar las series de Fourier de las funciones siguientes las


cuales se supone tienen un periodo de 2pi
Ejercicio 24
f ( x )=

{xx sisi0< <xx<<2 }

La funcin no es PAR ni IMPAR

Coeficientes

Graficas de las sumatorias parciales

Respuesta de f(t)

Ejercicio 27

f ( x )= x si < x< 0
x si0< x <

Esta funcin es PAR ya que tiene simetra con el eje Y

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)

Ejercicio 29

f ( x )=

x (
<t < )
4

Esta funcin es PAR debido a la simetra que posee en el eje Y

Coeficientes

Graficas de sumatorias parciales

Respuesta de f(x)