Python Forum
New to Python, don't know what is wrong with my code
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
New to Python, don't know what is wrong with my code
#1
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?
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020