Python Forum

Full Version: New to Python, don't know what is wrong with my code
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi, I'm new to Python so please be gentle

I don't know seriously what is wrong with my code

Here's my code

import numpy as np

def epsilon(t):
    epsilon = (1 - np.exp(-pow(t, 4)))
    return epsilon

def r(t):
    r = pow( (epsilon(t) - 16) / 4, 1/4)
    return r

print(r(0))
Since epsilon(0) = 0, I'd expect (analytically) to get r = (-16/4)^(1/4) = (-1)^(1/4)*sqrt(2) = exp(i pi /4)*sqrt(2) = 1 + 1 i
But instead I get

Error:
RuntimeWarning: invalid value encountered in double_scalars r = pow((4 * epsilon(t) - 16) / 4, 1/4) nan
I've tried to find the error. If I print epsilon(0) I get 0 as expected, and If i set epsilon(0) manually like

def r(t):
    r = pow( 0 - 16) / 4, 1/4)
    return r
print(r(0))
I get 1 + 1 j. And If I remove the to the power of 1/4 it works and I get -4

import numpy as np

def epsilon(t):
    epsilon = (1 - np.exp(-pow(t, 4)))
    return epsilon

def r(t):
    r = (epsilon(t) - 16) / 4
    return r

print(r(0))
So why do

import numpy as np

def epsilon(t):
    epsilon = (1 - np.exp(-pow(t, 4)))
    return epsilon

def r(t):
    r = pow( (epsilon(t) - 16) / 4, 1/4)
    return r

print(r(0))
give me error?