want to follow my iteration - how?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I want to follow how my while-loop iteration is proceeding at each step. How can I do this?****I want to understand and correct why my iteration is never ending:
v_m=10;
R_try=0;
v_m_try=0;
while abs(v_m_try-v_m)>0.01
if (v_m_try<v_m)
R_try=R_try+0.05;
v_0_try=sqrt(9.81*R_try*0.02);
v_m_try=0.4*log(12.27*v_0_try^2);
else
R_try=R_try-0.05;
v_0_try=sqrt(9.81*R_try*0.02);
v_m_try=0.4*log(12.27*v_0_try^2);
end
end
2 comentarios
Jan
el 7 de Oct. de 2011
Please use proper code formatting. Follow the "Markup help" link on this page.
Respuesta aceptada
Andrei Bobrov
el 7 de Oct. de 2011
v_m=10;
R_try=0;
v_m_try=0;
i1 = 0;
while abs(v_m_try-v_m)>0.01 && i1 < 100
if v_m_try<v_m
R_try=R_try+0.05;
else
R_try=R_try-0.05;
end
v_0_try=sqrt(9.81*R_try*0.02);
v_m_try=0.4*log(12.27*v_0_try^2);
i1 = i1 + 1;
out(i1,:) = [R_try, v_m_try];
end
6 comentarios
Matt Tearle
el 7 de Oct. de 2011
FWIW, rather than fzero, you could also just do it algebraically: R_try = exp(10/0.4)/(12.27*9.81*0.02)
Andrei Bobrov
el 7 de Oct. de 2011
Thanks Matt! I've been seeing only the "fzero", "fsolve" b and other tricks - I'm a hostage MATLAB, I start to forget algebra - my fault ... :)
Más respuestas (1)
Bjorn Gustavsson
el 7 de Oct. de 2011
If you want to see what's going on you can use:
disp([v_m,v_m_try,v_0_try,R_try])
If that is not detailed enough check the trusty pair: fprintf and sprintf.
HTH,
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!