quise resolver el problema planteado en el ultimo mensaje, en el cual se llega a un error de la función cuando la ecuación presenta un cambio de tendencia.
Mi idea fue la siguiente:
En cada ciclo comprar el resultado obtenido de Q con el real y guardar la diferencia en una variable. Luego si la diferencia es menor que la anterior guardar el valor de Y en una variable Yb.
Para evitar el error de la función en el cambio de variable, cambie la condición de comparación del ciclo Do por una que recorra todos los tirantes hasta igualar el diametro de la cañeria (donde estaria trabajando a seccion completa)
La cuestion es que al finalizar la funcion arroja #Valor y revisando no logro encontrar el error
Function CALCULAR_Y(ByVal Q As Range, _
ByVal I As Range, _
ByVal Rad As Range)
Do Until y < (2 * Rad)
y = y + 0.01
W1 = I ^ 0.5
W4 = (Cos(1 - y / Rad)) ^ (-1)
W2 = (((Rad^(2)) / 2) * (2 * W4 - Sin(W4) ^ (2)))
W5 = Rad^(2) / 2
W6 = sen(W4) ^ (2)
W7 = (W5 * (2 * W4 - W6)) ^ (5 / 3)
W3 = 0.009 * ((Rad * 2 * W4) ^ (2 / 3))
Valor = W1 * W7 / W3
Err = Abs(Valor - Q)
If y = 0.01 Then
Yb = y
Eb = Err
Else
If Err < Eb Then
Yb = y
Eb = Err
End If
End If
Loop
CALCULAR_Y = Yb
End Function
[/CODE]
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola, es mi primer mensaje en el foro.
Mi nombre es Alejandro y soy estudiante de Ingenieria Civil
Siguiendo un post anterior
Macro ReSolver ecuaciones de una incógnita
quise resolver el problema planteado en el ultimo mensaje, en el cual se llega a un error de la función cuando la ecuación presenta un cambio de tendencia.
Mi idea fue la siguiente:
En cada ciclo comprar el resultado obtenido de Q con el real y guardar la diferencia en una variable. Luego si la diferencia es menor que la anterior guardar el valor de Y en una variable Yb.
Para evitar el error de la función en el cambio de variable, cambie la condición de comparación del ciclo Do por una que recorra todos los tirantes hasta igualar el diametro de la cañeria (donde estaria trabajando a seccion completa)
La cuestion es que al finalizar la funcion arroja #Valor y revisando no logro encontrar el error