Matlab - Iteraciones en matalb

 
Vista:
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Iteraciones en matalb

Publicado por Milena (30 intervenciones) el 18/12/2019 17:53:47
Hola buenos días, estoy intentando hacer iteraciones con Matlab de la siguiente manera, pero no me sale:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
m ‘ Dato dado
A ‘Dato dado
B ‘Dato dado
DATOS ‘Dato dado
 
 
Parametro1=m-sum(exp(-((DATOS-B)/A)))
Parametro2=m-sum((DATOS-B)/A)+sum(((DATOS-B)/A).*exp(-((DATOS-B)/A)))
 
Condicion1=Parametro1/A
Condicion2=-Parametro2/A
 
i=0
 
if Condicion1 & Condicion2>0.001
 
    S_A=(A/m)*(0.26*Parametro1-0.61*Parametro2)
    S_B=(A/m)*(1.11*Parametro1-0.26*Parametro2)
 
i=1+i
 
    A=A+S_alpha
    B=B+S_mu
 
    Parametro1=m-sum(exp(-((DATOS-B)/A)))
    Parametro2=m-sum((DATOS-B)/A)+sum(((DATOS-B)/A)
 
    Condicion1=Parametro1/A
    Condicion2=-Parametro2/A
end

Lo que yo necesito es que en base a la Condicion1 y Condicion2 mientras sea mayor que 0.001 vuelva a calcularme A y B (En base al incremento de S_A y S_B) y con esto recalcule los parámetros y condiciones y vuelve y empiece hasta que las dos condiciones sean menores que 0.001. Que tengo mal en mi planteamiento del código, o como se debería hacer?
Les agradezco mucho, soy nueva en esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Iteraciones en matalb

Publicado por Daniel (354 intervenciones) el 19/12/2019 20:28:53
Hola,

La idea es correcta, pero if es para control de flujo y lo que necesitas es usar while. Por ejemplo, restar un valor hasta 0 se tiene que hacer.

1
2
3
4
5
y = 3;
 
while y > 0
    y = y - 1
end

Además hay que comparar los dos valores no solo uno, es decir, la línea

1
if Condicion1 & Condicion2>0.001

tiene que ser algo como

1
while Condicion1 > 0.001 && Condicion2 > 0.001

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Iteraciones en matalb

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 23/01/2020 13:19:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
% https://www.lawebdelprogramador.com/foros/Matlab/1722538-Iteraciones-en-matalb.html
clear
m=rand;
A=rand;
B=rand;
S_alpha=rand;
S_mu=rand;
DATOS=5*rand;
Parametro1=m-sum(exp(-((DATOS-B)/A)));
Parametro2=m-sum((DATOS-B)/A)+sum(((DATOS-B)/A).*exp(-((DATOS-B)/A)));
Condicion1=Parametro1/A;
Condicion2=-Parametro2/A;
while  1
    if Condicion1<=0.001 && Condicion2<=0.001
        Condicion1, Condicion2
        break;
    end
    S_A=(A/m)*(0.26*Parametro1-0.61*Parametro2);
    S_B=(A/m)*(1.11*Parametro1-0.26*Parametro2);
    A=A+S_alpha;
    B=B+S_mu;
    Parametro1=m-sum(exp(-((DATOS-B)/A)));
    Parametro2=m-sum((DATOS-B)/A)+sum(((DATOS-B)/A));
    Condicion1=Parametro1/A;
    Condicion2=-Parametro2/A;
end


1
2
3
4
5
6
>> iteraciones_for
Condicion1 =
   -0.0346
 
Condicion2 =
   -0.1808

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar