I am trying to draw a graph like the one shown below. Is there anyway to define the function better and draw the graph better too?

Here is the graph :

And here is my code:

```
using Plots
using PyPlot
T = range(0,stop=1,length=100)
#simple self-defined Berstein function
function Bt(n, i)
[B(n, i, t) for t in T]
return
end
fig = plt.figure()
ax = fig[:add_subplot](111, projection="2d")
n = 3
for i in range(0, stop=n+1, length=25)
plot(T,Bt, markersize=6, markevery=10, label=r'$B^{{{0}}}_{{{1}}}$)'.format(i, n)
```

Based on the information you provided, I believe this is approximately the code you want

```
using PyPlot
n = 3
T = range(0,stop=1,length=100)
S = range(0,stop=n+1,length=25)
Bt(n, i) = [B(n, i, t) for t in T]
for i in S
plot(T,Bt(n,i),marker="^",markersize=6, markevery=10,grid(true))
end
legend([latexstring("B^{$n}_{$i}") for i in S])
```

assuming you have the `B(n,i,t)`

method defined

1 Like

Yes, i do have `B(n,i,t)`

method defined. However am having a huge error which I know stems from my user defined function `comb`

which uses factorial. I kept getting the error the factorial method only matches `Int128,BigFloat and uint128`

hence the `n and k are int128`

even though my maximum range for n is only 20.

Once again if there is an simpler way to this…kindly show me. Your help is appreciated.

Here is my entire code with comments on my traill of thought:

```
using PyPlot
#create&define combination function
function Comb!(n::Int128, k::Int128)
#comb
return factorial(n)/(factorial(n-k) * factorial(k))
end
#create&define a variable binom that will store all my combinations for k IN A RANGE OF N
binom = ([Comb(n, k) for k in range(0,stop=n+1,length=100)] for n in range(0,stop=20,length=100))
#create&define function for a basic (simplest berstein)
function B(n, i, t)
#B(n,i,t)
return binom[n][i] * (t^i) * (1-t)^(n-i)
end
#define variables and draw polinomial berstein
n = 3
T = range(0,stop=1,length=100)
S = range(0,stop=n+1,length=25)
Bt(n, i) = [B(n, i, t) for t in T]
for i in S
plot(T,Bt(n,i),marker="^",markersize=6, markevery=10,grid(true))
end
legend([latexstring("B^{$n}_{$i}") for i in S]) ```
```

Julia already has a `binomial`

coefficient function built-in; however, you need to use **integer** ranges

```
using PyPlot
n = 3 # or Int128(3)
T = range(0,stop=1,length=100)
B(n, i, t) = binomial(n,i) * (t^i) * (1-t)^(n-i)
Bt(n, i) = [B(n, i, t) for t in T]
for i in 0:n
plot(T,Bt(n,i),marker="^",markersize=6, markevery=10)
end
legend([latexstring("B^{$n}_{$i}") for i in 0:n])
grid("on")
```

your code sample assumes you can define the `binomial(n,k)`

for non-integer `k`

, which is undefined

with integer values for `n`

and `k`

you can use `binomial`

from Julia built-in

2 Likes

Hi Angela, are you working with Bernstein expansions? We got his half-baked package: https://github.com/JuliaReach/BernsteinExpansions.jl If you find anything interesting and want to contribute, external help is greatly appreciated