• Viernes 3 de Mayo de 2024, 01:18

Autor Tema:  desbordamiento  (Leído 2176 veces)

don_mauricio

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
desbordamiento
« en: Lunes 8 de Marzo de 2010, 06:22 »
0
HOla ,a todos tengo un pequeño problema con un desbordamiento y no sé como arreglarlo
tengo lo siguiente:
ET=25;
kl=-0.6
ko=-0.0087;
ku=-0.0087;
tengo que hallar un valor k.
ET_est=21753;
 si ET_est>ET
k es k(1)=(kl+ko)/2
de lo contrario
k es k(1)=(ku+ko)/2

en la siguiente iteracion cambie a ko por k(1).

pero luego de hacer varias iteracione el programa qda loco no para!!!!

me remendaron q fijara un error:
ep=(abs(ET-ET_est))/abs(ET_est) ;

con tal de que parara el proceso, pero a todas estas no se como meterlo dentro del ciclo.   me dijeron q con un while, pero igual quedo en blanco al hacer eso.
Espero q me puedan dar ideas a ese problema gracias

:hitcomp:

BUCAROMANUEL

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
matlab
« Respuesta #1 en: Lunes 8 de Marzo de 2010, 14:05 »
0
ombe buenos dias

soy nuevo y no se como plantear preguntas, pues debo crear un programa que lea unos datos y calcule la mediana y la moda

don_mauricio

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: desbordamiento
« Respuesta #2 en: Lunes 8 de Marzo de 2010, 20:35 »
0
Ps , yo tengo uno que halla los cuartiles
Q1; Q2 que es la mediana, Q3;

MEdiante un ejemplo:
% define data set
x = [16, 22, 24, 24, 27, 28, 29, 30]';
Nx = size(x,1);

% compute mean
mx = mean(x);

% compute the standard deviation
sigma = std(x);

% compute the median
medianx = median(x);

% STEP 1 - rank the data
y = sort(x);

% compute 25th percentile (first quartile)
Q(1) = median(y(find(y<median(y))));

% compute 50th percentile (second quartile)
Q(2) = median(y);

% compute 75th percentile (third quartile)
Q(3) = median(y(find(y>median(y))));

% compute Interquartile Range (IQR)
IQR = Q(3)-Q(1);

% compute Semi Interquartile Deviation (SID)
% The importance and implication of the SID is that if you
% start with the median and go 1 SID unit above it
% and 1 SID unit below it, you should (normally)
% account for 50% of the data in the original data set
SID = IQR/2;

% determine extreme Q1 outliers (e.g., x < Q1 - 3*IQR)
iy = find(y<Q(1)-3*IQR);
if length(iy)>0,
    outliersQ1 = y(iy);
else
    outliersQ1 = [];
end

% determine extreme Q3 outliers (e.g., x > Q1 + 3*IQR)
iy = find(y>Q(1)+3*IQR);
if length(iy)>0,
    outliersQ3 = y(iy)
else
    outliersQ3 = [];
end

% compute total number of outliers
Noutliers = length(outliersQ1)+length(outliersQ3);

% display results
disp(['Mean:                                ',num2str(mx)]);
disp(['Standard Deviation:                  ',num2str(sigma)]);
disp(['Median:                              ',num2str(medianx)]);
disp(['25th Percentile:                     ',num2str(Q(1))]);
disp(['50th Percentile:                     ',num2str(Q(2))]);
disp(['75th Percentile:                     ',num2str(Q(3))]);
disp(['Semi Interquartile Deviation:        ',num2str(SID)]);
disp(['Number of outliers:                  ',num2str(Noutliers)]);



%ojalà le sirva , chao!!!%

BUCAROMANUEL

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: desbordamiento
« Respuesta #3 en: Martes 9 de Marzo de 2010, 20:11 »
0
ombe
Gracias, muy amable estare pendiente si tiene otros de estadistica

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Re: desbordamiento
« Respuesta #4 en: Martes 9 de Marzo de 2010, 20:50 »
0
a ver el programa no para nunca porque la condición no varía nunca y siempre se cumple
ET_est>ET

tendrás que meter dentro del bucle (ya sea while o for) la variación.
Por ejemplo:
ET=25;
kl=-0.6
ko=-0.0087;
ku=-0.0087;
ET_est=21753;
      while ET_est>ET
             k es k(1)=(kl+ko)/2
             ET_est=ET_est-1; %Esto es para que en cada iteración el valor de ET_est vaya disminuyendo
     end

     k es k(1)=(ku+ko)/2

don_mauricio

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: desbordamiento
« Respuesta #5 en: Miércoles 10 de Marzo de 2010, 03:24 »
0
e=0.02; % error%

if ET_est>ET
while abs(kl-ko)>e
k=(kl+ko)/2;
ko=k;
end
elseif ET_est>ET
while abs(ku-ko)>e;
k=(ku+ko)/2;
ko=k;
end
end


ALGO ASI?????????

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Re: desbordamiento
« Respuesta #6 en: Jueves 11 de Marzo de 2010, 16:37 »
0
Siiii!! jeje, claro de este modo la variable que está dentro de la condición se va "actualizando" en cada iteración hasta que llegue el momento en que no se cumpla, entonces "saltará" y continuará con el resto de código.
Un saludo!