
Proceso Iterativo
Publicado por José Luis (3 intervenciones) el 17/05/2014 23:28:14
Buenas noches,
necesito realizar un proceso iterativo a fin de obtener el tamaño de una pieza, la primera estimación es a mano pero después necesito un proceso iterativo de forma que se pare al alcanzar en la ultima iteración el valor de la anterior. Algo falla porque directamente me hace 10 iteraciones. Llevaba muchos años sin usar Matlab y quizás no lo haya planteado de la mejor forma. Gracias de antemano.
clc
Kb=input('Introduzca un supuesto de Kb: ');
if Kb<0.85
error('Estime un Kb más alto.')
end
Se=0.759663*Kb*415
d=Kb.^(1/(-0.107))*7.62
r=d/10
if r<=5
q=0.85
else q=0.9
end
Sn=(((0.9*830).^2)/Se)*690000.^(-1/3*log10(0.9*830/Se))
Kf=1+q*(1.65-1)
d1=(Kf*34377467/Sn).^(1/3)
for i = 1:10
clearvars Kb
Kb=(d1/7.62).^(-0.107)
Se=0.759663*Kb*415
r=d1/10
Sn=(((0.9*830).^2)/Se)*690000.^(-1/3*log10(0.9*830/Se))
if r<=5
q=0.85
else q=0.9
end
Kf=1+q*(1.65-1)
d2=(Kf*34377467/Sn).^(1/3)
if d2==d1
break
('La estimación del diámetro del eje es: ')
end
end
necesito realizar un proceso iterativo a fin de obtener el tamaño de una pieza, la primera estimación es a mano pero después necesito un proceso iterativo de forma que se pare al alcanzar en la ultima iteración el valor de la anterior. Algo falla porque directamente me hace 10 iteraciones. Llevaba muchos años sin usar Matlab y quizás no lo haya planteado de la mejor forma. Gracias de antemano.
clc
Kb=input('Introduzca un supuesto de Kb: ');
if Kb<0.85
error('Estime un Kb más alto.')
end
Se=0.759663*Kb*415
d=Kb.^(1/(-0.107))*7.62
r=d/10
if r<=5
q=0.85
else q=0.9
end
Sn=(((0.9*830).^2)/Se)*690000.^(-1/3*log10(0.9*830/Se))
Kf=1+q*(1.65-1)
d1=(Kf*34377467/Sn).^(1/3)
for i = 1:10
clearvars Kb
Kb=(d1/7.62).^(-0.107)
Se=0.759663*Kb*415
r=d1/10
Sn=(((0.9*830).^2)/Se)*690000.^(-1/3*log10(0.9*830/Se))
if r<=5
q=0.85
else q=0.9
end
Kf=1+q*(1.65-1)
d2=(Kf*34377467/Sn).^(1/3)
if d2==d1
break
('La estimación del diámetro del eje es: ')
end
end
Valora esta pregunta


0