GUI
Publicado por Luis (4 intervenciones) el 04/01/2021 04:13:06
Hola, soy nuevo en matlab y tengo una duda sobre el como mostrar valores en una GUI.
Tengo como tarea realizar una GUI que me permita calcular los coeficientes de fourier de cualquier función periódica y graficarla. el problema que tengo es que al momento de hacer el calculo de los coeficientes an y bn me salen numeros muy grandes que no tienen que ver con el resultado ya que con el mismo codigo realice el calculo de la función y no me da con valores tan grandes. No se si sea un error en el calculo ya que use los mismos comandos para resolver la serie pero esta vez los datos no se introducen por medio de la GUI y me dan los valores que son. Quisiera saber porque me dan resultados distintos si es el mismo código con el el cálculo la serie y es la misma función.Agradezco cualquier explicación o guia que me den, tambien me seria de utilidad el saber como puedo mostrar los resultados de los coeficientes de la serie de una manera un poco más estética que con el static text o como podría modificar el static text para que me muestre los valores de los coeficientes. Este es el codigo para calcular la serie.
Y estos son los valores que me da, los cuales son correctos
Y este es el codigo de la GUI
Estos son los valores que me muestra
Tengo como tarea realizar una GUI que me permita calcular los coeficientes de fourier de cualquier función periódica y graficarla. el problema que tengo es que al momento de hacer el calculo de los coeficientes an y bn me salen numeros muy grandes que no tienen que ver con el resultado ya que con el mismo codigo realice el calculo de la función y no me da con valores tan grandes. No se si sea un error en el calculo ya que use los mismos comandos para resolver la serie pero esta vez los datos no se introducen por medio de la GUI y me dan los valores que son. Quisiera saber porque me dan resultados distintos si es el mismo código con el el cálculo la serie y es la misma función.Agradezco cualquier explicación o guia que me den, tambien me seria de utilidad el saber como puedo mostrar los resultados de los coeficientes de la serie de una manera un poco más estética que con el static text o como podría modificar el static text para que me muestre los valores de los coeficientes. Este es el codigo para calcular la serie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
syms t n;
p=pi;
T=1;
wo=2*p/T;
a0=int(exp(-t),t,0,T)/T
an=int(exp(-t)*cos(n*wo*t),t,0,T)*2/T
bn=int(exp(-t)*sin(n*wo*t),t,0,T)*2/T
sum=0;
%Suma aproximada
for k=1:10
ank=subs(an,n,k);
bnk=subs(bn,n,k);
sum=sum+ank*cos(k*t)+bnk*sin(k*t);
end
suma=a0+sum; %añadimos el término independiente
Y estos son los valores que me da, los cuales son correctos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> fourier
a0 =
1 - exp(-1)
an =
(2*(exp(-1)*(exp(1) - cos(2*pi*n)) + 2*n*pi*exp(-1)*sin(2*pi*n)))/(4*pi^2*n^2 + 1)
bn =
-(2*(exp(-1)*sin(2*pi*n) - n*pi*exp(-1)*(2*exp(1) - 2*cos(2*pi*n))))/(4*pi^2*n^2 + 1)
Y este es el codigo de la GUI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function pushbutton2_Callback(hObject, eventdata, handles)
syms t n;
p=pi;
fun=get(handles.edit1,'string');
T=get(handles.edit2,'string'); %periodo
%intervalos de t
To=get(handles.edit3,'string');
to=get(handles.edit4,'string');
wo=2*p/T;
a0=int(fun,t,to,To)/To
an=int(fun*cos(n*wo*t),t,0,T)*2/To
bn=int(fun*sin(n*wo*t),t,0,T)*2/To
Estos son los valores que me muestra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> HMI
a0 =
1 - exp(-1)
an =
(2*(49*exp(-1)*(49*exp(1) - 49*cos((2*pi*n)/49)) + 98*n*pi*exp(-1)*sin((2*pi*n)/49)))/(4*pi^2*n^2 + 2401)
bn =
-(2*(2401*exp(-1)*sin((2*pi*n)/49) - 49*n*pi*exp(-1)*(2*exp(1) - 2*cos((2*pi*n)/49))))/(4*pi^2*n^2 + 2401)
Valora esta pregunta


0