Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # EXERCISE 1. GROUP LI 1-A EXAM. Below this line.
- def de2bi_a(d):
- x = np.fix(d)
- b = []
- while x/2 > 0:
- b.append(x%2)
- x = x//2
- b = np.array(b, dtype = np.int8)
- return np.flipud(b);
- def de2bi_b(d):
- x = abs(d) - abs(int(d))
- b = []
- counter = len(str(x)) - 2
- while counter > 0:
- x = x*2
- aux = round(int(x))
- b.append(aux)
- if x > 1:
- x = x - int(x)
- counter = counter - 1
- b = np.array(b, dtype=np.int8)
- return b
- def de2bi_total(d):
- dec = de2bi_a(d)
- frac = de2bi_b(d)
- exp = de2bi_a((len(dec) - 1) + 127)
- result = []
- if (d < 0):
- result.append(1)
- else:
- result.append(0)
- for i in exp:
- result.append(i)
- counter = 0
- for i in dec:
- if counter > 0:
- result.append(i)
- counter = counter + 1
- for i in frac:
- result.append(i)
- counter = counter + 1
- while counter < 24:
- result.append(0)
- counter = counter + 1
- result = np.array(result, dtype=np.int8)
- return result
- r = de2bi_total(2345.640625)
- np.savez('exercise_1', r)
- # EXERCISE 2. GROUP LI 1-A EXAM. Below this line.
- def lagrange_fundamental(i, x, nodes):
- result = float(1)
- for j in range(len(nodes)):
- if (j != i):
- result = result * ((x-nodes[j])/(nodes[i]-nodes[j]))
- else:
- result = result
- return result
- def lagrange_polynomial(x, nodes, values):
- result = float(0)
- for j in range(len(nodes)):
- result += lagrange_fundamental(j, x, nodes) * values[j]
- return result
- nodes = np.array([2,4,5,7,8,10], dtype = float)
- values = np.array([2,6,5,5,6,2], dtype = float)
- mesh = np.linspace(2,10,100)
- v = lagrange_polynomial(mesh, nodes, values)
- np.savez('exercise_2', v)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement