i have a simple equation as given below (julia code). I’m getting different answer as compare to r. Am I missing something?
x=100
y=0
d = 20
h = -2
c = [0, 1, 2, 3, 4, 5]
A = x .+ ((y - x) / (1 .+ (c / d).^h))
answer in r : 100.00000 99.75062 99.00990 97.79951 96.15385 94.11765
answer in julia: NaN 100.0 100.0 100.0 100.0 100.0
The code that you’ve presented isn’t runnable. I’ve fixed it here, and the answer seems to match that from R:
julia> x=100;
julia> y=0;
julia> d = 20;
julia> h = -2;
julia> c = [0, 1, 2, 3, 4, 5];
julia> A = x .+ ((y - x) ./ (1 .+ (c / d).^h))
6-element Vector{Float64}:
100.0
99.75062344139651
99.00990099009901
97.79951100244499
96.15384615384616
94.11764705882354
2 Likes
Elrod
3
I’d suggest using @.
It makes it easier to avoid excess allocations, e.g. c / d
should be c ./ d
.
2 Likes
I agree, this is often better:
julia> A = @. x + ((y - x) / (1 + (c / d)^h))
6-element Vector{Float64}:
100.0
99.75062344139651
99.00990099009901
97.79951100244499
96.15384615384616
94.11764705882354
2 Likes
Thanks a lot for help and suggestions.
sijo
6
The original code with the missing dot runs on Julia 1.8 but the number/vector
method was removed in 1.9: Remove number / vector by antoine-levitt · Pull Request #44358 · JuliaLang/julia · GitHub precisely to avoid this type of mistake
7 Likes