Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #encoding: utf-8
- def f(x)
- 0.6 * (x ** 2)
- end
- def nn(x, table, n)
- nn_val = 0
- for i in 0..n do
- div_diff = 0
- for j in 0..i do
- d = 1
- for k in 0..i do
- d *= (table[j][:x] - table[k][:x]) if j != k
- end
- div_diff += table[j][:y].to_f / d.to_f;
- end
- for k in 0..i do
- div_diff *= x - table[k][:x]
- end
- nn_val += div_diff
- end
- return nn_val
- end
- n = 6
- table = []
- for i in 0..n
- table[i] = {x: i/n.to_f, y: f(i/n.to_f)}
- puts table[i][:y]
- end
- puts nn(0.5, table, n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement