Cougar
February 20, 2023, 8:42pm
1
Using Symbolics , wanting Julia to determine that \lfloor\, 10 \sqrt{3} \,\rfloor = 17 , and print `17`

instead of `floor(10sqrt(3))`

…

```
julia> x = 10 * Symbolics.Term(sqrt,[3])
10sqrt(3)
julia> y = floor(x)
floor(10sqrt(3))
```

Also, for `x`

, wanting to print `10 √3`

instead of `10sqrt(3)`

.

Any advice much-appreciated.

Also, I’d like to mimic …

`if sqrt(3) < sqrt(2) print("true") else print("false") end`

… with …

`if Symbolics.Term(sqrt,[3]) < Symbolics.Term(sqrt,[2]) print("true") else print("false") end`

However, I’m getting …

`TypeError: non-boolean (SymbolicUtils.BasicSymbolic{Bool}) used in boolean context`

Again, any insight would be much-appreciated.

That’s an expression not a value.

Cougar:

⌊10√3⌋=17

Again, if you want a value, then don’t use symbolics.

The point of symbolics is to allow for construction of lazy expressions. If you just run `floor(10sqrt(3))`

then you get 17.

I guess the real question is, what are you trying to do?

Cougar
February 20, 2023, 10:35pm
3
I’m trying to use Dirichlet’s Approximation Theorem to find integers a and b such that 1 \le a \le 10 and | a \sqrt{3} - b | \lt \frac{1}{10} . I’d like to express, for example, that when j = 3 and k = 7 …

a = k - j = 7 - 3 = 4
b = \lfloor k \sqrt{3} \rfloor - \lfloor j \sqrt{3} \rfloor = \lfloor 7 \sqrt{3} \rfloor - \lfloor 3 \sqrt{3} \rfloor = 12 - 5 = 7
| a \sqrt{3} - b | = | 4 \sqrt{3} - 7 | \lt \frac{1}{10} .
I’d like to use Julia to do the calculations symbolically, rather than use floating-point approximations such as \sqrt{3} \approx 1.73205 .