Skip to content

probsolve_ivp for ODE that is a function of t #850

@qing42102

Description

@qing42102

Describe the bug
If the ODE is a function of t, then probsolve_ivp gives the error TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'. Upon further investigation, it turns out that t is passed in as None to the ODE function sometimes. Thus, this will give an error when performing any numerical operator on t. Is there something that I need to change in the ODE function to make it work when it's a function of t? I can post the entire traceback if needed.

To Reproduce

def stiff_ode(t, y):
    lambda_val = 2
    print(t)
    return lambda_val * y + np.exp(-t)

# Initial and final time value
t0 = 0.0
tmax = 1.0

# Initial condition
y0 = np.array([1])

sol = probsolve_ivp(stiff_ode, t0, tmax, y0, algo_order=2, adaptive=True, atol=1e-2, rtol=1e-2)

Expected behavior
There shouldn't be an error and t shouldn't be passed in as None to the ODE function.

System:

  • Conda environment
  • Python 3.10
  • ProbNum 0.1.25
  • NumPy 1.25

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions