# Numerically evaluate a symbolic expression

**URL:** <https://discourse.julialang.org/t/numerically-evaluate-a-symbolic-expression/73816>\
**Category:** New to Julia\
**Tags:** symbolics\
**Created:** [December 30, 2021, 12:33pm UTC](https://discourse.julialang.org/t/numerically-evaluate-a-symbolic-expression/73816 "2021-12-30T12:33:28Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bardo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bardo/32/21601_2.png) [@Bardo](https://discourse.julialang.org/u/Bardo)\
**Post date:** [December 30, 2021, 12:33pm UTC](https://discourse.julialang.org/t/numerically-evaluate-a-symbolic-expression/73816/1 "2021-12-30T12:33:28Z")

</div>

First steps using `Symbolics.jl`.  
I’d like to program an elementary calculus trainer:

- An expression is shown
- As solution, the expanded expression is shown
- As proof, the expression is evaluated with numerical values.

What is the best way for the last point, using `substitute` or `build_function`?

```julia
using Symbolics

@variables a b

f = (a + 2*b)^2
f_exp = expand(f)

println(f) # (a + 2b)^2
println(f_exp) # a^2 + 4(b^2) + 4a*b

# f_num = build_function(f, a, b) # not working
# f_num(2, 3) # 64

```

---

<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:** [December 30, 2021, 12:41pm UTC](https://discourse.julialang.org/t/numerically-evaluate-a-symbolic-expression/73816/2 "2021-12-30T12:41:02Z")

</div>

`substitute` unless you call it many times.

---

<div class="post-metadata">

**Author:** ![Bardo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bardo/32/21601_2.png) [@Bardo](https://discourse.julialang.org/u/Bardo)\
**Post date:** [December 30, 2021, 12:45pm UTC](https://discourse.julialang.org/t/numerically-evaluate-a-symbolic-expression/73816/3 "2021-12-30T12:45:48Z")

</div>

Thanks Chris.

```julia
substitute(f, Dict(a=>2, b=>3)) # 64

```

```julia
f_fun = eval(build_function(f, a,b))
f_fun(2,3) # 64

```
