# Changing the relstep of AutoFiniteDiff() in an OptimizationFunction

**URL:** <https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004>\
**Category:** Optimization (Mathematical)\
**Created:** [January 21, 2025, 9:19am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004 "2025-01-21T09:19:50Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [January 21, 2025, 9:19am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/1 "2025-01-21T09:19:50Z")

</div>

I want to define an `OptimizationProblem` using Optimization.jl and FiniteDiff:

```julia
    optf = OptimizationFunction(f_zero, AutoFiniteDiff())
    prob = OptimizationProblem(optf, [stretched_tether_length - 0.05, 0.0, 0.0, 0.0]; 
        lb = [stretched_tether_length - 0.1, -1.0, -1.0, -0.3], 
        ub = [stretched_tether_length, 1.0, 1.0, 0.3]
        )

```

But I suspect that the stepsize of `AutoFiniteDiff` is too small to give reliable gradients, because `f_zero` is noisy. How can I change the stepsize of `FiniteDiff` through this interface? I know that FiniteDiff.jl has a `relstep` and `absstep` parameter in their API, but how can I access this?  
[https://docs.sciml.ai/FiniteDiff/stable/api/](https://docs.sciml.ai/FiniteDiff/stable/api/)

> **[OptimizationFunction · Optimization.jl](https://docs.sciml.ai/Optimization/stable/API/optimization_function/#SciMLBase.OptimizationFunction)**
>
> Documentation for Optimization.jl.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 21, 2025, 9:34am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/2 "2025-01-21T09:34:35Z")

</div>

I’m not sure that’s exposed. Open an issue?

---

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [January 21, 2025, 9:39am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/3 "2025-01-21T09:39:05Z")

</div>

This would be an issue with DifferentiationInterface.jl right?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [January 21, 2025, 10:10am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/4 "2025-01-21T10:10:28Z")

</div>

With ADTypes.jl first to add the option to the backend object, and then to DifferentiationInterface.jl for it to be taken into account during differentiation. You can open both simultaneously and link them to each other 😉

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 21, 2025, 10:12am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/5 "2025-01-21T10:12:58Z")

</div>

Yup that’s probably the implementation plan. I won’t get to it but it’s probably only an hour or so for whomever can pick it up. Then once that is all there Optimization will “get it for free”

---

<div class="post-metadata">

**Author:** ![Bart\_van\_de\_Lint](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bart_van_de_lint/32/212161_2.png) [@Bart\_van\_de\_Lint](https://discourse.julialang.org/u/Bart_van_de_Lint)\
**Post date:** [January 21, 2025, 11:19am UTC](https://discourse.julialang.org/t/changing-the-relstep-of-autofinitediff-in-an-optimizationfunction/125004/6 "2025-01-21T11:19:58Z")

</div>

I can give it a try
