Se x é uma estimativa para a raiz cúbica de y, então: z=2 x+yx^23 é uma estimativa melhor. Utilize esta assertiva para implementar uma função rcubica() que retorna a raiz cúbica de um dado número.

Passo 1

O enunciado pede para encontrar a raiz cúbica de um número y usando o método iterativo em que, dada uma estimativa x, uma estimativa melhor é dada por z = 2x + yx^23. Vamos implementar uma função rcubica() que aplica essa iteração até convergir.
Escolhemos um palpite inicial x. Uma escolha comum é x = y se y ≥ 1, ou x = 1.0 caso contrário (para evitar divisão por zero ou palpite muito pequeno).
Definimos um critério de parada baseado em uma tolerância tol: enquanto a diferença entre a nova estimativa z e a antiga x for maior que tol, substituímos x por z e repetimos.
Ao final, retornamos x como aproximação da raiz cúbica de y.
Implementamos a função em Python usando essas ideias, cuidando de y = 0 como caso especial e limitando o número máximo de iterações para garantir que o loop termine.

Resposta

def rcubica(y, tol=1e-12, max_iter=1000):
    # Caso especial
    if y == 0:
        return 0.0

    # Palpite inicial
    x = y if abs(y) >= 1.0 else 1.0

    for _ in range(max_iter):
        # Fórmula de iteração: z = (2x + y/x^2) / 3
        z = (2.0 * x + y / (x * x)) / 3.0
        # Verifica convergência pelo salto na estimativa
        if abs(z - x) < tol:
            return z
        x = z

    # Se não convergir dentro de max_iter, retorna a melhor estimativa
    return x

Exercícios relacionados